使用CloudFormation模板更新AWS Athena工作组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用CloudFormation模板更新AWS Athena工作组相关的知识,希望对你有一定的参考价值。

我有2个从AWS::Athena::WorkGroup - AWS CloudFormation文档中提取的模板。

第一个模板athena_create.yaml按预期工作。第二个模板需要修改在第一个模板中创建的工作组。但我收到一个错误:

MyCustomWorkGroup已存在于堆栈中arn:aws:cloudformation:us-east-1:XXX:stack / a1 / 7cc670a0-8d19-11ea-872c-12217e59f19f

这里是代码。创建模板可以正常工作。

athena_create.yaml

Resources:
  MyAthenaWorkGroup:
    Type: AWS::Athena::WorkGroup
    Properties:
      Name: MyCustomWorkGroup
      Description: My WorkGroup
      State: ENABLED
      Tags:
        - Key: "key1"
          Value: "value1"
        - Key: "key2"
          Value: "value2"
      WorkGroupConfiguration:
        BytesScannedCutoffPerQuery: 200000000
        EnforceWorkGroupConfiguration: false
        PublishCloudWatchMetricsEnabled: false
        RequesterPaysEnabled: true
        ResultConfiguration:
          OutputLocation: s3://path/to/my/bucket/

athena_update.yaml

Resources:
  MyAthenaWorkGroup:
    Type: AWS::Athena::WorkGroup
    Properties:
      Name: MyCustomWorkGroup
      Description: My WorkGroup Updated
      State: DISABLED
      Tags:
        - Key: "key1"
          Value: "value1"
        - Key: "key2"
          Value: "value2"
      WorkGroupConfigurationUpdates:
        BytesScannedCutoffPerQuery: 10000000
        EnforceWorkGroupConfiguration: true
        PublishCloudWatchMetricsEnabled: true
        RequesterPaysEnabled: false
        ResultConfigurationUpdates:
          EncryptionConfiguration:
            EncryptionOption: SSE_S3
          OutputLocation: s3://path/to/my/bucket/updated/

上述更新模板无法按预期工作。

答案

错误的原因是,这两个模板用于创建两个独立的堆栈。这没有用,因为它们有两个同名的Athena工作组:MyCustomWorkGroup

执行创建和更新MyCustomWorkGroup的正确方法如下:

  1. 使用athena_create.yaml文件创建堆栈。

  2. 一旦创建了堆栈,请使用其Update选项上载要更新堆栈的athena_update.yaml

以上是关于使用CloudFormation模板更新AWS Athena工作组的主要内容,如果未能解决你的问题,请参考以下文章

AWS Cloudformation错误:由于递归导入而导致的递归锁定

AWS CloudFormation 更新 Lambda 代码以在 S3 存储桶中使用最新版本

System Operations on AWS - Lab 7 - CloudFormation

如何修复与 AWS::CloudFormation::Init 一起创建 EC2 的 cloudformation 模板

AWS:使用 cloudformation 模板将 WAF 附加到 api 网关

使用 PyYAML 库解析 AWS CloudFormation 模板