如何使用 Cloudformation 更新 Athena 输出位置

use*_*159 2 amazon-web-services aws-cloudformation amazon-athena

有人可以帮我编写一个云形成脚本来更新 Athena 主工作组的输出位置。当我运行下面的代码时,收到错误消息“提供的请求无效:无法创建主工作组(服务:Athena,状态代码:400,请求 ID:9945209c-6999-4e8b-bd3d-a3af13b4ac4f​​)”

Resources:
  MyAthenaWorkGroup:
    Type: AWS::Athena::WorkGroup
    Properties:
      Name: primary
      Description: My WorkGroup Updated
      State: DISABLED
      WorkGroupConfigurationUpdates:
        BytesScannedCutoffPerQuery: 10000000
        EnforceWorkGroupConfiguration: true
        PublishCloudWatchMetricsEnabled: true
        RequesterPaysEnabled: false
        ResultConfigurationUpdates:
          EncryptionConfiguration:
            EncryptionOption: SSE_S3          
          OutputLocation: s3://test/
Run Code Online (Sandbox Code Playgroud)

Ale*_*ade 6

您需要“创建一个更改集以将现有资源导入新的或现有的堆栈。”,因为“主”工作组是在您的堆栈外部创建的。因此,您需要使用选项:“使用现有资源创建堆栈”:

在此输入图像描述


您还需要添加DeletionPolicy/UpdateReplacePolicy。一个完整的工作示例是:

  Resources:
    AthenaPrimaryWorkGroup:
      Type: AWS::Athena::WorkGroup
      Properties:
        Name: primary
        State: ENABLED
        WorkGroupConfigurationUpdates:
          BytesScannedCutoffPerQuery: 1000000000
          EnforceWorkGroupConfiguration: true
          PublishCloudWatchMetricsEnabled: true
          RequesterPaysEnabled: false
          ResultConfigurationUpdates:
            OutputLocation: s3://MY-Athena-results
      DeletionPolicy: Retain
      UpdateReplacePolicy: Retain
Run Code Online (Sandbox Code Playgroud)

更多详细信息,请访问:https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import.html