You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

购买号码后,如何用Python boto3 SDK配置Pinpoint双向SMS并关联SNS主题至Lambda

使用Python Boto3配置Pinpoint双向SMS

核心操作逻辑

购买号码后,要实现将收到的短信转发至后端Lambda,需通过Pinpoint的update_phone_number API把号码关联到指定SNS主题,同时确保SNS主题具备接收Pinpoint消息的权限。

具体步骤与代码

1. 初始化Boto3客户端

确保已安装boto3库,初始化Pinpoint和SNS客户端:

import boto3

# 替换为你的AWS区域
region = "us-east-1"
pinpoint_client = boto3.client("pinpoint", region_name=region)
sns_client = boto3.client("sns", region_name=region)

2. 关联号码与SNS主题

调用update_phone_number接口,开启双向SMS并绑定目标SNS主题ARN:

# 替换为你的Pinpoint号码ID和SNS主题ARN
phone_number_id = "你的Pinpoint号码ID"
sns_topic_arn = "arn:aws:sns:us-east-1:123456789012:你的主题名称"

response = pinpoint_client.update_phone_number(
    PhoneNumberId=phone_number_id,
    PhoneNumberRequest={
        "TwoWayEnabled": True,
        "TwoWayChannelArn": sns_topic_arn
    }
)

print("配置完成后的号码信息:", response["PhoneNumberResponse"])

提示:PhoneNumberId可通过list_phone_numbers API查询获取,该接口会返回你账号下所有Pinpoint号码的详细信息。

3. 配置SNS主题权限

必须给Pinpoint服务授予向SNS主题发布消息的权限,可通过代码或AWS控制台配置:

sns_client.add_permission(
    TopicArn=sns_topic_arn,
    Label="PinpointPublishAccess",
    AWSAccountId=["你的AWS账号ID"],
    ActionNames=["sns:Publish"]
)

也可以直接在SNS主题的访问策略中添加以下规则:

{
  "Effect": "Allow",
  "Principal": {
    "Service": "pinpoint.amazonaws.com"
  },
  "Action": "sns:Publish",
  "Resource": "你的SNS主题ARN"
}

4. 验证配置结果

通过get_phone_number API检查号码的双向SMS配置状态:

check_response = pinpoint_client.get_phone_number(PhoneNumberId=phone_number_id)
print("当前双向SMS状态:", check_response["PhoneNumberResponse"]["TwoWayEnabled"])
print("关联的SNS主题:", check_response["PhoneNumberResponse"]["TwoWayChannelArn"])

注意事项

  • 确保操作使用的IAM角色拥有pinpoint:UpdatePhoneNumber、sns:AddPermission等权限;
  • Pinpoint号码与SNS主题必须处于同一AWS区域;
  • 最后需在Lambda控制台配置SNS主题作为触发器,确保收到的短信能流转到Lambda处理。

内容的提问来源于stack exchange,提问作者Deepak Marur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 20:06:28