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

LambdaからDynamoDBに接続する。(Node.js)

$
0
0
概要 LambdaにデプロイしたNode.jsからDynamoDBに接続し、データを取得する。 早い話が下記図を実施します。 TBLの準備 下記TBLを用意します。マイグレーション方法はリンクを参考にしてください。 ディレクトリ構成 ディレクトリ構成 ~/develop/study/aws/dynamo2 $ tree -I node_modules . ├── dynamo.js ├── package.json ├── serverless.yml └── yarn.lock dynamo.js 'use strict'; require('dotenv').config() var AWS = require('aws-sdk'); var documentClient = new AWS.DynamoDB.DocumentClient({ region: "ap-northeast-1", accessKeyId: process.env.ACCESS_KEY, secretAccessKey: process.env.SECRET_KEY }); module.exports.olympic = async (event) => { var params = { TableName: 'Olympic', Key: { 'Id': 1, 'Country': '日本' } }; var result; try { result = await documentClient.get(params).promise(); } catch (e) { result = e; } const country = result.Item.Country const goldMedal = result.Item.Medal.GoldMedal const silverMedal = result.Item.Medal.SilverMedal const bronzeMedal = result.Item.Medal.BronzeMedal let message = country +'金メダル:' + goldMedal + ' 銀メダル' + silverMedal +' 銅メダル:'+ bronzeMedal return { statusCode: 200, body: JSON.stringify(message), }; }; serverless.yml service: dynamodb2 frameworkVersion: '2' provider: name: aws runtime: nodejs12.x lambdaHashingVersion: 20201221 region: ap-northeast-1 plugins: - serverless-offline functions: lineWebhook: handler: dynamo.olympic events: - http: path: dynamo/webhook method: post ローカル実行 ローカルデプロイ ~/develop/study/aws/dynamo2 $ sls offline start offline: Starting Offline: dev/ap-northeast-1. offline: Offline [http for lambda] listening on http://localhost:3002 offline: Function names exposed for local invocation by aws-sdk: * lineWebhook: dynamodb2-dev-lineWebhook ┌───────────────────────────────────────────────────────────────────────────────┐ │ │ │ POST | http://localhost:3000/dev/dynamo/webhook │ │ POST | http://localhost:3000/2015-03-31/functions/lineWebhook/invocations │ │ │ └───────────────────────────────────────────────────────────────────────────────┘ offline: [HTTP] server ready: http://localhost:3000 🚀 offline: offline: Enter "rp" to replay the last request 実行 ~/develop/study/aws/dynamo2 $ curl -XPOST http://localhost:3000/dev/dynamo/webhook "日本金メダル:17 銀メダル11 銅メダル:11"% サーバ実行 サーバデプロイ ~/develop/study/aws/dynamo2 $ serverless deploy Serverless: Packaging service... Serverless: Excluding development dependencies... Serverless: Uploading CloudFormation file to S3... Serverless: Uploading artifacts... Serverless: Uploading service dynamodb2.zip file to S3 (10.79 MB)... Serverless: Validating template... Serverless: Updating Stack... Serverless: Checking Stack update progress... .............. Serverless: Stack update finished... Service Information service: dynamodb2 stage: dev region: ap-northeast-1 stack: dynamodb2-dev resources: 12 api keys: None endpoints: POST - https://URL/dev/dynamo/webhook functions: lineWebhook: dynamodb2-dev-lineWebhook layers: None Serverless: Removing old service artifacts from S3... Serverless: Deprecation warning: Detected ".env" files. In the next major release variables from ".env" files will be automatically loaded into the serverless build process. Set "useDotenv: true" to adopt that behavior now. More Info: https://www.serverless.com/framework/docs/deprecations/#LOAD_VARIABLES_FROM_ENV_FILES

Viewing all articles
Browse latest Browse all 9021

Trending Articles