【问题标题】:Update AWS Athena workgroup using CloudFormation template使用 CloudFormation 模板更新 AWS Athena 工作组
【发布时间】:2020-08-17 16:16:51
【问题描述】:

我有 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/

上面提到的更新模板没有按预期工作。

【问题讨论】:

  • 我猜您将它们部署为两个单独的模板?在这种情况下,您不能这样做,因为这两个模板会创建两个同名的工作组:MyCustomWorkGroup
  • 如何使用 cloudformation 模板更新工作组?
  • 您使用第一个模板创建堆栈。完成后,您转到堆栈并单击更新。这将更新原始堆栈,而不是创建新堆栈。
  • 谢谢。知道了。有没有办法使用 cloudformation 更新默认工作组?
  • 如果您不介意,我会回答以供将来参考。不幸的是对雅典娜并不熟悉。 CloudFormation 给您带来问题的新原因。

标签: amazon-web-services amazon-cloudformation amazon-athena


【解决方案1】:

错误的原因是这两个模板被用来创建两个独立的堆栈。这不起作用,因为他们有两个同名的 Athena 工作组:MyCustomWorkGroup

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

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

  2. 创建堆栈后,使用其Update 选项上传athena_update.yaml,这将更新堆栈。

【讨论】:

  • 我想知道是否有任何方法可以使用 cloudformation 更新默认模板。
  • @shantanuo 我会说不。 CloudFormation 只能更新它创建的资源。默认/主要工作组是 cloudformation 外部的资源。
  • 有可能。只需添加“DeletionPolicy: Retain”行并使用“With existing resources(导入资源)”选项来更新主工作组。
猜你喜欢
  • 2019-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-04
  • 1970-01-01
  • 2016-08-04
  • 2019-07-12
  • 1970-01-01
相关资源
最近更新 更多