

**终止支持通知：** AWS 将于 2026 年 10 月 30 日终止对亚马逊 Pinpoint 的支持。2026 年 10 月 30 日之后，您将不再能够访问 Amazon Pinpoint 控制台或 Amazon Pinpoint 资源（端点、分段、活动、旅程和分析）。有关更多信息，请参阅 [Amazon Pinpoint 终止支持](https://docs.aws.amazon.com/console/pinpoint/migration-guide)。**注意：** APIs 与短信相关、语音、移动推送、OTP 和电话号码验证不受此更改的影响，并受 AWS 最终用户消息的支持。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 Webhook 或 Lambda 函数在 Amazon Pinpoint 中创建自定义渠道
<a name="channels-custom"></a>

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

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

## 使用 Webhook
<a name="channels-custom-webhook-create"></a>

如果您使用 webhook 发送自定义频道消息，则 Webhook 的 URL 必须以 “p https://". The webhook URL can only contain alphanumeric characters, plus the following symbols: hyphen (-), period (.), underscore (\$1), tilde (\$1), question mark (?), slash or solidus (/), pound or hash sign (\$1), and semicolon (:). The URL has to com ly with” 开头。[RFC3986](https://datatracker.ietf.org/doc/html/rfc3986)

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

## 使用 Lambda 函数
<a name="channels-custom-LAM-create"></a>

如果您选择通过创建 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 函数时使用此示例数据。