You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CloudFormation公网子网部署时自定义Lambda资源卡在CREATE_IN_PROGRESS求助

问题:CloudFormation公网子网部署Aurora自定义资源超时

我正尝试通过CloudFormation创建AuroraDB集群,其中包含一个用于轮转密钥的自定义资源。该方案在使用私有子网时运行正常,但当我使用公网子网创建相同栈时,资源会一直卡在创建中状态直到CloudFormation超时。
状态示意图
我检查了cfnresponse模块,Python模块可以正常返回响应,代码如下:

cfnresponse.send(event, context, cfnresponse.SUCCESS, responseData, "CustomResourcePhysicalID")

我使用的CloudFormation代码如下:

CreateSecretRotationLambdaFnTrigger:
Condition: IsNotUseDBSnapshot
Type: Custom::LambdaAPGSecretsManager
Version: "1.0"
Properties:
  ServiceToken: !GetAtt 'CreateSecretRotationLambdaFn.Arn'
  SecretsManagerEndpoint: !Sub 'https://secretsmanager.${AWS::Region}.amazonaws.com'
  SecretRotationLambdaFnName: !Sub 'SecretsManager-SecretRotationFn-${AWS::StackName}'
  SecretRotationLambdaStackName: !Sub '${AWS::StackName}-SecretRotationLambdaStack'
  SubnetIds: !Split [',', {'Fn::ImportValue': !Sub '${ParentVPCStack}-SubnetsPrivate'}]
  SecretRotationLambdaSG: !Split [',', {'Fn::ImportValue': !Sub '${ParentVPCStack}-SecretRotationLambdaSecurityGroup'}]

我基于官方CloudFormation模板修改:删除VPC模板中的私有子网,同时将Aurora模板中的子网配置从私有子网替换为公网子网。
请问该问题的原因是什么?CloudFormation是否支持在公网子网中创建自定义Lambda资源?


解答

首先明确:CloudFormation完全支持在公网子网中创建自定义Lambda资源,你遇到的超时问题和CloudFormation本身的支持性无关,核心原因是Lambda挂载到VPC公网子网后的网络访问限制。

根因分析

  1. 只要Lambda被配置为挂载到VPC下,无论它被部署在私有子网还是公网子网,Lambda绑定的弹性网卡默认都不会被分配公网IPv4地址。
  2. 你之前使用私有子网时,VPC配置了NAT网关或者对应服务的VPC端点,Lambda可以正常访问Secrets Manager服务,也能调用公网的CloudFormation回调接口返回资源创建状态,所以流程正常。
  3. 你替换为公网子网后,删除了原有私有子网配套的NAT网关配置,部署在公网子网的Lambda没有公网访问能力,既无法访问你配置的公网Secrets Manager端点,也无法执行cfnresponse.send调用向CloudFormation返回执行结果,CloudFormation收不到回调就会一直等待直到超时。
  4. 你本地测试cfnresponse返回正常,是因为本地环境有公网访问能力,和云端VPC内Lambda的运行环境不一致,你可以在CloudWatch中查看该Lambda的运行日志,会明确看到网络连接超时的报错。

解决方案

你可以根据业务场景选择以下任意一种方案修复问题:

  • 方案一(推荐):为你的VPC配置Secrets Manager和CloudFormation的VPC端点,Lambda可以通过AWS内网访问这两个服务,不需要公网访问能力即可完成所有操作。
  • 方案二:保留VPC的NAT网关配置,将Lambda仍然部署在私有子网中,通过NAT网关完成公网访问,这也是官方推荐的Lambda VPC部署最佳实践。
  • 方案三:如果必须将Lambda部署在公网子网中,需要为Lambda绑定的弹性网卡手动关联弹性公网IP(EIP),使其获得公网访问能力,该方案配置繁琐,不推荐生产环境使用。

内容的提问来源于stack exchange,提问作者Divya Gowda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 17:54:04