Tôi muốn gửi một tin nhắn SMS từ một hàm AWS Lambda bằng cách sử dụng phương thức xuất bản boto3 để thông báo cho người dùng về các vấn đề qua SMS. Hàm lambda của tôi được viết bằng Python và tôi đang sử dụng mô-đun boto3. Hàm lambda của tôi có đầy đủ quyền đối với SNS. Tôi có mã này,Làm cách nào để gửi tin nhắn SMS qua AWS SNS bằng boto3 trong chức năng AWS Lambda?
sns = boto3.client('sns')
sns.publish(
PhoneNumber = '+11234567890',
Message = 'Simple text message'
)
Theo boto3 documentation, các công bố phương pháp chấp nhận các thông số sau,
response = client.publish(
TopicArn='string',
TargetArn='string',
PhoneNumber='string',
Message='string',
Subject='string',
MessageStructure='string',
MessageAttributes={
'string': {
'DataType': 'string',
'StringValue': 'string',
'BinaryValue': b'bytes'
}
}
)
Nó đòi hỏi một "Message" tham số và một trong ba thông số sau như mô tả trong tài liệu:
TopicArn (chuỗi) - Chủ đề bạn muốn xuất bản lên.
Nếu bạn không chỉ định giá trị cho tham số TopicArn, bạn phải chỉ định giá trị cho tham số PhoneNumber hoặc TargetArn.
TargetArn (chuỗi) - Hoặc TopicArn hoặc EndpointArn, nhưng không phải cả hai.
Nếu bạn không chỉ định giá trị cho tham số TargetArn, bạn phải chỉ định giá trị cho tham số PhoneNumber hoặc TopicArn.
Số điện thoại (chuỗi) - Số điện thoại mà bạn muốn gửi tin nhắn SMS. Sử dụng định dạng E.164.
Nếu bạn không chỉ định giá trị cho tham số PhoneNumber, bạn phải chỉ định giá trị cho tham số TargetArn hoặc TopicArn.
Khi mã của tôi được thực hiện, lỗi xác thực thông số được trả về. Nó khẳng định,
tham số không rõ trong đầu: "PhoneNumber", phải là một trong: TopicArn, TargetArn,> Tin nhắn, Chủ đề, MessageStructure, MessageAttributes"
Vì vậy, các tài liệu dường như chỉ ra. rằng PhoneNumber là thông số hợp lệ, nhưng khi được sử dụng, lỗi xảy ra và phản hồi từ lỗi cho biết rằng PhoneNumber không phải là thông số có thể. Tôi nghi ngờ rằng tôi thiếu một cái gì đó hiển nhiên và đơn giản, nhưng có thể sử dụng một số trợ giúp. biết có những cách khác để gửi tin nhắn SMS như em ail gateway và các nhà cung cấp khác cung cấp các giải pháp như Twilio, nhưng tôi muốn theo đuổi lộ trình SNS và hiểu nơi tôi đã đi sai.
Điều này cuối cùng có hiệu quả với bạn không? Lời kêu gọi của bạn có vẻ đúng, như trong nó chỉ làm việc cho tôi – Atifm