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回答
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
エキスパート
回答済み 2年前
  • 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" ] }

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン

関連するコンテンツ