AWS CloudFormation のエラー「カスタム名の付いたリソースを置き換える必要があると、スタックを更新できません」を解決する方法を教えてください。

所要時間1分
0

AWS CloudFormation スタックを更新しようとすると、次のようなエラーメッセージが表示されます。「カスタム名の付いたリソースを置き換える必要があると、CloudFormation はスタックを更新できません。MYResourceXXX の名前を変更して、もう一度スタックを更新してください。」 このエラーの解決方法を教えてください。

簡単な説明

このエラーは通常、スタックの更新で、プロパティを持つリソースをカスタム名で置き換えようとしたときに発生します。カスタム名が別の名前に変更されない限り、AWS CloudFormation はカスタム名を持つリソースを置き換えません。スタックの失敗を防ぎ、エラーメッセージを回避するには、スタックを更新する前に、カスタム名を持つリソースを変更して別の名前を使用します。

このエラーの解決方法は、以下を前提としています。

  • 既存のスタックを更新した。新しいスタックは作成していない。
  • 既存のカスタム名のリソースの名前を変更した。新しいカスタム名のリソースは作成していない。

解決方法

1.    コードエディタで、更新するスタックの AWS CloudFormation テンプレートを開きます。

2.    カスタム名を持つすべてのリソースプロパティの名前または値を別の名前に置き換えます。

;注: 次の例では、 DBInstanceIdentifier プロパティー ( MyRDS リソース内) は、カスタム名 PRODdb に設定されています。PRODdb の名前が PRODdb1 などの別の名前に変更されるまでは、AWS CloudFormation スタックが正常に更新されません。または、テンプレートから DBInstanceIdentifier プロパティを省略することもできます。このようにして、AWS CloudFormation は DB インスタンスに使用する一意の物理 ID を生成します。

"MyRDS": {
    "Type": "AWS::RDS::DBInstance",
    "Properties": {
        "DBInstanceClass": "db.m3.medium",
        "Engine": "MySQL",
        "DBInstanceIdentifier": "PRODdb",
        "AllocatedStorage": "10",
        "AutoMinorVersionUpgrade": "true",
        "BackupRetentionPeriod": "0",
    …
    …
    }
}

重要: カスタムのリソース名を変更すると、AWS CloudFormation がリソースを置き換えます。詳細については、「Name タイプ」を参照してください。特定のリソースを交換すると、適切なバックアップがない場合にデータが失われる可能性があります。詳細については、置換を参照してください。

3.    AWS CloudFormation テンプレートへの変更を保存してから、そのテンプレートを使用してスタックを更新します。


関連情報

AWS CloudFormation スタックの更新

スタックリソースの更新動作

AWS リソースプロパティタイプのリファレンス

AWS公式
AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