在本教程中,你将创建一个无服务器API,从DynamoDB表中创建、读取、更新和删除项目。DynamoDB是一个全面管理的NoSQL数据库服务,提供快速、可预测的性能和无缝扩展性。本教程大约需要30分钟来完成,你可以在AWS免费层内完成。
首先,你使用DynamoDB控制台创建一个DynamoDB表。然后,你使用AWS Lambda控制台创建一个Lambda函数。接下来,你使用API网关控制台创建一个HTTP API。最后,你测试你的API。
当你调用你的HTTP API时,API Gateway将请求路由到你的Lambda函数。Lambda函数与DynamoDB交互,并向API Gateway返回一个响应。然后API Gateway向你返回一个响应。
要完成这个练习,你需要一个AWS账户和一个有控制台访问权的AWS身份和访问管理用户。欲了解更多信息,请参阅开始使用API网关的先决条件。
第1步:创建一个DynamoDB表
你使用DynamoDB表来为你的API存储数据。
每个项目都有一个唯一的ID,我们用它作为表的分区键。
要创建一个DynamoDB表
1.在https://console.aws.amazon.com/dynamodb/,打开DynamoDB控制台。
2.选择创建表。
3.对于表名,输入http-crud-tutorial-items。
4.对于主键,输入id。
5.选择创建。
第2步:创建一个Lambda函数
你为你的API的后端创建一个Lambda函数。这个Lambda函数从DynamoDB创建、读取、更新和删除项目。该函数使用来自API Gateway的事件来决定如何与DynamoDB互动。为了简单起见,本教程使用一个Lambda函数。作为一个最佳实践,你应该为每个路由创建单独的函数。
要创建一个Lambda函数
1.登录Lambda控制台,https://console.aws.amazon.com/lambda。
2.选择创建函数。
3.在函数名称中,输入http-crud-tutorial-function。
4.在Permissions下选择Change default execution role。
5.选择从AWS策略模板中创建一个新角色。
6.对于角色名称,输入http-crud-tutorial-role。
7.对于策略模板,选择简单微服务权限。该策略授予Lambda函数与DynamoDB交互的权限。
第3步:创建一个HTTP API
HTTP API为你的Lambda函数提供一个HTTP端点。在这一步,你创建一个空的API。在接下来的步骤中,你将配置路由和集成,以连接你的API和你的Lambda函数。
要创建一个HTTP API
1.登录API网关控制台,https://console.aws.amazon.com/apigateway。
2.选择创建API,然后在HTTP API中选择构建。
3.对于API名称,输入http-crud-tutorial-api。
4.选择下一步。
5.对于配置路由,选择 "下一步 "以跳过路由创建。你以后会创建路由。
6.查看API Gateway为你创建的阶段,然后选择下一步。
7.选择创建。
第4步:创建路由
路由是一种将传入的API请求发送到后端资源的方式。路由由两部分组成:一个HTTP方法和一个资源路径,例如,GET /items。对于这个例子的API,我们创建了四个路由。
GET /items/{id}
GET /items
PUT /items
DELETE /items/{id}
要创建路线
1.登录API网关控制台,https://console.aws.amazon.com/apigateway。
2.选择你的API。
3.选择路线。
4.选择创建。
5.在方法上,选择GET。
6.在路径中,输入/items/{id}。路径末尾的{id}是一个路径参数,当客户发出请求时,API Gateway会从请求路径中检索出来。
7.选择创建。
8.对GET /items、DELETE /items/{id}和PUT /items重复步骤4-7。
第5步:创建一个集成
你创建一个集成来连接路由和后端资源。对于这个例子的API,你创建一个Lambda集成,用于所有路由。
要创建一个集成
1.登录API网关控制台,https://console.aws.amazon.com/apigateway。
2.选择你的API。
3.选择集成。
4.选择管理整合,然后选择创建。
5.跳过把这个集成附加到一个路由。你在后面的步骤中完成。
6.在集成类型中,选择Lambda函数。
7.对于Lambda函数,输入http-crud-tutorial-function。
8.选择创建。
第6步:将你的整合附在路线上
对于这个例子的API,你对所有的路由使用相同的Lambda集成。在你将集成附加到API的所有路由后,当客户端调用你的任何路由时,你的Lambda函数就会被调用。
要把集成附加到路线上
1.登录API网关控制台:https://console.aws.amazon.com/apigateway。
2.选择你的API。
3.选择集成。
4.选择一个路线。
5.在选择一个现有的集成下,选择http-crud-tutorial-function。
6.选择附加集成。
7.对所有路线重复步骤4-6。
所有路线都显示连接了AWS Lambda集成。
现在你有了一个带有路由和集成的HTTP API,你可以测试你的API。
第7步:测试你的API
为了确保你的API是工作的,你使用curl。
要获得调用你的API的URL
1.登录到API网关控制台,https://console.aws.amazon.com/apigateway。
2.选择你的API。
3.注意你的API的调用URL。它出现在详细信息页面的调用URL下。
以上就是aws api gateway 用Lambda和DynamoDB建立一个CRUD API
的一些问题了。