日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

aws dynamodb_AWS Lambda将数据保存在DynamoDB中

發(fā)布時(shí)間:2023/12/3 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 aws dynamodb_AWS Lambda将数据保存在DynamoDB中 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

aws dynamodb

在本教程中,我們將看到如何使用AWS Lambda將數(shù)據(jù)保存在Dynamo DB中。

這是必需的步驟:

– 在Dynamo數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)名為Employee的表
–創(chuàng)建一個(gè)AWS Lambda函數(shù),該函數(shù)可以使用Dynamo DB中的Employee POJO保存員工的名字和姓氏
–創(chuàng)建一個(gè)策略,該策略將僅對(duì)DynamoD B的Employee表提供讀/寫訪問權(quán)限 –將策略附加到角色 –在AWS Lambda控制臺(tái)中以jar的形式上載AWS Lambda函數(shù)的代碼 –將在步驟4中創(chuàng)建的角色附加到AWS Lambda –運(yùn)行測(cè)試事件以調(diào)用AWS Lambda以將Employee數(shù)據(jù)保存在Dynamo DB中

1.在Dynamo數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)名為Employee的表

1.1要在Dynamo DB中創(chuàng)建表,請(qǐng)登錄AWS控制臺(tái)并在服務(wù)中搜索Dynamo DB,或者您可以在Database下找到DynamoDB服務(wù)。單擊Dynamo DB,您將看到以下屏幕。

1.2要?jiǎng)?chuàng)建一個(gè)Employee表,單擊“ Create table”按鈕,您將看到以下屏幕。 輸入表名稱為“ Employee”,分區(qū)鍵為“ emp_id”,然后單擊“ Create”按鈕。

如下面的屏幕快照所示,它將為您創(chuàng)建Employee表。

只需單擊項(xiàng)目選項(xiàng)卡,您就可以看到帶有empId列的表已創(chuàng)建。

2.創(chuàng)建一個(gè)AWS Lambda函數(shù),該函數(shù)可以使用Dynamo數(shù)據(jù)庫(kù)中的Employee POJO保存雇員的名字和姓氏

Pom.xml中的依賴項(xiàng):

<dependency><groupId>com.amazonaws</groupId><artifactId>aws-lambda-java-core</artifactId><version>1.1.0</version> </dependency> <dependency><groupId>com.amazonaws</groupId><artifactId>aws-java-sdk-dynamodb</artifactId><version>1.11.0</version> </dependency>

Java代碼:

package com.blogspot.javasolutionsguide.handler;import com.amazonaws.regions.Region; import com.amazonaws.regions.Regions; import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient; import com.amazonaws.services.dynamodbv2.document.DynamoDB; import com.amazonaws.services.dynamodbv2.document.Item; import com.amazonaws.services.dynamodbv2.document.PutItemOutcome; import com.amazonaws.services.dynamodbv2.document.Table; import com.amazonaws.services.dynamodbv2.document.spec.PutItemSpec; import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.RequestHandler; import com.blogspot.javasolutionsguide.request.Employee; import com.blogspot.javasolutionsguide.response.Response;public class SaveEmployeeHandler implements RequestHandler{private DynamoDB dynamoDb;private String DYNAMO_DB_TABLE_NAME = "Employee";private Regions REGION = Regions.US_EAST_1;@Overridepublic Response handleRequest(Employee personRequest, Context context) {this.initDynamoDbClient();persistData(personRequest);Response personResponse = new Response();personResponse.setMessage("Message Saved Successfully");return personResponse;}private void initDynamoDbClient() {AmazonDynamoDBClient client = new AmazonDynamoDBClient();client.setRegion(Region.getRegion(REGION));this.dynamoDb = new DynamoDB(client);}private PutItemOutcome persistData(Employee employee) {Table table = dynamoDb.getTable(DYNAMO_DB_TABLE_NAME);PutItemOutcome outcome = table.putItem(new PutItemSpec().withItem(new Item().withNumber("empId", employee.getEmpId()).withString("firstName", employee.getFirstName()).withString("lastName", employee.getLastName())));return outcome;} }

3.創(chuàng)建一個(gè)策略,該策略將僅對(duì)DynamoDB的Employee表提供讀/寫訪問權(quán)限,并附加一個(gè)Role

我們需要提供對(duì)AWS Lambda函數(shù)的訪問權(quán)限以讀取/寫入Dynamo DB表。為此,我們將首先創(chuàng)建一個(gè)Polciy,然后將該策略附加到Role。

要?jiǎng)?chuàng)建新策略,請(qǐng)依次轉(zhuǎn)到服務(wù)和IAM。

