問題タブ [aws-sam-cli]
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.
amazon-web-services - SAM テンプレートで既存の FunctionName を指定する方法
SAM を使用して AWS Lambda 関数をデプロイしようとしています。私がやりたいことは、ローカル ソース コードをデプロイして、既存のラムダ関数を更新することです。
そのために、以下のように template.yaml で既存のラムダ関数名を「FunctionName」として指定しました。ただし、「FunctionName」は新しい関数の作成のみをサポートし、既存の関数への更新はサポートしていません。 https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-functionname
ラムダ関数を更新するためにSAMで関数名を指定する方法はありますか?
[テンプレート.yaml]
aws-lambda - Cloud9 で Lambda をデプロイする
こんにちは、これが私のプロジェクト構造です:
-AppName
-Common
-common.js //Global module which i'm using in all functions
-Func1
-index.js
-Func2
-index.js
-template.yaml
そして、ここに template.yaml コンテンツがあります:
AWSTemplateFormatVersion: '2010-09-09'
Transform: 'AWS::Serverless-2016-10-31'
Description: An AWS Serverless Specification template describing your function.
Resources:
Func1:
Type: 'AWS::Serverless::Function'
Properties:
Handler: Func1/index.handler
Runtime: nodejs6.10
MemorySize: 512
Timeout: 10
Func2:
Type: 'AWS::Serverless::Function'
Properties:
Handler: Func2/index.handler
Runtime: nodejs6.10
MemorySize: 512
Timeout: 10
たとえば Func2 をデプロイすると、結果パッケージには、Func2 のみではなく、アプリケーション内のすべてのフォルダーが含まれます。結果パッケージに含まれるファイルを yaml ファイルで設定することはできますか? たとえば、Func2 を展開する場合、次のパッケージで見たい:
-Common
-common.js
-Func2
-index.js
amazon-web-services - Docker で AWS SAM Local を dynamodb に接続する
AWS sam local を使用して api ゲートウェイ/aws ラムダ ペアをセットアップし、実行後に正常に呼び出すことができることを確認しました
sam local start-api
次に、docker コンテナにローカルの dynamodb インスタンスを追加し、aws cli を使用してその上にテーブルを作成しました
しかし、コードをラムダに追加して、受け取った dynamodb インスタンスに書き込みます。
2018-02-22T11:13:16.172Z ed9ab38e-fb54-18a4-0852-db7e5b56c8cd エラー: テーブルに書き込めませんでした: {"message":"connect ECONNREFUSED 0.0.0.0:8000","code":"NetworkingError", "errno":"ECONNREFUSED","syscall":"接続","アドレス":"0.0.0.0","ポート":8000,"地域":"eu-west-2","ホスト名":"0.0 .0.0","retryable":true,"time":"2018-02-22T11:13:16.165Z"} コマンドからの書き込みイベント: {"name":"test","geolocation":"xyz"," type":"createDestination"} END RequestId: ed9ab38e-fb54-18a4-0852-db7e5b56c8cd
同じ docker ネットワークに接続する必要があるかもしれないことをオンラインで見たので、ネットワークを作成しdocker network create lambda-local
、開始コマンドを次のように変更しました。
sam local start-api --docker-network lambda-local
と
docker run -v "$PWD":/dynamodb_local_db -p 8000:8000 --network=lambda-local cnadiminti/dynamodb-local:latest
それでも同じエラーが発生します
サムローカルが印刷されています2018/02/22 11:12:51 Connecting container 98b19370ab92f3378ce380e9c840177905a49fc986597fef9ef589e624b4eac3 to network lambda-local
以下を使用して dynamodbclient を作成しています。
私のコードがショーを作成しているdynamodbclientを調べる
このセットアップは機能しますか? どうすればお互いに話せるようになりますか?
- - 編集 - -
Twitter での会話に基づいて、CLI および Web シェルで dynamodb を操作できることを (おそらく) 言及する価値があります。