Доступ к AWS Pinpoint в Lambda из-за VPC

Моя цель - отправить SMS-сообщение через AWS Pinpoint с помощью NodeJS и AWS Pinpoint Gateway из-за VPC. Код, который я использую, хорошо работает на моем локальном компьютере и в SAM, где нет ограничений VPC. Я добавил конечную точку VPC SNS и SMS с группами безопасности, которые предоставляют мне доступ к каждой службе индивидуально. Я могу отправить SMS с помощью службы SNS aws-sdk.

Кажется, я не могу заставить Lambda использовать точечное сообщение для отправки SMS-сообщения. Это возможно? Кажется, я не могу найти порты для службы Pinpoint? Можно ли избежать раскрытия доступа к Интернету для 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


person Andrew Scott Evans    schedule 29.12.2020    source источник


Ответы (1)


Для AWS Pinpoint нет конечных точек интерфейса VPC, как показано на этом AWS список. Следовательно, для доступа к услуге вам необходимо выйти в Интернет.

Лямбда-выражение необходимо разместить в частной подсети, а шлюз NAT - в общедоступной подсети. Благодаря NAT ваша лямбда-функция сможет получить доступ к сервису pinpoint.

Альтернативой может быть использование частного шлюза API, который интегрируется с другими лямбда-выражениями в качестве прокси. Не идеальное решение, но, в конце концов, вам придется выходить через Интернет, так или иначе.

person Marcin    schedule 29.12.2020