單擊“訪問管理”下的“策略”,您將看到以下屏幕。

單擊創(chuàng)建策略,您將看到以下屏幕:

單擊“選擇服務(wù)”,然后在搜索框中鍵入DynamoDB。

選擇Dynamo DB,然后在“訪問級(jí)別”部分中選擇GetItem和PutItem。

選擇資源。

單擊您的Dynamo Db表所在的“添加ARN.Fill區(qū)域”,然后輸入表名,然后單擊“添加”。

單擊“查看策略”,然后輸入要提供給策略的名稱,并輸入有關(guān)此策略的描述,然后單擊“創(chuàng)建策略”。

4.創(chuàng)建一個(gè)角色并將策略附加到該角色

轉(zhuǎn)到IAM服務(wù)->角色,單擊“創(chuàng)建角色”按鈕,您將看到以下屏幕。

選擇AWS服務(wù)作為受信任實(shí)體。 這是您要為其分配角色的實(shí)體,因?yàn)槲覀兿雽⒋私巧峙浣oLambda函數(shù)(僅AWS服務(wù)),因此我們選擇了AWS服務(wù)。 同樣在“選擇用例”中,選擇Lambda,然后單擊“下一個(gè)權(quán)限”。 您將看到以下屏幕。

現(xiàn)在,在“篩選器策略”中,鍵入您剛在步驟2中創(chuàng)建的策略名稱(DynamoDBEmployeeTblAccess)

在下一個(gè)屏幕上,單擊“下一步:標(biāo)簽”按鈕,然后單擊“下一個(gè):審閱”按鈕。在下一個(gè)屏幕上,在“角色名稱”中輸入名稱“ DynamoDBEmployeeTblAccess”。 添加角色描述。

單擊“創(chuàng)建角色”按鈕,您將看到以下成功消息:

5.在AWS Lambda控制臺(tái)中以jar的形式上傳AWS Lambda函數(shù)的代碼

本教程的所有代碼都已放入我的Git存儲(chǔ)庫(kù)中。 鏈接在本教程的結(jié)尾給出。

因此,您可以將該代碼導(dǎo)入您的工作區(qū)中,然后進(jìn)行maven構(gòu)建,這將為您創(chuàng)建jar,然后按照我之前的教程進(jìn)行操作
如何使用Java創(chuàng)建Aws Lambda函數(shù) ,您可以輕松地將jar上傳到AWS lambda控制臺(tái)。

6.將在步驟4中創(chuàng)建的角色附加到AWS Lambda

在Lambda的“權(quán)限”部分中,選擇“附加現(xiàn)有角色”,然后從下拉列表中選擇在步驟4中創(chuàng)建的角色,然后單擊“保存”。

7.運(yùn)行Test事件以調(diào)用AWS Lambda將Person數(shù)據(jù)保存在Dynamo DB中

成功上傳罐子后,轉(zhuǎn)到“選擇測(cè)試事件”下拉菜單,然后單擊“配置測(cè)試事件”。

您將看到包含以下數(shù)據(jù)的屏幕。輸入事件名稱為“ HelloWorldEvents”并替換以下數(shù)據(jù)

{ "key1": "value1", "key2": "value2", "key3": "value3"}with below Json : { "empId": 1, "firstName": "Gaurav", "lastName": " Bhardwaj"} /pre>

Click on "save" button and then on "Test" button.

You should be able to see following screen.

現(xiàn)在轉(zhuǎn)到您的Dynamo Db服務(wù)并打開Employee表,然后單擊Start search按鈕,您應(yīng)該可以看到以下記錄:

您可以在GitHub中找到本教程的所有代碼。

總結(jié)和幾點(diǎn)要點(diǎn):

因此,在本教程中,我們看到了

-如何使用Lambda函數(shù)將數(shù)據(jù)保存在Dynamo DB中。

-我們僅創(chuàng)建了empId屬性,并且在保存Employee對(duì)象時(shí)Dynamo Db會(huì)自動(dòng)為我們創(chuàng)建其余屬性,因?yàn)樗哂衒irstName和surName屬性,并且POJO的名稱與表的名稱匹配。 DynamoDB控制臺(tái)也具有所有三個(gè)屬性的表。

-如果我們?cè)俅螄L試保存相同的對(duì)象(具有相同的ID),那么它將只是覆蓋現(xiàn)有的對(duì)象,因此不會(huì)有任何異常。

翻譯自: https://www.javacodegeeks.com/2020/03/aws-lambda-to-save-data-in-dynamodb.html

aws dynamodb

總結(jié)

以上是生活随笔為你收集整理的aws dynamodb_AWS Lambda将数据保存在DynamoDB中的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。