SAM を使用して API の v1 をデプロイしました。スタックは、API Gateway、Lambda、および DynamoDB テーブルです。
Lambda 関数は、AutoPublishAlias
プロパティを介してバージョン管理されます。別名は「ライブ」。v1 の新しいリリースをデプロイするたびに、新しい Lambda バージョンを取得し、「Live」エイリアスが新しいリリースを指すように変更されます。次に例を示します。
発売前:
Lambda version:
3 <--- Alias: Live <--- v1 API
2
1
リリース後:
Lambda version:
4 <--- Alias: Live <--- v1 API
3
2
1
ここで、v2 をデプロイしたいのですが、v1 はデプロイしたままにします。
/v1 および /v2 ベース パスを使用してパスを作成するように、swagger を変更する方法を検討しました。また、v1 の最後のリリースを指す「v1」エイリアスを作成し、そのエイリアスを /v1 API に使用します。次に例を示します。
Lambda version:
5 <--- Alias: Live <--- v2 API
4 <--- Alias: v1 <--- v1 API
3
2
1
次にAutoPublishAlias
、新しいリリースごとに「ライブ」エイリアスを引き続き移動しますが、「v1」エイリアスは元の場所に保持されます。たとえば、次のようになります。
新しい v2 リリース
Lambda version:
6 <--- Alias: Live <--- v2 API
5
4 <--- Alias: v1 <--- v1 API
3
2
1
これは、v1 にバグを修正するのが難しいという例外を除いて、理論的根拠のように思えます。SAM を使用した API のバージョン管理 (Lambda のバージョン管理ではない) に関する議論がインターネット上で見つからないことに驚いています。これを処理するための規則はありますか?