6

Cloud Gatewayをdeployで実行すると、API Gatewayリソースを含むテンプレートを使用して初めて実行したときに作成され、ステージにデプロイされます。それ以降はリソースを更新しますが、ステージにはデプロイしません。CloudContationは更新時にAPIゲートウェイステージにデプロイされません

この動作は意図したとおりですか?はいの場合は、更新するたびにステージに展開する方法を教えてください。

(テラフォームが同様の問題に言及:https://github.com/hashicorp/terraform/issues/6613)を

答えて

5

簡単に新しい展開あなたのCloudformationリソース変更のたびに作成する方法はありませんように思えます。

これを回避する1つの方法は、ラムダ支援カスタムリソース(http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-custom-resources.htmlを参照)を使用することです。

あなたのリソースの1つが更新されている場合にのみ、Lambdaは新しいDeploymentを作成する必要があります。あなたの資源の一つが更新されているかどうかを判断するには、
あなたはおそらく、このAPI呼び出しの周りにカスタムロジックを実装する必要があります:http://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeStackEvents.html

あなたのカスタムリソース上の更新をトリガするために、私はそれはあなたがCloudformationパラメータを供給示唆しますカスタムリソース(現在の時刻やバージョン番号など)を強制的に更新するために使用することができます。

APIに関連するすべてのリソースを含むカスタムリソースにDependsOn句を追加する必要があることに注意してください。そうしないと、すべてのAPIリソースが更新される前にデプロイメントが作成される可能性があります。

これが役に立ちます。 Amazonの言葉で

+0

は確かに役立ちます。 :)アマゾンは別の方法を提案 - 興味があれば共有することができます。 – bjfletcher

+1

@bjfletcherは確かに知りたいです! – spg

+1

@bjfletcherこの問題にも取り組んでいますが、Amazonから何が見つかりましたか? –

2

CloudFormationは以下のとおりです。

AWS CloudFormationは、プロビジョニングの世話をし、あなたが...それはhttp://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html

のAPIの再デプロイメントは、プロビジョニング作業ではありませんです ためにそれらのリソースを設定しますソフトウェアリリースプロセスの段階の一部であるプロモーション活動

AWS CodePipelineは、ソフトウェアのリリースに必要な手順のモデル化、視覚化、および自動化に使用できる継続的な配信サービスです。 http://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html

CodePipelineもパイプラインのアクションからラムダ関数の実行をサポートしています。したがって、以前にお伝えしたように、APIをデプロイするためのラムダ関数を作成しますが、CloudFormationではなくCodepipelineから呼び出すことができます。

詳細は、このページを参照してください: http://docs.aws.amazon.com/codepipeline/latest/userguide/actions-invoke-lambda-function.html

関連する問題