

这是新的《Amazon CloudFormation 模板参考指南》**。请更新您的书签和链接。有关开始使用 CloudFormation 的帮助，请参阅《Amazon CloudFormation 用户指南》[https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/Welcome.html](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/Welcome.html)。

# Amazon 资源和属性类型参考
资源和属性参考

该部分包含 Amazon CloudFormation 支持的所有 Amazon 资源和属性类型的参考信息。

资源类型标识符总是采用以下形式：

```
service-provider::service-name::data-type-name
```

**Topics**
+ [共享属性类型](cfn-reference-shared.md)

# 共享属性类型参考
共享属性类型

该部分包含 Amazon CloudFormation 支持在多个资源类型中使用的属性类型的详细参考信息。

**Topics**
+ [

# Amazon CloudFormation 资源自定义命名
](aws-properties-name.md)
+ [

# Amazon CloudFormation 资源标签
](aws-properties-resource-tags.md)

# Amazon CloudFormation 资源自定义命名
名称

您可以在 CloudFormation 模板中为支持的资源类型分配自定义名称，以使其更有意义且易于识别。默认情况下，CloudFormation 会生成唯一物理 ID 来命名资源。举例来说，CloudFormation 可能会使用物理 ID `MyStack-MyBucket-abcdefghijk1` 来命名 Amazon S3 桶。借助自定义名称，您可以指定一个更易于读取和识别的名称，如 `production-app-logs` 或 `business-metrics`。

并非所有资源都支持自定义名称。每个 Amazon 服务独立决定哪些资源类型支持自定义名称。

资源名称在您的所有活动堆栈中必须是唯一的。如果您重复使用模板来创建多个堆栈，则必须从模板来更改或删除自定义名称。如果您没有指定名称，则 CloudFormation 将生成一个唯一物理 ID 来为资源命名。名称必须以字母开头，只能包含 ASCII 字母、数字和连字符，并且不能以连字符结尾或包含两个连续的连字符。

此外，请勿管理 CloudFormation 外部的堆栈资源。举例来说，如果重命名一个资源，该资源属于未使用 CloudFormation 的堆栈，每次当您尝试更新或删除该堆栈时，都可能发生错误。

**重要**  
您无法执行导致自定义命名的资源被更换的更新。如果必须替换资源，请指定新名称。

## 示例


如果您想要使用自定义名称，请在 CloudFormation 模板中为该资源指定名称属性。支持自定义名称的每个资源都具有可以指定的自身属性。例如，要命名一个 DynamoDB 表，您可以使用 `TableName` 属性，如以下示例所示：

### JSON


```
"myDynamoDBTable" : {
   "Type" : "AWS::DynamoDB::Table",
   "Properties" : {
      "KeySchema" : {
         "HashKeyElement": {
            "AttributeName" : "AttributeName1",
            "AttributeType" : "S"
         },
         "RangeKeyElement" : {
            "AttributeName" : "AttributeName2",
            "AttributeType" : "N"
         }
      },
      "ProvisionedThroughput" : {
         "ReadCapacityUnits" : "5",
         "WriteCapacityUnits" : "10"
      },
      "TableName" : "SampleTable"
   }
}
```

### YAML


```
myDynamoDBTable: 
  Type: AWS::DynamoDB::Table
  Properties: 
    KeySchema: 
      HashKeyElement: 
        AttributeName: "AttributeName1"
        AttributeType: "S"
      RangeKeyElement: 
        AttributeName: "AttributeName2"
        AttributeType: "N"
    ProvisionedThroughput: 
      ReadCapacityUnits: "5"
      WriteCapacityUnits: "10"
    TableName: "SampleTable"
```

# Amazon CloudFormation 资源标签
标签

您可以使用 CloudFormation 模板中的 `Tags` 属性将标签应用于资源，这可以帮助您识别和分类这些资源。

有关哪些资源支持 `Tags` 属性的信息，请参阅 [Amazon 资源和属性类型参考](https://docs.amazonaws.cn/AWSCloudFormation/latest/TemplateReference/aws-template-resource-type-ref.html)中的各个资源。如果资源尚不支持 `Tags` 属性，则资源的服务可能支持使用其自己的 API 操作进行标记。有关更多信息，请参阅该服务的文档。

除了您定义的任何标签之外，CloudFormation 还会自动创建带有 `aws:` 前缀的以下堆栈级标签：
+ `aws:cloudformation:logical-id`
+ `aws:cloudformation:stack-id`
+ `aws:cloudformation:stack-name`

`aws:` 前缀专门预留供 Amazon 使用。此前缀不区分大小写。如果您在 `Key` 或 `Value` 属性中使用此前缀，则无法更新或删除标签。具有此前缀的标签不计入每个资源的最大标签数。

堆栈级标签到资源的传播（包括带有 `aws:` 前缀的标签）因资源类型而异。例如，标签不会传递给从块设备映射创建的 Amazon EBS 卷。

**注意**  
一些资源需要明确的标签传播设置。例如，`AWS::AutoScaling::AutoScalingGroup` 资源的 `PropagateAtLaunch` 属性必须设置为 `true`，才能将标签传播到其 EC2 实例。但是，无论 `PropagateAtLaunch` 设置如何，堆栈级标签都会自动应用于 EC2 实例。

## 语法


### JSON


```
{
  "Key" : String,
  "Value" : String
}
```

### YAML


```
Key: String
Value: String
```

## 属性


`Key`  <a name="cfn-resource-tags-key"></a>
标签的键名称。您可以指定一个值，该值的长度为 1 到 128 个 Unicode 字符并且不能以 `aws:` 为前缀。您可以使用以下任一字符：Unicode 字母、数字、空格、`_`、`.`、`:`、`/`、`=`、`+`、`@`、`-` 和 `"` 的组合。  
*是否必需*：是  
*类型*：字符串

`Value`  <a name="cfn-resource-tags-value"></a>
标签的值。您可以指定长度为 1 到 256 个字符的值。您可以使用以下任一字符：Unicode 字母、数字、空格、`_`、`.`、`/`、`=`、`+` 和 `-` 的组合。  
*是否必需*：是  
*类型*：字符串

## 示例


本示例将展示 `Tags` 属性。您在支持该属性的资源的 `Properties` 部分内指定该属性。创建资源时，使用参数动态设置 `Environment` 标签，并将 `Owner` 标签静态设置为 `MyName`。

### JSON


```
 1. "Tags" : [
 2.    {
 3.       "Key" : "Environment",
 4.       "Value" : { "Ref": "Environment" }
 5.    },
 6.    {
 7.       "Key" : "Owner",
 8.       "Value" : "MyName"
 9.    }
10. ]
```

### YAML


```
1. Tags: 
2.   - Key: Environment
3.     Value: !Ref Environment
4.   - Key: Owner
5.     Value: MyName
```

## 另请参阅

+ 《Amazon CloudFormation 用户指南》**中的[配置堆栈选项](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html#configure-stack-options)
+ 《Amazon CloudFormation 用户指南》**中的[在 Amazon Web Services 管理控制台 上查看 CloudFormation 堆栈数据和资源](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/cfn-console-view-stack-data-resources.html)