我使用以下链接配置了我的环境:https://docs.aws.amazon.com/systems-manager/latest/userguide/setup-create-vpc.html
我有我的 VPC,带有一个 lambda 子网。安全组和 NACL 都是开放的。 我配置了链接服务显示的所有 VPC 端点:ssm、ec2messages、ec2、s3,甚至尝试了 ssmmessages 和 kms。
但是当行代码说
ssm.getParameter()...
进程超时 30 秒没有响应。我连接了一个 Nat 网关并且它可以工作,但我不想使用 NAT 网关。
在链接中,并没有说我需要使用私有 DNS 配置 SSM 端点。我不想这样,因为我的 VPC 有其他项目。我测试了打开私有 DNS,我的 lambda 也能正常工作。
为什么 Endpoint 在私有 DNS 关闭的情况下不起作用?
此链接https://purple.telstra.com.au/blog/ssm-endpoints-a-how-to
说如果我想关闭私有 DNS,我需要 SSM 代理,但这是针对 EC2 实例的。我可以用 Lambda 做什么?
答案 0 :(得分:1)
@jarmod 的解决方案奏效了。
const vpcEndpointHostname = 'vpce-11a2ef262s52afaba1-jeaar2sa.ssm.us-east-1.vpce.amazonaws.com';
const endpoint = new aws.Endpoint(vpcEndpointHostname);
const ssm = new aws.SSM({endpoint: ep});
const { Parameter } = await ssm.getParameter({
Name: parameterName, WithDecryption: true
}).promise();