valueForStringParameter
CDKでSSMメソッドを使用する際に問題が発生しました。スタックを初めてデプロイするときは機能しますが、CloudFormationテンプレートが変更されていないため、スタックを再デプロイするときにパラメーター値の更新を取得しません。そのため、CloudFormationは、SSMパラメーターが変更されても更新がないと見なします。
コンテキストとして、cdk synth
最初に実行するCodePipelineを介してスタックをデプロイし、次にCloudFormationCreateUpdateStackAction
アクションを使用してテンプレートをデプロイします。
誰もがそれを回避する方法を知っていますか?私が知っている他の唯一のオプションは、SSMを呼び出し、aws-sdkを使用して値を返すカスタムリソースラムダに切り替えることですが、それは非常に複雑なオプションのように感じます。
更新1ValueFromLookup
値は、別のスタックによるクラウドフォーメーションのデプロイの一部として実行時にのみ更新されるため(2つの異なるリージョンのCodePipelineに両方のスタックをデプロイします)、使用できません。そのため、合成時間のルックアップは古い値になります。
ルックアップ関数を使用することはできず、構成をcdkに渡す最も一般的な方法はコンテキスト変数を使用することなので、私は汚い回避策を提案することしかできません。
たとえば、スタックにダミーパラメータを作成して、デプロイが行われるたびにバンプすることができます。
var deploymentId = new CfnParameter(this, "deploymentId", new CfnParameterProps() { Type = "String", Description = "Deployment Id" });
SetParameterValue(deploymentId, this.Node.GetContext("deploymentId").ToString());
CFを合成するときに、IDを生成できます。
cdk synth -c deploymentId=$(uuidgen)
「環境にとらわれない」ことを回避syth
でき、複数の環境にデプロイするために不変のアーティファクトが本当に必要な場合は、cdkからビルドされたパッケージ(cdkを含むnpmパッケージなど)を使用できます。したがって、ssmパラメータストアを使用する代わりに、コンテキストパラメータを上書きすることで、各環境にデプロイできます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加