Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9350

【AWS】S3のPUTイベントをトリガーにLambda(Node.js 14.x)を起動する

$
0
0
きっかけ 案件でS3ファイルのPUTをトリガーにLambdaを動かして、PUTされたファイルを加工するような処理が必要なため、仕組みの具体的な設定内容の確認をしたかったため。 やりたいこと概要 前提 AWS: 社用アカウント利用 構築Step S3バケット作成 Lambdaの構築、ソース修正 Lambdaに紐づくIAMロール修正 Originバケット PUTトリガー設定 動作確認 1. S3バケット作成 デフォルト設定のまま、Origin、Copiedバケットを作成 2. Lambdaの構築、ソース修正 デフォルト設定(ランタイム:Node.js 14.x)でLambdaを構築 Lambdaのソースコードを以下の内容に修正、デプロイを実施 index.js 'use strict'; const aws = require('aws-sdk'); const s3 = new aws.S3(); exports.handler = async (event) => { //S3から送られたトリガー内容を確認 console.log(event); const bucket = event['Records'][0]['s3']['bucket']['name']; const key = event['Records'][0]['s3']['object']['key']; console.log(bucket); console.log(key); //S3.copyObjectを実施(params内Bucket,CopySource, Keyは必須) const params = { Bucket: "copied-bucket-210731/210731", CopySource: bucket+'/'+key, Key: key }; const result = await s3.copyObject(params).promise(); console.log(result) }; 3. Lambdaに紐づくIAMロール修正 Lambdaに紐づいているLambda実行ロールにAmazonS3FullAccessをアタッチ (ベストプラクティスでは最小権限原則ですが今回は割愛) 4. Originバケット PUTトリガー設定 S3のOriginバケットでプロパティ>イベント通知からイベント通知を作成 任意のイベント名を設定、イベントタイプを"PUT"に設定、送信先を今回作成したLambda関数を指定してトリガーを設定 5. 動作確認 OriginバケットにAWS CLIでファイルをアップロードする AWS CloudShellを起動、適当なテキストファイルを作成、CLIコマンドによりS3のOriginバケットへファイルをアップロードする Originバケットにファイルがアップロードされていることの確認 Copiedバケットにファイルがコピーされていることの確認 Lambdaの実行ログの確認 参考サイト

Viewing all articles
Browse latest Browse all 9350

Trending Articles