問題タブ [aws-lambda]
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 - 同じバケットで AWS ラムダを使用して画像のサイズを変更する
現在、S3 に 2 つのバケットがbuck
ありbuck_thumb
ます。現在、画像をバケットにアップロードするbuck
と、画像のサイズをサムネイルに変更し、サムネイルをbuck_thumb
バケットにアップロードするラムダ関数がトリガーされます。
しかし今、私はそれを好きにしたい -buck
バケットで画像のURLを送信すると、画像をダウンロードしてサイズを変更します。
方法はありますか?バケットを 1 つだけ使用してこれを行うことができますか?
javascript - Node.js と AWS Lambda を使用して S3 ファイルの内容を postgres テーブルに記録する
S3 put イベント (ログファイル) に応答し、ファイルを読み取り、COPY コマンドを介して Postgres テーブルに挿入するAWS Lambda実行スクリプトを node.js で作成しています。logToPostgres
データベースへの書き込み (以下のスクリプト)を除くすべてが期待どおりに機能しているようです。
いくつかのメモ:
- ここでは関係ないので、S3 put イベントであることを確認するためにチェックする部分と、その他のエラー処理コードを削除しました。
- データベース ユーザーは
INSERT
、テーブルとALL
データベースに対するアクセス許可を持ち、任意の IP からアクセスできます (すべて検証済み)。 secrets.js
データベース資格情報をエクスポートする同じディレクトリ内のモジュールです- スクリプトをローカルで実行すると、データベースに問題なく書き込むことができます。
- AWS Lambda の制限に達していません — S3 からダウンロードされたファイルは 521 バイトで、タイムアウトは最大 60 秒に設定されています (テストと同じ DB への書き込みでは 300 ミリ秒未満で実行されます)。
stream.pipe(query)...
クラウド ウォッチにエラーはなく、すべてのステップでログを追加することで、コードの部分に絞り込むことができました。何らかの理由で、この部分は AWS Lambda によって実行されていませんが、ローカルでは正常に実行されています。'finished'
andイベントを発行していない'end'
ため、実行されないままになっていると思います。
問題がどこにあるのかについて何か考えはありますか?
アップデート:
書き込み可能なストリームがイベントを発行するようになったことが判明した'finish'
ため、それを変更し'finish'
て回答からの提案を含めると、エラーなしで実行されます。ただし、ラムダの実行後、データベースにはまだ行がありません。トランザクションがロールバックされているのではないかと思いますが、その理由や場所を特定できません。私は明示的にトランザクションを開始してコミットしようとしましたが、サイコロはありませんでした。
php - Amazon Lambda 呼び出しエラー
PHP から Amazon Lambda 関数を呼び出す必要がありますが、AWSLambdaFullAccess 権限を持っていると奇妙な権限エラーが発生します。私のコード:
これはエラーです:
何か案は?ありがとう
amazon-web-services - http リクエストで AWS Lambda 関数を呼び出す
AWS Lambda 関数を http リクエスト (GET または POST) で直接呼び出すことはできますか? そうでない場合、SNS または S3 を経由する回避策はありますか? 一つしか思い浮かばないので…
具体的には、JSON を使用して小さな API を作成したいと考えています。
node.js - AWS Lambda での AWS S3 サービス呼び出しで context.succeed()/context.fail() を適切に処理する
私はすでにここの投稿を検索しました (つまり、すべての呼び出しが非同期であることを考えると、ラムダ内で順次 AWS サービス呼び出しをどのように構造化しますか? ) および他の場所で、私が乗り越えるのに役立つ少しの情報を見つけることができないようですこの悩ましい問題。ループを反復処理する Lambda 関数があり、そのループ内で s3.putObject() の呼び出しを行う場合、context.succeed()/context.fail を適切に処理しようとすると短絡の問題が発生します。 () または Lambda プロセスを閉じる古い context.done(null, 'msg') 方法。
IE 反復では、アップロードする現在のオブジェクトで s3.putObject() を呼び出す必要がありますが、正常にアップロードされたファイルを cloudwatch またはおそらく SQS/SNS に出力します。ただし、このタイプのクロージャーを関数に入れようとする私の試みはすべて、ファイル名を取得することもあれば、ファイル名の一部のみを取得することもあるなどのランダムな結果に遭遇します。
それを行う最良の方法は何ですか?私は Q と async を使用しようとしましたが、正直なところ、私はまだこれらすべてを学んでいます..
以下は、私がやろうとしていることの大まかな例です:
しかし、前に述べたように、これまでに行った試みはすべて、さまざまな結果をもたらします。
しかし、関数出力の別のテスト:
ああ。