amazon-web-services - AWS Lambda 无法连接到 Parameter Store

标签 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 关联的安全组(和 NACL)已开放所有入站和出站(任何端口和任何 IP 地址)。

我的 lambda 在私有(private)子网内运行。

当我执行 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

由于该错误是关于超时错误,因此我认为这不是角色问题。

我不知道该去哪里寻找。 如有任何帮助,我们将不胜感激。

谢谢。

CC

最佳答案

调用 AWS API 时需要访问互联网。

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

  • 请勿将 Lambda 函数附加到 VPC,或者
  • 将 Lambda 函数附加到私有(private)子网,并配置私有(private)子网以通过公有子网中的 NAT 网关(或 NAT 实例)路由互联网流量

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

关于amazon-web-services - AWS Lambda 无法连接到 Parameter Store,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50257379/

相关文章:

amazon-web-services - AWS SQS + API 网关 + Lambda + 数据库

AWS Lambda 上的 Python Wand 和 ImageMagick

amazon-web-services - 将现有的 AWS secret 引入 Cloudformation 堆栈

docker - 如何维护 Dockerfile 中使用的 secret ?

amazon-web-services - 带标签的 Cloudformation 名称 EC2 实例

hadoop - 亚马逊弹性 map 减少 : Command Line Tools installation Issue?

python-3.x - 名称 'conn' 未定义 : NameError

amazon-web-services - AWS Parameter store 吞吐量限制是针对每个 key 还是整个服务?

javascript - 如何仅获取 dynamoDB 流上的差异/修改

amazon-web-services - 启动 StepFunction 并退出不会触发执行