要解决AWS Lambda在公共子网中无法访问互联网的问题,可以使用以下步骤:
在公共子网中创建一个NAT网关。NAT网关允许Lambda函数使用此网关进行互联网访问。
更新公共子网的路由表,将所有对互联网流量的目标设置为新创建的NAT网关。
下面是一个使用AWS CLI创建NAT网关和更新路由表的示例代码:
aws ec2 create-nat-gateway --subnet-id --allocation-id
其中,
是公共子网的ID,
是已分配的弹性IP地址的ID。
aws ec2 describe-nat-gateways --filter "Name=subnet-id,Values="
aws ec2 create-route --route-table-id --destination-cidr-block 0.0.0.0/0 --nat-gateway-id
其中,
是公共子网的路由表ID,
是新创建的NAT网关的ID。
这样,AWS Lambda函数就可以通过NAT网关进行互联网访问了。
请注意,创建和使用NAT网关会产生额外的费用。