こんにちは takeです。
今回はnodeでAWS Lambda関数を作成しました。(DymanoDBも触りました)
今後開発する際のテンプレートとして残しておきたいと思います。
(今回はDynamoDBのデータを取得しています)
index.js
const AWS = require("aws-sdk");
// DBと接続 (regionを指定するとaws accountに紐づくDynamoDBに接続されます。)
const dynamoDB = new AWS.DynamoDB.DocumentClient({
// region は人によって変わります。日本だとap-northeast-1かな?
region: "ap-northeast-1"
});
exports.handler = async (event) => {
//DynamoDB のクエリを記載する
let getDatas = async (argument) => {
const params = {
// 操作するテーブルの名前を指定
TableName: "Table Name",
// 条件式を記載 #key = :key
KeyConditionExpression: "#key = :key",
// 条件式に出てきた変数と実際のDBのテーブルの要素を結合 #keyはDBのId
ExpressionAttributeNames: { '#key':'Id'},
// 条件式に出てきた変数と関数内の変数を結合 :keyはargument
ExpressionAttributeValues: {':key':argument},
// 検索する際のsort
ScanIndexForward: true,
};
return await dynamoDB.query(params).promise();
};
//クエリを実行
let key = "sample"
let data = await getDatas(key);
// 取得結果をパース
data = data.Items;
// ここで取得したデータをコネコネ
//レスポンスを作成
const response = {
statusCode: 200,
headers: {
'Content-Type': 'application/json',
'Access-Control-Allow-Origin': '*'
},
body:data,
};
return response;
};