在AWS CloudFormation模板中提供DynamoDB表名称

时间:2013-08-06 13:05:50

标签: amazon-web-services amazon-dynamodb

我是AWS的新手,所以这可能是一个简单的问题。

当我使用AWS CloudFormation模板创建DynamoDB表时,我看不到为表提供名称的方法。所以最后命名为{stackName}-{resourceName}-{randomLetters}。但是,如果我手动创建DynamoDB表,我可以提供表名。

我的模板:

  "Resources" : {
    "mytable" : {
      "Type" : "AWS::DynamoDB::Table",
      "Properties" : {
        "KeySchema" : {
          "HashKeyElement": {
            "AttributeName" : {"Ref" : "HashKeyElementName"},
            "AttributeType" : {"Ref" : "HashKeyElementType"}
          }
        },
        "ProvisionedThroughput" : {
          "ReadCapacityUnits" : {"Ref" : "ReadCapacityUnits"},
          "WriteCapacityUnits" : {"Ref" : "WriteCapacityUnits"}
        }                              
      }
    }
    ...
  }

例如,如果我创建一个名为“mystack”的堆栈,则创建的DynamoDB表将具有类似于“mystack-mytable-NUEXAXXOMBXX”的名称。

2 个答案:

答案 0 :(得分:20)

您可以使用“Tablename”属性为表格命名。这是文档的链接。

http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html

"Resources" : {
  "mytable" : {
    "Type" : "AWS::DynamoDB::Table",
    "Properties" : {
      "KeySchema" : {
        "HashKeyElement": {
          "AttributeName" : {"Ref" : "HashKeyElementName"},
          "AttributeType" : {"Ref" : "HashKeyElementType"}
        }
      },
      "ProvisionedThroughput" : {
        "ReadCapacityUnits" : {"Ref" : "ReadCapacityUnits"},
        "WriteCapacityUnits" : {"Ref" : "WriteCapacityUnits"}
      },
      "TableName": "MyDynamoDBTableName"                       
    }
  }
}

答案 1 :(得分:0)

您无法为表格命名。您需要在创建后捕获它并在应用程序中使用它