使用 Webhook 或 Lambda 函数在 Amazon Pinpoint 中创建自定义渠道 - Amazon Pinpoint

终止支持通知:AWS 将于 2026 年 10 月 30 日终止对 Amazon Pinpoint 的支持。2026 年 10 月 30 日之后,您将不再能够访问 Amazon Pinpoint 控制台或 Amazon Pinpoint 资源(端点、客户细分、营销活动、旅程和分析)。有关更多信息,请参阅 Amazon Pinpoint 终止支持注意:与短信、语音、移动推送、OTP 和电话号码验证相关的 API 不受此变更的影响,AWS End User Messaging 支持这些功能。

使用 Webhook 或 Lambda 函数在 Amazon Pinpoint 中创建自定义渠道

Amazon Pinpoint 包含对通过推送通知、电子邮件、短信和语音渠道发送消息的内置支持。还可以通过创建自定义渠道将 Amazon Pinpoint 配置为通过其他渠道发送消息。通过 Amazon Pinpoint 中的自定义渠道,您可以通过任何具有 API 的服务(包括第三方服务)发送消息。您可以通过使用 Webhook 或调用 AWS Lambda 函数来与 API 进行交互。

您向其发送自定义渠道活动的分段可以包含所有类型的端点(也即,其中 ChannelType 属性的值为 EMAIL、VOICE、SMS、CUSTOM 的端点,或各种推送通知端点类型之一)。

使用 Webhook

如果您使用 Webhook 发送自定义渠道消息,则 Webhook 的 URL 必须以“https://”开头。Webhook URL 只能包含字母数字字符,加上以下符号:连字符 (-)、句点 (.)、下划线 (_)、波浪符 (~)、问号 (?)、正斜杠或斜线分隔符 (/)、井号或哈希符号 (#) 以及分号 (:)。URL 必须符合 RFC3986

当您创建指定 Webhook URL 的活动时,Amazon Pinpoint 会向该 URL 发出 HTTP HEAD。对 HEAD 请求的响应必须包含名为 X-Amz-Pinpoint-AccountId 的标头。此标头的值必须等于您的 AWS 账户 ID。

使用 Lambda 函数

如果您选择通过创建 Lambda 函数来发送自定义渠道消息,则最好自行熟悉 Amazon Pinpoint 发出的数据。当 Amazon Pinpoint 活动通过自定义渠道发送消息时,它会向目标 Lambda 函数发送类似于以下示例的负载:

{ "Message":{}, "Data":"The payload that's provided in the CustomMessage object in MessageConfiguration", "ApplicationId":"3a9b1f4e6c764ba7b031e7183example", "CampaignId":"13978104ce5d6017c72552257example", "TreatmentId":"0", "ActivityId":"575cb1929d5ba43e87e2478eeexample", "ScheduledTime":"2020-04-08T19:00:16.843Z", "Endpoints":{ "1dbcd396df28ac6cf8c1c2b7fexample":{ "ChannelType":"EMAIL", "Address":"mary.major@example.com", "EndpointStatus":"ACTIVE", "OptOut":"NONE", "Location":{ "City":"Seattle", "Country":"USA" }, "Demographic":{ "Make":"OnePlus", "Platform":"android" }, "EffectiveDate":"2020-04-01T01:05:17.267Z", "Attributes":{ "CohortId":[ "42" ] }, "CreationDate":"2020-04-01T01:05:17.267Z" } } }

事件数据提供了以下属性:

  • ApplicationId – 活动所属的 Amazon Pinpoint 项目的 ID。

  • CampaignId – 调用 Lambda 函数的 Amazon Pinpoint 活动的 ID。

  • TreatmentId – 活动变体的 ID。如果您创建了标准活动,则此值始终为 0。如果您创建了 A/B 测试活动,则此值是介于 0 到 4 之间的整数。

  • ActivityId – 由活动执行的操作的 ID。

  • ScheduledTime – Amazon Pinpoint 执行活动的时间,以 ISO 8601 格式显示。

  • Endpoints – 活动指向的端点列表。每个负载最多可包含 50 个端点。如果将活动发送到的分段包含的端点数超过 50 个,则 Amazon Pinpoint 将重复调用该函数,一次最多处理 50 个端点,直至处理完所有端点。

您可以在创建和测试自定义渠道 Lambda 函数时使用此示例数据。