在本教程中,我们将看到如何使用AWS Lambda将数据保存在Dynamo DB中。

这是必需的步骤:

在Dynamo数据库中创建一个名为Employee的表
–创建一个AWS Lambda函数,该函数可以使用Dynamo数据库中的Employee POJO保存雇员的名字和姓氏
–创建一个策略,该策略将仅对DynamoD B的Employee表提供读/写访问权限 –将策略附加到角色 –在AWS Lambda控制台中以jar的形式上载AWS Lambda函数的代码 –将在步骤4中创建的角色附加到AWS Lambda –运行测试事件以调用AWS Lambda以将Employee数据保存在Dynamo DB中


1.在Dynamo数据库中创建一个名为Employee的表

1.1要在Dynamo DB中创建表,请登录AWS控制台并在服务中搜索Dynamo DB,或者您可以在Database下找到DynamoDB服务。单击Dynamo DB,您将看到以下屏幕。


1.2要创建一个Employee表,单击“ Create table”按钮,您将看到以下屏幕。 输入表名称为“ Employee”,分区键为“ emp_id”,然后单击“ Create”按钮。


如下面的屏幕快照所示,它将为您创建Employee表。


只需单击项目选项卡,您就可以看到带有empId列的表已创建。


2.创建一个AWS Lambda函数,该函数可以使用Dynamo数据库中的Employee POJO保存雇员的名字和姓氏

Pom.xml中的依赖项:

<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.创建一个策略,该策略将仅对DynamoDB的Employee表提供读/写访问权限,并附加一个Role

我们需要提供对AWS Lambda函数的访问权限以读取/写入Dynamo DB表。为此,我们将首先创建一个Polciy,然后将该策略附加到Role。

要创建新策略,请依次转到“服务”和“ IAM”。

单击“访问管理”下的“策略”,您将看到以下屏幕。


单击创建策略,您将看到以下屏幕:


单击“选择服务”,然后在搜索框中键入DynamoDB。


选择Dynamo DB,然后在“访问级别”部分中选择GetItem和PutItem。


选择资源。


单击您的Dynamo Db表所在的“添加ARN.Fill区域”,然后输入表名,然后单击“添加”。


单击“查看策略”,然后输入要提供给策略的名称,并输入有关此策略的描述,然后单击“创建策略”。


4.创建一个角色并将策略附加到该角色

转到IAM服务->角色,单击创建角色按钮,您将看到以下屏幕。


选择AWS服务作为受信任实体。 这是您要为其分配角色的实体,因为我们想将此角色分配给Lambda函数(仅AWS服务),因此我们选择了AWS服务。 同样在“选择用例”中,选择Lambda,然后单击“下一个权限”。 您将看到以下屏幕。


现在,在“筛选器策略”中,键入您刚在步骤2中创建的策略名称(DynamoDBEmployeeTblAccess)


在下一个屏幕上,单击“ Next:Tags”按钮,然后单击“ Next:Review”按钮。在下一个屏幕上,在“角色名称”中输入名称“ DynamoDBEmployeeTblAccess”。 添加角色描述。


单击“创建角色”按钮,您将看到以下成功消息:


5.在AWS Lambda控制台中以jar的形式上传AWS Lambda函数的代码

本教程的所有代码都已放入我的Git存储库中。 链接在本教程的结尾给出。

因此,您可以将该代码导入您的工作区中,然后进行maven构建,这将为您创建jar,然后按照我之前的教程进行操作
如何使用Java创建Aws Lambda函数 ,您可以轻松地将jar上传到AWS lambda控制台。

6.将在步骤4中创建的角色附加到AWS Lambda

在Lambda的“权限”部分中,选择“附加现有角色”,然后从下拉列表中选择在步骤4中创建的角色,然后单击“保存”。

7.运行Test事件以调用AWS Lambda将Person数据保存在Dynamo DB中

成功上传jar之后,转到“选择测试事件”下拉菜单,然后单击“配置测试事件”。

您将看到包含以下数据的屏幕。输入事件名称为“ HelloWorldEvents”并替换以下数据

