Lamdba to pull Cloudfront from AWS Config query

0

Hi,

I am trying to use a lamdba to pull from multi accounts and grab CloudFront information, but the following aliases "cname" won't come back

selectExpression = "select accountId,resourceId,awsRegion,arn,resourceCreationTime,configurationItemStatus,configuration.domainName,configuration.lastModifiedTime,configuration.distributionConfig.aliases.items,configuration.distributionConfig.origins.items.customOriginConfig.*,configuration.distributionConfig.origins.items.customOriginConfig.httpPort,configuration.distributionConfig.origins.items.customOriginConfig.httpsPort,configuration.distributionConfig.origins.items.customOriginConfig.originSslProtocols,configuration.distributionConfig.origins.items.domainName"
    selectExpression = selectExpression + " where resourceType = 'AWS::CloudFront::Distribution' 

print(result['configuration']['distributionConfig']['aliases']['items']) 

gets an error below but get origin works fine:

print(result['configuration']['distributionConfig']['origins']['items'])

Any suggestions?

also in their docs: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-aliases and works with CLI

Error:
Response
{
  "errorMessage": "'Aliases'",
  "errorType": "KeyError",
  "requestId": "345fga5-a4f4-405b-8c43-319f750e6f1a",
  "stackTrace": [
    "  File \"/var/task/lambda_function.py\", line 62, in lambda_handler\n    print(result['configuration']['distributionConfig']['Aliases']['items'])\n"
  ]
}
{
  "aliases": {
    "items": [
      "www.foo.com"
    ]
  },
  "origins": {
    "items": [
      {
        "domainName": "awseb-e-j-AWSEBLA-1XXXXXXXXXX.us-east-2.elb.amazonaws.com",
        "customOriginConfig": {
          "originSslProtocols": {
            "quantity": 3,
            "items": [
              "TLSv1.2"
            ]
          },
          "httpPort": 80,
          "httpsPort": 443
        }
      }
    ]
  }
}
1 réponse
0

The error message indicates that Aliases is specified with an uppercase A but the JSON snippet has aliases which is lowercase. Could that be the issue? Your code shows aliases but the line of code printed with the error message doesn't match that.

profile pictureAWS
EXPERT
répondu il y a 2 ans
  • I thought of that and tried it also and no luck.

    print(result['configuration']['distributionConfig']['aliases']['items'])

    Error: Response { "errorMessage": "'aliases'", "errorType": "KeyError", "requestId": "345fga5-a4f4-405b-8c43-319f750e6f1a", "stackTrace": [ " File "/var/task/lambda_function.py", line 62, in lambda_handler\n print(result['configuration']['distributionConfig']['aliases']['items'])\n" ] }

Vous n'êtes pas connecté. Se connecter pour publier une réponse.

Une bonne réponse répond clairement à la question, contient des commentaires constructifs et encourage le développement professionnel de la personne qui pose la question.

Instructions pour répondre aux questions