aws(学习笔记第三十六课) apigw-http-api-lambda-dynamodb
- 使用
api gateway
中使用lambda
+dynamodb
学习内容:
- 使用
api gateway
- 使用
lambda
- 使用
dynamodb
1. 整体架构
1.1 代码链接
- 代码链接(apigw-http-api-lambda-dynamodb-python-cdk)
- aws(学习笔记第十四课) 面向NoSQL DB的DynamoDB
可以复习下以前的dynamodb
的知识。
1.2 整体架构
API gateway
访问lambda
函数lambda
通过终端节点访问dynamodb
2. 代码解析
2.1 创建vpc
# VPC
vpc = ec2.Vpc(
self,
"Ingress",
cidr="10.1.0.0/16",
subnet_configuration=[
ec2.SubnetConfiguration(
name="Private-Subnet", subnet_type=ec2.SubnetType.PRIVATE_ISOLATED,
cidr_mask=24
)
],
)
这里,只创建private subnet
。
2.2 创建vpc
的终端节点
通常,private subnet
里面的lambda
是没有办法访问dynamodb
的,如果想访问。有两种方式:
- 一种是通过给
public subnet
里面设定NAT gateway
。 - 另一种通过
vpc endpoint
,即vpc
的终端节点。终端节点需要执行面向的service
,这里是dynamodb
。
# Create VPC endpoint
dynamo_db_endpoint = ec2.GatewayVpcEndpoint(
self,
"DynamoDBVpce",
service=ec2.GatewayVpcEndpointAwsService.DYNAMODB,
vpc=vpc,
)
2.3 对vpc
的终端节点设定policy
# This allows to customize the endpoint policy
dynamo_db_endpoint.add_to_policy(
iam.PolicyStatement