从 VPC 后面访问 Lambda 中的 AWS Pinpoint
Accessing AWS Pinpoint in Lambda from Behind VPC
我的目标是使用 NodeJS 和 VPC 后面的 AWS Pinpoint 网关通过 AWS Pinpoint 发送 SMS 消息。我使用的代码在我的本地机器和没有 VPC 限制的 SAM 中运行良好。我添加了一个带有安全组的 SNS 和 SMS VPC 端点,让我可以单独访问每项服务。我可以使用 aws-sdk SNS 服务发送短信。
我似乎无法让 Lambda 使用精确定位来发送 SMS 消息。这可能吗?我似乎找不到 Pinpoint 服务的端口?是否可以避免将 Internet 访问暴露给 VPN 以通过 AWS Pinpoint 发送消息?
角色:分配给所有 Pinpoint 角色、SMS 和 SNS 权限以进行测试。
消息配置:
const AWS = require("aws-sdk");
AWS.config.update({region: process.env.SMS_REGION});
const PINPOINT = new AWS.Pinpoint({apiVersion: '2016-12-01'});
const PINPOINT_APP_ID = process.env.PINPOINT_APP_ID;
const params = {
ApplicationId: PINPOINT_APP_ID,
MessageRequest: {
Addresses: {
[number]: {
ChannelType: 'SMS'
}
},
MessageConfiguration: {
SMSMessage: {
Body: message,
OriginationNumber: origination_number,
SenderId: "senderId",
MessageType: process.env.SMS_MESSAGE_TYPE
}
}
}
};
await PINPOINT.sendMessages(params, (err, data) => {});
区域:us-west-2
AWS Pinpoint 没有 VPC 接口端点,如本 AWS list 所示。因此,您需要通过互联网访问该服务。
对于您的 lambda,您必须将其放置在 私有子网 中,NAT 网关位于 public 子网中。感谢 NAT,您的 lambda 函数将能够访问精确定位服务。
另一种方法是使用 private API gateway 与其他 lambda 集成作为代理。不是理想的解决方案,但最终你必须通过互联网,无论哪种方式。
我的目标是使用 NodeJS 和 VPC 后面的 AWS Pinpoint 网关通过 AWS Pinpoint 发送 SMS 消息。我使用的代码在我的本地机器和没有 VPC 限制的 SAM 中运行良好。我添加了一个带有安全组的 SNS 和 SMS VPC 端点,让我可以单独访问每项服务。我可以使用 aws-sdk SNS 服务发送短信。
我似乎无法让 Lambda 使用精确定位来发送 SMS 消息。这可能吗?我似乎找不到 Pinpoint 服务的端口?是否可以避免将 Internet 访问暴露给 VPN 以通过 AWS Pinpoint 发送消息?
角色:分配给所有 Pinpoint 角色、SMS 和 SNS 权限以进行测试。
消息配置:
const AWS = require("aws-sdk");
AWS.config.update({region: process.env.SMS_REGION});
const PINPOINT = new AWS.Pinpoint({apiVersion: '2016-12-01'});
const PINPOINT_APP_ID = process.env.PINPOINT_APP_ID;
const params = {
ApplicationId: PINPOINT_APP_ID,
MessageRequest: {
Addresses: {
[number]: {
ChannelType: 'SMS'
}
},
MessageConfiguration: {
SMSMessage: {
Body: message,
OriginationNumber: origination_number,
SenderId: "senderId",
MessageType: process.env.SMS_MESSAGE_TYPE
}
}
}
};
await PINPOINT.sendMessages(params, (err, data) => {});
区域:us-west-2
AWS Pinpoint 没有 VPC 接口端点,如本 AWS list 所示。因此,您需要通过互联网访问该服务。
对于您的 lambda,您必须将其放置在 私有子网 中,NAT 网关位于 public 子网中。感谢 NAT,您的 lambda 函数将能够访问精确定位服务。
另一种方法是使用 private API gateway 与其他 lambda 集成作为代理。不是理想的解决方案,但最终你必须通过互联网,无论哪种方式。