An open API service indexing awesome lists of open source software.

https://github.com/isystk/aws-lambda-gulp

AWS Lambda から、DynamoDB に書き込みをするサンプルです。(GulpでZIPしてデプロイ)
https://github.com/isystk/aws-lambda-gulp

aws-cli aws-lambda gulp

Last synced: 10 months ago
JSON representation

AWS Lambda から、DynamoDB に書き込みをするサンプルです。(GulpでZIPしてデプロイ)

Awesome Lists containing this project

README

          

aws-lambda-gulp

## 🌐概要

AWS Lambda から、DynamoDB に書き込みをするサンプルです。
GulpでZIPしてデプロイしてます。

## 💬使い方

### Labmda をZIPに纏める
```
gulp dist
```

### aws cli を起動
```
docker-compose up -d
docker-compose exec awscli /bin/bash
```

### Labmda をAWS にデプロイ
```
POLICY=$(cat<< EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "lambda.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
EOF
)
# ロールを作成する
aws iam create-role \
--role-name lambda-dynamodb-role \
--assume-role-policy-document "${POLICY}"

※ DynamoDBへのアクセス権限はCLIだとエラーになるぽいので後ほどコンソール画面から付与する

# 実行結果を CloudWatch Log として保存させる
aws iam attach-role-policy \
--role-name lambda-dynamodb-role \
--policy-arn arn:aws:iam::aws:policy/CloudWatchLogsFullAccess

# Lambda関数を作成する
aws lambda create-function \
--function-name lambda-dynamodb-read-function \
--zip-file fileb://dist/read-fde29740-3b0a-11ec-856f-514ae6ed300d.zip \
--handler index.handler \
--runtime nodejs14.x \
--role "arn:aws:iam::004796740041:role/lambda-dynamodb-role"
aws lambda create-function \
--function-name lambda-dynamodb-write-function \
--zip-file fileb://dist/write-fde29740-3b0a-11ec-856f-514ae6ed300d.zip \
--handler index.handler \
--runtime nodejs14.x \
--role "arn:aws:iam::004796740041:role/lambda-dynamodb-role"

# Lambda関数を実行してみる
aws lambda invoke \
--function-name lambda-dynamodb-write-function \
--log-type Tail \
--payload '{"email":"taro@test.com", "first_name":"太郎", "last_name":"テスト", "age":40}' \
outputfile.txt


aws lambda invoke \
--function-name lambda-dynamodb-read-function \
--log-type Tail \
--payload '{"email":"taro@test.com"}' \
outputfile.txt
```

## 🎫 Licence

[MIT](https://github.com/isystk/aws-lambda-gulp/blob/master/LICENSE)

## 👀 Author

[isystk](https://github.com/isystk)