我有一个python lambda函数,需要获取它正在运行的帐号。当我没有在AWS控制台中为Lambda设置的“网络”选项卡的详细信息时,它可以使帐户正常运行:
AccountNumber = boto3.client('sts').get_caller_identity()['Account']
现在我已经在“网络”选项卡下配置了VPC,子网和安全组,这个针对sts的特定boto调用无限循环。一段时间后,我从Lambda得到一个错误,该函数超时。
安全组中是否有设置可以导致boto3调用像这样循环?
这很可能是因为您的VPC安全组中没有规则以允许亚马逊流量输出。当通过botocore进行boto3或aws cli调用时,请求将被发送到Internet,而不是通过LAN发送。
为了允许botocore调用工作,您需要打开AWS拥有的CIDR块。该列表可以下载here