本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Amazon SNS 指定 SMS 消息的首选项。例如,您可以指定是否要优化传输以确保成本或可靠性、您的每月支出限额、如何记录传输以及是否要订阅每日 SMS 使用情况报告。
这些首选项对从您的账户发送的每个 SMS 消息有效,但在您发送各条消息时可覆盖部分设置。有关更多信息,请参阅 使用 Amazon SNS 向手机发布短信。
使用 AWS Management Console设置发送 SMS 消息的首选项
登录 Amazon SNS 控制台
。 -
在导航面板上,选择移动,然后选择文本消息(SMS)。
-
在移动文本消息(SMS) 页上,在文本消息发送首选项部分中,选择编辑。
-
在 Edit text messaging preferences (编辑文本消息发送首选项) 页上,在 Details (详细信息) 部分中,执行以下操作:
-
对于默认消息类型,选择下列选项之一:
-
促销(默认)– 非重要消息(例如营销消息)。Amazon SNS 以产生最低成本为基准来优化消息传输。
-
事务性(默认)– 为客户事务处理提供支持的重要消息,例如多重身份验证的一次性密码。Amazon SNS 以实现最高可靠性为基准来优化消息传输。
有关促销和事务处理消息的定价信息,请参阅全球 SMS 定价
。 -
-
(可选)对于 Account spend limit (账户花费限额),请输入您在每个日历月想要为 SMS 消息支付的金额,以 USD 为单位。
重要
-
默认情况下,支出配额设为 1.00 USD。如果要提高服务配额,请提交请求
。 -
如果在控制台中设置的金额超过您的服务配额,Amazon SNS 会停止发布 SMS 消息。
-
由于 Amazon SNS 是分布式系统,它会在超过支出配额的几分钟内停止发送 SMS 消息。在该间隔内,如果您继续发送 SMS 消息,可能会产生超出配额的成本。
-
-
-
(可选)对于默认发件人 ID,请输入一个自定义 ID(如您的企业品牌),它显示为接收设备的发送者。
注意
对发件人的支持因国家/地区 IDs 而异。
-
(可选)输入 Amazon S3 bucket name for usage reports(使用情况报告的 Amazon S3 存储桶名称)的名称。
注意
亚马逊 S3 存储桶策略必须授予对亚马逊 SNS 的写入权限。
-
选择 Save changes(保存更改)。
设置首选项 (AWS SDKs)
要使用其中一个来设置您的短信偏好 AWS SDKs,请使用该软件开发工具包中与 Amazon SNS SetSMSAttributes
API 中的请求相对应的操作。通过此请求,您可以将值分配给不同的 SMS 属性,例如您的每月支出配额和默认 SMS 类型(促销或事务)。有关所有短信属性,请参阅《亚马逊简单通知服务 API 参考》SMSAttributes中的 “设置”。
以下代码示例演示如何使用 SetSMSAttributes
。
- SDK for C++
-
注意
还有更多相关信息 GitHub。查找完整示例,学习如何在 AWS 代码示例存储库
中进行设置和运行。 如何使用 Amazon SNS 设置默认SMSType 属性。
//! Set the default settings for sending SMS messages. /*! \param smsType: The type of SMS message that you will send by default. \param clientConfiguration: AWS client configuration. \return bool: Function succeeded. */ bool AwsDoc::SNS::setSMSType(const Aws::String &smsType, const Aws::Client::ClientConfiguration &clientConfiguration) { Aws::SNS::SNSClient snsClient(clientConfiguration); Aws::SNS::Model::SetSMSAttributesRequest request; request.AddAttributes("DefaultSMSType", smsType); const Aws::SNS::Model::SetSMSAttributesOutcome outcome = snsClient.SetSMSAttributes( request); if (outcome.IsSuccess()) { std::cout << "SMS Type set successfully " << std::endl; } else { std::cerr << "Error while setting SMS Type: '" << outcome.GetError().GetMessage() << "'" << std::endl; } return outcome.IsSuccess(); }
-
有关 API 的详细信息,请参阅 适用于 C++ 的 AWS SDK API 参考SMSAttributes中的设置。
-
为特定于国家/地区的传送设置短信收发首选项
您可以通过仅向特定目标国家/地区发送消息来管理和控制短信流量。这样可以确保您的消息仅发送到经批准的国家/地区,从而避免不必要的短信费用。以下说明使用 Amazon Pinpoint 的保护配置来指定您想要允许或阻止的国家/地区。
打开 AWS SMS 控制台,网址为https://console.aws.amazon.com/sms-voice/
。 -
在导航窗格的概述下的快速入门部分,选择创建保护配置。
-
在 “保护配置详细信息” 下,为您的保护配置输入适合企业使用的名称(例如, Allow-Only-AU)。
-
在短信国家/地区规则下,选中地区/国家复选框以阻止向所有支持的国家/地区发送消息。
-
取消选中要将消息发送到的国家/地区的复选框。例如,要仅允许向澳大利亚发送消息,请取消选中澳大利亚对应的复选框。
-
在保护配置关联部分的关联类型下,选择账户默认。这将确保 AWS End User Messaging SMS 保护配置影响通过亚马逊 SNS、Amazon Cogn ito 和 Amazon Pinpoint API 调用发送的所有消息。
SendMessages
-
选择创建保护配置,保存您的设置。
将显示以下确认消息:
Success Protect configuration protect-abc0123456789 has been created.
登录 Amazon SNS 控制台
。 -
向其中一个被阻止的国家/地区(例如印度)发布消息。
该消息将不会被传送。您可以使用在传送失败日志中对此进行验证CloudWatch。在日志组sns/region/AccountID/DirectPublishToPhoneNumber/Failure中搜索类似于以下示例的响应:
{ "notification": { "messageId": "bd59a509-XXXX-XXXX-82f8-fbdb8cb68217", "timestamp": "YYYY-MM-DD XX:XX:XX.XXXX“ }, "delivery": { "destination": "+91XXXXXXXXXX", "smsType": "Transactional", "providerResponse": "Cannot deliver message to the specified destination country", "dwellTimeMs": 85 }, "status": "FAILURE" }