AWS Lambda无法连接到Parameter Store

时间:2018-05-09 15:48:16

标签: amazon-web-services aws-lambda aws-parameter-store

我有一个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。

1 个答案:

答案 0 :(得分:1)

调用AWS API时需要访问Internet。

有两种方法可以让Lambda函数访问Internet:

  • 不要将Lambda函数附加到VPC或
  • 将Lambda函数附加到私有子网,并将私有子网配置为通过公有子网中的NAT网关(或NAT实例)路由Internet绑定的流量

因此,如果Lambda函数不需要访问VPC中的任何资源,只需将其从VPC中删除即可。如果 需要访问权限,则添加NAT网关