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

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

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

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

この問題を解決するには、以下の手順を完了する必要があります。

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

2.    カスタム名を持つリソースプロパティの名前、または値を別の名前に置き換えます。
注 : 次の例では、DBInstanceIdentifier プロパティ (MyRDS リソースの) が、カスタム名 PRODdb に設定されています。AWS CloudFormation スタックは、PRODdb という名前が PRODdb1 などの別の名前に変更されるまで正常に更新できません。または、テンプレートから 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 サポート ナレッジ センターに戻る

サポートが必要ですか? AWS サポートセンターをご覧ください。

公開日 : 2015 年 08 月 28 日

更新 : 2019 年 01 月 21 日