

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

# HTTP 操作目的地
<a name="http-action-destination"></a>

HTTP 操作目标是一项 Web 服务，规则引擎可以将主题规则中的数据路由到该服务。 AWS IoT Core 资源描述了 Web 服务 AWS IoT。目标资源可以由不同的规则共享。

在向其他 Web 服务发送数据之前 AWS IoT Core ，它必须确认自己可以访问该服务的终端节点。

## 概述
<a name="http-action-destination-overview"></a>

HTTP 操作目标指的是支持确认 URL 和一个或多个数据收集的 Web 服务 URLs。目标资源包含您的 Web 服务的确认 URL。配置 HTTP 操作时，需要指定应接收数据的端点的实际 URL 以及 Web 服务的确认 URL。确认目标后，主题规则会将 SQL 语句的结果发送到 HTTPS 端点（而不是发送到确认 URL）。

HTTP 操作目标可以处于以下状态之一：

已启用  
已经确认目标，可以由规则操作使用。目标必须处于 `ENABLED` 状态才能在规则中使用。您只能启用处于 DISABLED 状态的目标。

DISABLED  
已经确认目标，但规则操作无法使用。如果您希望暂时阻止流入端点的流量而无需再次完成确认流程，则此功能非常有用。您只能禁用处于 ENABLED 状态的目标。

进行中  
正在确认目标。

ERROR  
目标确认超时。

在确认并启用 HTTP 操作目标后，它可以与您账户中的任何规则一起使用。

## 管理 HTTP 操作目标
<a name="http-action-destination-managing"></a>

您可以使用以下操作来管理您的 HTTP 操作目标。

### 创建 HTTP 操作目标
<a name="http-action-destination-creating"></a>

您可以通过调用`CreateTopicRuleDestination`操作或使用 AWS IoT 控制台创建 HTTP 操作目标。

创建目标后， AWS IoT 向确认 URL 发送确认请求。确认请求的格式如下：

```
HTTP POST {confirmationUrl}/?confirmationToken={confirmationToken}
Headers:
x-amz-rules-engine-message-type: DestinationConfirmation
x-amz-rules-engine-destination-arn:"arn:aws:iot:us-east-1:123456789012:ruledestination/http/7a280e37-b9c6-47a2-a751-0703693f46e4"
Content-Type: application/json
Body:
{
    "arn":"arn:aws:iot:us-east-1:123456789012:ruledestination/http/7a280e37-b9c6-47a2-a751-0703693f46e4",  
    "confirmationToken": "AYADeMXLrPrNY2wqJAKsFNn-…NBJndA",
    "enableUrl": "https://iot.us-east-1.amazonaws.com/confirmdestination/AYADeMXLrPrNY2wqJAKsFNn-…NBJndA",
    "messageType": "DestinationConfirmation"
}
```

确认请求的内容包含以下信息：

arn  
要确认的 HTTP 操作目标的亚马逊资源名称 (ARN)。

confirmationToken  
发送的确认令牌 AWS IoT Core。示例中是已截断的令牌。您的令牌会更长。您需要此令牌用 AWS IoT Core来确认您的目的地。

enableUrl  
您需要浏览以确认主题规则目标的 URL。

messageType  
消息类型。

### 正在确认 HTTP 操作目的地
<a name="http-action-destination-confirming"></a>

要完成端点确认过程，如果您使用 AWS CLI，则必须在确认 URL 收到确认请求后执行以下步骤。

1. 

**确认目标已准备好接收消息**  
要确认 HTTP 操作目标已准备好接收物联网消息，请在确认请求`enableUrl`中调用，或者执行 `ConfirmTopicRuleDestination` API 操作并传递确认请求`confirmationToken`中的。

1. 

**将主题规则状态设置为已启用**  
确认目标可以接收消息后，必须执行 `UpdateTopicRuleDestination` API 操作才能将主题规则的状态设置为 `ENABLED`。

如果您使用的是 AWS IoT 控制台，请将其复制`confirmationToken`并粘贴到控制 AWS IoT 台中目标的确认对话框中。然后，您就可以启用主题规则。

### 发送新确认请求
<a name="trigger-confirm"></a>

要为目标激活新的确认消息，请调用 `UpdateTopicRuleDestination` 并将主题规则目标的状态设置为 `IN_PROGRESS`。

发送新的确认请求后，重复确认过程。

### 禁用和删除 HTTP 操作目标
<a name="http-action-destination-deleting"></a>

要禁用目标，请调用 `UpdateTopicRuleDestination` 并将主题规则目标的状态设置为 `DISABLED`。可以再次启用处于 DISABLED 状态的主题规则，而无需发送新的确认请求。

要删除 HTTP 操作目标，请调用`DeleteTopicRuleDestination`。

## 证书颁发机构 Support
<a name="http-action-destination-certificates"></a>

**注意**  
不支持自签名证书。

 HTTP 操作目标中的 HTTPS 端点支持[AWS 私有证书颁发机构和 Lets E [ncrypt](https://letsencrypt.org/certificates/) 颁发的证书](https://www.amazontrust.com/repository/)。