Lambda 関数(C#)で DynamoDB にアクセスして PutItem (Insert/データ追加)する方法をメモしておきます。
まず、DynamoDBのItemIdというテーブルを以下のように作成します。パーティションキーはidで、_versionはキーではない属性になります。
Lambda 関数(C#)で PutItem するには、以下のように記述します。
using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Text; using System.Threading.Tasks; using Amazon.DynamoDBv2; using Amazon.DynamoDBv2.Model; using Amazon.Lambda.Core; [assembly: LambdaSerializer(typeof(Amazon.Lambda.Serialization.Json.JsonSerializer))] namespace AWSLambda1 { public class Function { public async Task FunctionHandler(object input, ILambdaContext context) { AmazonDynamoDBClient client = new AmazonDynamoDBClient(); string tableName = "ItemId"; try { var request = new PutItemRequest { TableName = tableName, Item = new Dictionary<string, AttributeValue>() { { "id", new AttributeValue() { S = "CategoryId" } }, { "_version", new AttributeValue() { N = "0" } } } }; await client.PutItemAsync(request); Console.WriteLine("Task completed."); } catch (Exception e) { Console.WriteLine(e.Message); } } } }
この Lamda 関数の実行結果のログは以下のようになり、問題が起きていないことが分かります。
また、DynamoDB の ItemId テーブルの内容を確認すると、正しくデータが追加されていることが分かります。
なお、参考サイトは以下のものになります。