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 Antwort
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
EXPERTE
beantwortet vor 2 Jahren
  • 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" ] }

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen