AWS DYNAMODBローカル環境で使用(2)
AWS DYNAMODBローカル環境での使用(1)-ローカル環境設定を参照
前回の記事では、ローカルで利用可能な
まず、私の場合は以下の手順で行います.
1.Postmanを使用したcURLコードの生成
2.生成されたコード.shファイルで実行(端末)
ではPostmanでどうやって作ったのか見てみましょう
上のスクリーンショットから、コアはHeaders宣言の認証部分とターゲットであることがわかります.
X-Amz-Targetの内容については、正式な書類を確認すれば、どのように入力するかを確認できると思いますが、
Bodyはjsonによって書かれています
上で生成したコードをshファイルにコピーすればいいです.Shellスクリプト宣言
作成 Table Item Itemクエリ Item Table
前回の記事では、ローカルで利用可能な
DynamoDB
を構築し、CURL通信を使用してCRUDを実行するAWS CLIを使用しました.まず、私の場合は以下の手順で行います.
1.Postmanを使用したcURLコードの生成
2.生成されたコード.shファイルで実行(端末)
ではPostmanでどうやって作ったのか見てみましょう
1.Postman設定

上のスクリーンショットから、コアはHeaders宣言の認証部分とターゲットであることがわかります.
X-Amz-Targetの内容については、正式な書類を確認すれば、どのように入力するかを確認できると思いますが、
Authorization
認証なら公式文書を確認しても曖昧な点が多いです.ローカルではCremential={a}/{b}/{c}と同じ形でデータを入れるだけで済むからかもしれません.実際のDynamodBにアクセスするには、IAMのアクセスキーを使って認証する必要があります.この部分はローカル環境なので、問題のないスキップと見なしてスキップしましょう.Bodyはjsonによって書かれています
{
"AttributeDefinitions": [
{
"AttributeName": "id",
"AttributeType": "S"
},
{
"AttributeName": "mentionId",
"AttributeType": "N"
},
{
"AttributeName": "createdAt",
"AttributeType": "S"
}
],
"TableName": "Comment5",
"KeySchema": [
{
"AttributeName": "id",
"KeyType": "HASH"
}
],
"GlobalSecondaryIndexes": [
{
"IndexName": "byMentionId",
"KeySchema": [
{
"AttributeName": "mentionId",
"KeyType": "HASH"
},
{
"AttributeName": "createdAt",
"KeyType": "RANGE"
}
],
"Projection": {
"ProjectionType": "ALL"
},
"ProvisionedThroughput": {
"ReadCapacityUnits": 1,
"WriteCapacityUnits": 1
}
}
],
"ProvisionedThroughput": {
"ReadCapacityUnits": 1,
"WriteCapacityUnits": 1
}
}
書き終わったら右側のコードを開くと、完成したcURLコードが表示されます.
2.Shellスクリプトの作成と実行
上で生成したコードをshファイルにコピーすればいいです.Shellスクリプト宣言
#!/bin/bash
.作成
#!/bin/bash
curl --location --request POST 'http://localhost:8000' \
--header 'Authorization: AWS4-HMAC-SHA256 Credential=key1/20190526/ap-northeast-2' \
--header 'X-Amz-Target: DynamoDB_20120810.CreateTable' \
--header 'Content-Type: application/json' \
--data-raw '{
"TableName": "Comment",
"AttributeDefinitions": [
{
"AttributeName": "id",
"AttributeType": "S"
},
{
"AttributeName": "mentionId",
"AttributeType": "N"
},
{
"AttributeName": "createdAt",
"AttributeType": "S"
}
],
"KeySchema": [
{
"AttributeName": "id",
"KeyType": "HASH"
}
],
"GlobalSecondaryIndexes": [
{
"IndexName": "byMentionId",
"KeySchema": [
{
"AttributeName": "mentionId",
"KeyType": "HASH"
},
{
"AttributeName": "createdAt",
"KeyType": "RANGE"
}
],
"Projection": {
"ProjectionType": "ALL"
},
"ProvisionedThroughput": {
"ReadCapacityUnits": 1,
"WriteCapacityUnits": 1
}
}
],
"ProvisionedThroughput": {
"ReadCapacityUnits": 1,
"WriteCapacityUnits": 1
}
}'
作成および変更#!/bin/bash
curl --location --request POST 'http://localhost:8000' \
--header 'Authorization: AWS4-HMAC-SHA256 Credential=key1/20190526/ap-northeast-2' \
--header 'X-Amz-Target: DynamoDB_20120810.PutItem' \
--header 'Content-Type: application/json' \
--data-raw '
{
"TableName": "Comment",
"Item": {
"id": {"S": "1"},
"name": {"S": "testName"},
"mentionId": {"N": "1"},
"content": {"S": "testContent"},
"createdAt": {"S": "2022-03-24"}
}
}'
#!/bin/bash
curl --location --request POST 'http://localhost:8000' \
--header 'Authorization: AWS4-HMAC-SHA256 Credential=key1/20190526/ap-northeast-2' \
--header 'X-Amz-Target: DynamoDB_20120810.GetItem' \
--header 'Content-Type: application/json' \
--data-raw '
{
"TableName": "Comment",
"Key": {
"id": {"S": "1"}
}
}'
削除#!/bin/bash
curl --location --request POST 'http://localhost:8000' \
--header 'Authorization: AWS4-HMAC-SHA256 Credential=key1/20190526/ap-northeast-2' \
--header 'X-Amz-Target: DynamoDB_20120810.DeleteItem' \
--header 'Content-Type: application/json' \
--data-raw '
{
"TableName": "Comment",
"Key": {
"id": {"S": "1"}
}
}'
削除#!/bin/bash
curl --location --request POST 'http://localhost:8000' \
--header 'Authorization: AWS4-HMAC-SHA256 Credential=key1/20190526/ap-northeast-2' \
--header 'X-Amz-Target: DynamoDB_20120810.DeleteTable' \
--header 'Content-Type: application/json' \
--data-raw '
{
"TableName": "Comment"
}'
cURLでdynamodbにアクセスするのはここまでです.Springbootで使われている部分をまとめてみましょう.Reference
この問題について(AWS DYNAMODBローカル環境で使用(2)), 我々は、より多くの情報をここで見つけました https://velog.io/@givepro91/AWS-DynamoDB-로컬-환경에서-사용-2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol