AWS Lambda 无法连接到 Parameter Store
AWS Lambda cannot connect to 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.
调用 AWS 时需要 Internet 访问 API。
有两种方法可以让 Lambda 函数访问 Internet:
- 不要将 Lambda 函数附加到 VPC,或者
- 将 Lambda 函数附加到私有子网并将私有子网配置为通过 public 子网中的 NAT 网关(或 NAT 实例)路由互联网绑定流量
因此,如果 Lambda 函数不需要访问 VPC 中的任何资源,只需将其从 VPC 中删除。如果它确实需要访问权限,那么添加一个 NAT 网关。
我有一个 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.
调用 AWS 时需要 Internet 访问 API。
有两种方法可以让 Lambda 函数访问 Internet:
- 不要将 Lambda 函数附加到 VPC,或者
- 将 Lambda 函数附加到私有子网并将私有子网配置为通过 public 子网中的 NAT 网关(或 NAT 实例)路由互联网绑定流量
因此,如果 Lambda 函数不需要访问 VPC 中的任何资源,只需将其从 VPC 中删除。如果它确实需要访问权限,那么添加一个 NAT 网关。