問題タブ [aws-sam]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
279 参照

aws-sam - そのようなファイルを読み込めません -- mysql2

sam buildたまたまコンパイルされたmysql2 gemを含めた場合を除いて、私にとってはうまく機能しています。この gem を含めると、ラムダは mysql2 が見つからないことを通知します。

私の中を見ると.aws-sam/build/MyLambdaFunctionName/vendor/bundle/ruby/2.5.0/gemsmysql2-.0.5.2ディレクトリがあります

私もbundle install --path vendor/bundleローカルでアップロードしようとしましたが、違いがありました

AWS Ruby Lambda 関数に mysql2 を含めるにはどうすればよいですか?


編集:に追加--use-containerするsam buildと、次の原因になります:


編集 2

同様の結果でpython 3.6を試しました:


編集 3

もう少し。このエラーは、docker が実行されていないときに発生します。それが実行されているとき、私はまだエラーが発生します


編集 4

この失敗を aws-sam-cli の github ページにバグとして追加しました: https://github.com/awslabs/aws-sam-cli/issues/939

0 投票する
1 に答える
1054 参照

amazon-web-services - SAM でデプロイされた API のバージョン管理

SAM を使用して API の v1 をデプロイしました。スタックは、API Gateway、Lambda、および DynamoDB テーブルです。

Lambda 関数は、AutoPublishAliasプロパティを介してバージョン管理されます。別名は「ライブ」。v1 の新しいリリースをデプロイするたびに、新しい Lambda バージョンを取得し、「Live」エイリアスが新しいリリースを指すように変更されます。次に例を示します。

発売前:

リリース後:

ここで、v2 をデプロイしたいのですが、v1 はデプロイしたままにします。

/v1 および /v2 ベース パスを使用してパスを作成するように、swagger を変更する方法を検討しました。また、v1 の最後のリリースを指す「v1」エイリアスを作成し、そのエイリアスを /v1 API に使用します。次に例を示します。

次にAutoPublishAlias、新しいリリースごとに「ライブ」エイリアスを引き続き移動しますが、「v1」エイリアスは元の場所に保持されます。たとえば、次のようになります。

新しい v2 リリース

これは、v1 にバグを修正するのが難しいという例外を除いて、理論的根拠のように思えます。SAM を使用した API のバージョン管理 (Lambda のバージョン管理ではない) に関する議論がインターネット上で見つからないことに驚いています。これを処理するための規則はありますか?