Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 通过自定义资源云形成模板创建DynamoDB_Amazon Web Services_Amazon Dynamodb_Amazon Cloudformation - Fatal编程技术网

Amazon web services 通过自定义资源云形成模板创建DynamoDB

Amazon web services 通过自定义资源云形成模板创建DynamoDB,amazon-web-services,amazon-dynamodb,amazon-cloudformation,Amazon Web Services,Amazon Dynamodb,Amazon Cloudformation,我正试图用下面的云形成模板脚本在AWS DynamoDB中创建一个GlobalTable。但是我不确定我是否有所有需要的东西。 我的自定义资源部分如下所示 "CreateGlobalTable":{ "Type":"Custom::CreateGlobalTable", "Properties":{ "ServiceToken":{ "Fn::GetAtt":[ "SolutionH

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



     "CreateGlobalTable":{  
      "Type":"Custom::CreateGlobalTable",
      "Properties":{  
        "ServiceToken":{  
          "Fn::GetAtt":[  
            "SolutionHelper",
            "Arn"
          ]
        },

         "GlobalTableName": "myglobaltable",
           "ReplicationGroup": [ 
              { 
                 "RegionName": "eu-west-1"
              }
           ]
      }
    },



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

实际上,您需要一个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答案的范围,我将向您介绍这篇贯穿整个过程的文章: