問題タブ [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.
aws-sam - そのようなファイルを読み込めません -- mysql2
sam build
たまたまコンパイルされたmysql2 gemを含めた場合を除いて、私にとってはうまく機能しています。この gem を含めると、ラムダは mysql2 が見つからないことを通知します。
私の中を見ると.aws-sam/build/MyLambdaFunctionName/vendor/bundle/ruby/2.5.0/gems
、mysql2-.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
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 のバージョン管理ではない) に関する議論がインターネット上で見つからないことに驚いています。これを処理するための規則はありますか?