我有一个AWS Lambda
(java),我尝试进行测试以检索存储在Parameter Store上的密码。
这是我的代码:
GetParameterRequest parameterRequest = new GetParameterRequest();
AWSSimpleSystemsManagement client = AWSSimpleSystemsManagementClientBuilder.defaultClient();
parameterRequest.withName("my-password-key")
.setWithDecryption(true);
GetParameterResult parameterResult = client.getParameter(parameterRequest);
password = parameterResult.getParameter().toString();
与我的lambda关联的security group
(以及NACL
)所有入站和出站都打开(任何端口和任何IP地址)。
我的lambda在私有子网内运行。
当我执行lambda(由API网关事件触发)时,出现以下错误:
Unable to execute HTTP request: Connect to ssm.eu-central-1.amazonaws.com:443 [ssm.eu-central-1.amazonaws.com] failed: connect timed out: com.amazonaws.SdkClientException
由于错误是关于超时错误,我认为这不是一个角色问题。
我不知道在哪里看。 任何帮助表示赞赏。
感谢。
C.C。
答案 0 :(得分:1)
调用AWS API时需要访问Internet。
有两种方法可以让Lambda函数访问Internet:
因此,如果Lambda函数不需要访问VPC中的任何资源,只需将其从VPC中删除即可。如果 需要访问权限,则添加NAT网关。