使用SNS服务发送SMS短信到手机(海外区域)

注意:从海外发送到中国需要特殊流程。

步骤一:申请Toll-free号码并通过控制台发送短信。

步骤二:查看CloudWatch中短信发送日志。

步骤三:通过SDK发送到单个手机。

步骤四:通过SDK发送给SNS Topic实现群发到所有订阅者。

示例Python代码:

import boto3
from botocore.exceptions import ClientError
 
region = "us-east-1"
message = ("这是一条发给SNS Topic群发的短信。")
messageType = "Transactional"
sourceNumber="+18668851429"
 
client = boto3.client('sns',region_name=region)
 
try:
    response = client.publish(
        TopicArn='arn:aws:sns:us-east-1:133129065110:mysnsdemo01',
        Message=message,
        MessageAttributes = {
            "AWS.MM.SMS.OriginationNumber": {
                'DataType': 'String',
                'StringValue': sourceNumber
            } ,
            "AWS.SNS.SMS.SMSType": {
                'DataType': 'String',
                'StringValue': messageType
            } 
        }
    )
 
except ClientError as e:
    print(e.response['Error']['Message'])
else:
    print("Message sent! Message ID: "
            + response['MessageId'])