Я хотел бы отправить SMS-сообщение из функции AWS Lambda, используя метод публикации boto3, чтобы уведомить пользователя о проблемах с помощью SMS. Моя лямбда-функция написана на Python, и я использую модуль boto3. Моя лямбда-функция имеет полные права на SNS. У меня есть этот код,
sns = boto3.client('sns')
sns.publish(
PhoneNumber = '+11234567890',
Message = 'Simple text message'
)
В соответствии с документацией boto3 метод публикации принимает следующие параметры:
response = client.publish(
TopicArn='string',
TargetArn='string',
PhoneNumber='string',
Message='string',
Subject='string',
MessageStructure='string',
MessageAttributes={
'string': {
'DataType': 'string',
'StringValue': 'string',
'BinaryValue': b'bytes'
}
}
)
Для этого требуется параметр "Сообщение" и один из следующих трех параметров, как описано в документах:
ТемаArn (строка) - тема, которую вы хотите опубликовать.
Если вы не указали значение параметра TopicArn, вы должны укажите значение для параметров PhoneNumber или TargetArn.
TargetArn (строка) - либо TopicArn, либо EndpointArn, но не оба.
Если вы не укажете значение для параметра TargetArn, вы должны укажите значение для параметров PhoneNumber или TopicArn.
PhoneNumber (строка) - номер телефона, которому вы хотите доставить SMS-сообщение. Используйте формат E.164.
Если вы не укажете значение для параметра PhoneNumber, вы должны укажите значение для параметров TargetArn или TopicArn.
Когда мой код выполняется, возвращается ошибка проверки параметров. В нем указано,
Неизвестный параметр на входе: "PhoneNumber", должен быть одним из: TopicArn, TargetArn, > Message, Subject, MessageStructure, MessageAttributes ".
Поэтому в документации, по-видимому, указывается, что PhoneNumber является допустимым параметром, но при использовании возникает ошибка, и обратная связь от ошибки указывает, что PhoneNumber не является возможным параметром. Я подозреваю, что упускаю что-то очевидное и простое, но могу использовать некоторую помощь.
Я знаю, что есть другие способы отправлять SMS-сообщения, такие как шлюзы электронной почты и другие поставляемые поставщиком решения, такие как Twilio, но я хотел бы продолжить маршрут на основе SNS и понять, где я поступил неправильно.