{
"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.


 现在转到您的Dynamo Db服务并打开Employee表,然后单击Start search按钮,您应该可以看到以下记录: 

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

总结和几点要点:

 因此,在本教程中,我们看到了  -如何使用Lambda函数将数据保存在Dynamo DB中。  -我们仅创建了empId属性,并且在保存Employee对象时Dynamo Db会自动为我们创建其余属性,因为它具有firstName和surName属性,并且POJO的名称与表的名称匹配。 DynamoDB控制台也具有所有三个属性的表。  -如果我们再次尝试保存相同的对象(具有相同的ID),那么它将只是覆盖现有的对象,因此不会有任何异常。 

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

AWS Lambda将数据保存在DynamoDB中相关推荐

  1. aws dynamodb_AWS Lambda将数据保存在DynamoDB中

    aws dynamodb 在本教程中,我们将看到如何使用AWS Lambda将数据保存在Dynamo DB中. 这是必需的步骤: – 在Dynamo数据库中创建一个名为Employee的表 –创建一个 ...

  2. vue 将数据保存到vuex中

    在项目中遇到这样一个问题,就是在登入的时候同时需要从后台获取到左边的导航,但是如果使用h5的localStorage来保存导航信息,会出现app加载进去之后localStorage才保存进浏览器,在m ...

  3. Arduino ESP32将数据保存到NVS中

    Arduino ESP32将数据保存到NVS中 该功能类似AVR单片机里面的EEPROM存储区域. 关于ESP32分区表参考<分区表> Preferences中数据以键值对(key - v ...

  4. 【Arduino串口数据保存到excel中常用三种方法】

    [Arduino串口数据保存到excel中常用三种方法] 1. 前言 2. 利用excel自带Data Streamer读取 2.1 启用 Data Streamer 加载项 2.2 刷写代码并将微控 ...

  5. (案例五)将数据保存在MongoDB中

    用Pymongo保存数据 爬取豆瓣电影top250movie.douban.com/top250的电影数据,并保存在MongoDB中. items.py class DoubanspiderItem( ...

  6. Redis使用场景一,查询出的数据保存到Redis中,下次查询的时候直接从Redis中拿到数据。不用和数据库进行交互。...

    maven使用: <!--redis jar包--><dependency><groupId>redis.clients</groupId><ar ...

  7. 一篇文章让你轻松学会python爬取的数据保存到MySQL中,有案例哦

    文章目录 pymysql 基本使用 八个步骤以及案例分析 一.导入pymysql模块 二.获取到database的链接对象 三.创建数据表的方法 四.获取执行sql语句的光标对象 五.定义要执行的sq ...

  8. Python爬虫数据保存到MongoDB中

    MongoDB是一款由C++语言编写的非关系型数据库,是一个基于分布式文件存储的开源数据库系统,其内容存储方式类似于JSON对象,它的字段值可以是其它文档或数组,但其数据类型只能是String文本型. ...

  9. Python xlwt数据保存到 Excel中以及xlrd读取excel文件画图

    1.方法一:xlwt 1.1 安装包 pip install xlwt 1.2 保存数据到 Excel import xlwt import numpy as np import random # 新 ...

最新文章

  1. php上传图片到文件夹,2018.09.14PHP获取页面上传的图片存到指定文件夹再存到数据库中...
  2. c语言统计输入文本不同字母单词数,【C语言统计不同单词个数编写一个程序,输入一个句子,然后统计-查字典问答网...
  3. C#实现枚举的相关操作
  4. 总帐科目字段选择存储在表 T004F 中;科目分配存储在表 T162K 中。
  5. ZOJ 3879(大模拟)
  6. html(4)标签form表单——基础
  7. [书目20080220]UML 2工具箱
  8. 【机器学习】决策树知识点小结
  9. 【51Nod - 1344】走格子 (思维)
  10. EditText焦点自动带出软键盘问题
  11. 英语esl语言课程等级105c,说一下英语ESL的等级
  12. 【数据安全】4. Android 文件级加密(File-based Encryption)之密钥管理
  13. 小程序内嵌H5、H5回跳至小程序、小程序打开公众号中的文章
  14. 前端项目 - 论坛信息管理系统(纯页面)
  15. 准确的找到BAT实习机会~我入职了腾讯
  16. 大乐透号码随机生成与排序
  17. MapReduce基本概述——分布式计算框架
  18. 2口kvm切换器使用方法简述
  19. CentOS7-查看IP
  20. ICIP2021:VVC RPR参考结构改进

热门文章

  1. 【dfs】【模拟】【树】I Like Matrix Forever!
  2. 【动态规划】大厅安排 (ssl 1212)
  3. 5、mysql中的库操作
  4. SpringCloud Zuul(六)之PRE Filter
  5. Hadoop入门(三)HDFS API
  6. 面对枯燥的源码,如何才能看得下去
  7. 探究Java File类中list()、listFiles()的使用及区别,认识和使用匿名内部类
  8. “老师,我不要苹果味的,我要葡萄味的”!
  9. count() * ,1,字段 三兄弟
  10. 廖雪峰python教程整理笔记_廖雪峰python教程笔记(一)