AWS CloudFormation スタックの外部で削除されたリソースを再作成したいと考えています。
簡単な説明
リソースの論理 ID がテンプレートから削除されると、CloudFormation はそのリソースが削除されたと解釈します。テンプレート内でリソースの論理 ID を変更すると、置換更新が開始されます。このアップデートにより、削除された CloudFormation リソースが置き換えられます。
注: 古い論理 ID への参照を、すべて更新する必要があります。
解決策
CloudFormation スタックの外部で削除されたリソースを復帰するには、以下の手順に従ってください。
-
スタックテンプレート内の、帯域外で削除されたリソースの論理 ID を特定します。
注: 論理 ID は、リソース名である物理 ID とは異なります。
次の例では、Amazon Simple Storage Service (Amazon S3) バケットの論理 ID がエクスポート操作において参照されています。サンプルテンプレート内の S3Bucket リソースは、CloudFormation のスタック操作の外部で削除されました。
Resources:
S3Bucket: #Logical ID of the Resource
Type: AWS::S3::Bucket
Outputs:
BucketName:
Value: !Ref S3Bucket
Export:
Name: PrimaryBucket
-
削除されたリソースに新しい論理 ID を割り当てます (S3NewBucket など)。
Resources:
S3NewBucket: #The changed Logical ID of the Resource
Type: AWS::S3::Bucket
Outputs:
BucketName:
Value: !Ref S3Bucket
Export:
Name: PrimaryBucket
-
古い論理 ID のすべての参照を検索し、新しい論理 ID に置き換えます。
Resources:
S3NewBucket: #The changed logical ID of the resource
Type: AWS::S3::Bucket
Outputs:
BucketName:
Value: !Ref S3NewBucket #Reference has been updated to point towards the new logical ID
Export:
Name: PrimaryBucket
-
編集したテンプレートを使用して CloudFormation スタックを更新します。更新により、削除されたリソースが再作成されます。
関連情報
スタックリソース更新の動作