

これは新しい CloudFormation テンプレートリファレンスガイドです。ブックマークとリンクを更新してください。CloudFormation の開始方法については、『[AWS CloudFormation ユーザーガイド](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)』を参照してください。

# AWS リソースおよびプロパティタイプのリファレンス
<a name="aws-template-resource-type-ref"></a>

このセクションには、CloudFormation でサポートされているすべての AWS リソースタイプおよびプロパティタイプのリファレンス情報が含まれています。

リソースタイプ識別子は、常に次の形式です。

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

**Topics**
+ [共有プロパティタイプ](cfn-reference-shared.md)

# 共有プロパティタイプのリファレンス
<a name="cfn-reference-shared"></a>

このセクションには、複数のリソースタイプで使用するために CloudFormation でサポートされているプロパティタイプの詳細なリファレンス情報が記載されています。

**Topics**
+ [CloudFormation リソースのカスタム命名](aws-properties-name.md)
+ [CloudFormation リソースへのタグ付け](aws-properties-resource-tags.md)

# CloudFormation リソースのカスタム命名
<a name="aws-properties-name"></a>

CloudFormation テンプレートでサポートされているリソースタイプにカスタム名を割り当てると、それらをより有益かつ簡単に識別できるものにできます。デフォルトでは、リソースを特定する一意の物理 ID が CloudFormation によって生成されます。例えば、CloudFormation は、Amazon S3 バケットに `MyStack-MyBucket-abcdefghijk1` などの物理 ID を使用して名前を付ける場合があります。カスタム名を使用すると、`production-app-logs` や `business-metrics` など、一見して判別しやすい名前を指定することができます。

カスタム名はすべてのリソースでサポートされているわけではありません。各 AWS サービスは、カスタム名をサポートするリソースタイプを個別に決定します。

リソース名は実行中のすべてのスタックおいて一意である必要があります。テンプレートを再利用して複数のスタックを作成する場合、テンプレートに基づくカスタム名は変更するか削除する必要があります。名前を指定しない場合、CloudFormation は一意の物理 ID を生成してリソースの名前とします。名前は文字で開始し、ASCII 文字、数字、ハイフンのみを使用できます。最後の文字をハイフンにすることはできず、ハイフンを 2 つ続けて使用することもできません。

スタックリソースの管理を CloudFormation 以外で行うことも避けてください。例えば、スタックに属しているリソースの名前を CloudFormation を使用せずに変更した場合、そのスタックを更新または削除しようとしたときにエラーが発生します。

**重要**  
カスタムで名前を付けたリソースの置き換えが発生する更新は実行できません。リソースを置き換える必要がある場合は、新しい名前を指定します。

## 例
<a name="aws-properties-name-example"></a>

カスタム名を使用する場合は、CloudFormation テンプレートで、目的のリソースの名前プロパティを指定します。カスタム名をサポートする各リソースには、独自の名前を指定するためのプロパティが存在します。たとえば、DynamoDB テーブルに名前を付けるには、`TableName` プロパティを使用します。その例を次に示します。

### JSON
<a name="aws-properties-name-example.json"></a>

```
"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
<a name="aws-properties-name-example.yaml"></a>

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

# CloudFormation リソースへのタグ付け
<a name="aws-properties-resource-tags"></a>

CloudFormation テンプレートの `Tags` プロパティを使用してリソースにタグを適用できます。これにより、これらのリソースを識別して分類できます。

`Tags` プロパティをサポートしているリソースの詳細については、「[AWS リソースおよびプロパティタイプのリファレンス](https://docs.aws.amazon.com/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:` プレフィックスは AWS 用に限定されています。このプレフィックスでは、大文字と小文字は区別されません。`Key` または `Value` プロパティでこのプレフィックスを使用すると、タグを更新または削除することはできません。このプレフィックスを持つタグは、リソースごとのタグ数にはカウントされません。

`aws:` プレフィックスが付いたタグを含むスタックレベルのタグのリソースへの伝播は、リソースタイプによって異なります。例えば、タグはブロックデバイスマッピングから作成された Amazon EBS ボリュームには反映されません。

**注記**  
一部のリソースでは、明示的なタグの伝播設定が必要です。例えば、タグを EC2 インスタンスに伝達するには、`AWS::AutoScaling::AutoScalingGroup` リソースの `PropagateAtLaunch`プロパティを `true` に設定する必要があります。ただし、スタックレベルのタグは、`PropagateAtLaunch` 設定に関係なく EC2 インスタンスに自動的に適用されます。

## 構文
<a name="w2aac14d542c13c17"></a>

### JSON
<a name="aws-properties-resource-tags-syntax.json"></a>

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

### YAML
<a name="aws-properties-resource-tags-syntax.yaml"></a>

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

## プロパティ
<a name="w2aac14d542c13c19"></a>

`Key`  <a name="cfn-resource-tags-key"></a>
タグのキー名。値には 1～128 文字の Unicode 文字を指定できます。ただし、`aws:` のプレフィックスを付けることはできません。次の文字を使用できます: 一連の Unicode 文字、数字、空白、`_`、`.`、`:`、`/`、`=`、`+`、`@`、`-`、`"`。  
*必須:* はい  
*タイプ*: 文字列

`Value`  <a name="cfn-resource-tags-value"></a>
タグの値。1～256 文字の値を指定できます。以下の文字を使用できます。一連の Unicode 文字、数字、空白、`_`、`.`、`/`、`=`、`+`、`-`。  
*必須:* はい  
*タイプ*: 文字列

## 例
<a name="aws-properties-resource-tags-examples"></a>

この例は、`Tags` プロパティを示します。このプロパティは、このプロパティをサポートするリソースの `Properties` セクションに指定します。リソースが作成されると、`Environment` タグはパラメータを使用して動的に設定され、`Owner` タグは静的に `MyName` に設定されます。

### JSON
<a name="aws-properties-resource-tags-example.json"></a>

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

### YAML
<a name="aws-properties-resource-tags-example.yaml"></a>

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

## 関連情報
<a name="w2aac14d542c13c23"></a>
+ 『AWS CloudFormation ユーザーガイド』の「[スタックオプションを設定する](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html#configure-stack-options)」
+ 『AWS CloudFormation ユーザーガイド』の「[CloudFormation スタックのデータやリソースを AWS マネジメントコンソール で表示する](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-view-stack-data-resources.html)」