【问题标题】:Create DynamoDB through custom resources Cloud Formation Template通过自定义资源 Cloud Formation 模板创建 DynamoDB
【发布时间】:2018-09-15 11:48:45
【问题描述】:

我正在尝试使用以下云形成模板脚本在 AWS DynamoDB 中创建一个 GlobalTable。但是我不确定我是否有所有需要的东西。 我的自定义资源部分如下所示。

"CreateGlobalTable":{ "Type":"Custom::CreateGlobalTable", "Properties":{ "ServiceToken":{ "Fn::GetAtt":[ "SolutionHelper", "Arn" ] }, "GlobalTableName": "myglobaltable", "ReplicationGroup": [ { "RegionName": "eu-west-1" } ] } },

生成堆栈时,我在日志中看到相同的条目,但是没有创建全局表。它是否需要一个支持 lamda 函数来实际创建全局表?或者 AWS API 按照上面定义的方式自动处理它。非常感谢任何指导。

【问题讨论】:

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


    【解决方案1】:

    确实,您实际上需要一个 Lambda 函数来执行 GlobalTable 的实际创建/更新/删除。

    以下是有关如何进行的基本指南:

      GlobalTableCustomResourceLambdaFunction:
        Type: AWS::Lambda::Function
        Properties:
          Handler: global_table_custom_resource.lambda_handler
          Role: !GetAtt CustomResourceRole.Arn
          Code: cloudformation/custom-resource/global_table_custom_resource.py
          Runtime: python3.6
          Timeout: '25'
    
      CustomResourceRole:
        Type: AWS::IAM::Role
        Properties:
          AssumeRolePolicyDocument:
            Version: '2012-10-17'
            Statement:
            - Sid: ''
              Effect: Allow
              Principal:
                Service: lambda.amazonaws.com
              Action: sts:AssumeRole
          Path: "/"
          Policies:
          - PolicyName: GlobalTableCustomResourceLambdaPolicy
            PolicyDocument:
              Version: '2012-10-17'
              Statement:
              - Effect: Allow
                Action:
                - dynamodb:CreateTable
                - dynamodb:UpdateTable
                - dynamodb:DeleteTable
                Resource: "*"
          ManagedPolicyArns:
          - arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
    

    对于 Python 代码,我认为它超出了 StackOverflow 答案的范围,我将向您推荐这篇贯穿整个过程的文章:https://serverlesscode.com/post/python-custom-resource-cloudformation/

    【讨论】:

      猜你喜欢
      • 2017-12-13
      • 1970-01-01
      • 1970-01-01
      • 2020-11-04
      • 1970-01-01
      • 2018-12-07
      • 1970-01-01
      • 1970-01-01
      • 2020-11-10
      相关资源
      最近更新 更多