トピックルールの送信先の操作 - AWS IoT コア

「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」

トピックルールの送信先の操作

送信先は、ルールエンジンがデータをルーティングできる場所を定義するリソースです。ルールエンジンは、次の 2 種類の宛先をサポートします。AWS IoTHTTP の送信先と VPC の送信先。送信先を使用すると、ルールエンジンは AWS IoT とネイティブに統合されていない他のサービスにデータを送信できます。送信先はルール間で再利用できます。

HTTP の送信先を使用するには、確認または設定が必要になる場合があります。次の段落では、HTTP ターゲットの確認フローについて説明します。

トピックルールの送信先は、データのルーティング先となるエンドポイントを所有しているか、アクセスできることを確認するために使用されます。HTTP エンドポイント (http アクションなど) を使用してルールアクションを作成するか、既存のルールアクションのエンドポイントを更新すると、AWS IoT は一意のトークンを含む確認メッセージをエンドポイントに送信します。エンドポイントを確認するには、トークンを使用して ConfirmTopicRuleDestination を呼び出して、エンドポイントが所有しているか、エンドポイントへのアクセス権を持っていることを確認する必要があります。トークンは 3 日間有効です。その後、新しい http アクションを作成するか、UpdateTopicRuleDestination API を呼び出して確認プロセスを再開する必要があります。トピックルールの送信先は、enableUrl を参照するか、 コンソールの [送信先AWS IoT] ページからトークンを指定することで確認できます。

がエンドポイントに送信されたトークンを受信すると、HTTP 送信先が確認されます。AWS IoT送信先をルールエンジンで使用するには、事前に有効にする必要があります。送信先の状態は、次のいずれかになります。

ENABLED

送信先は有効です。送信先をルールで使用するには、ENABLED 状態である必要があります。有効化にできるのは、「DISABLED」ステータスの送信先のみです。

DISABLED

送信先は確認されましたが、無効になっています。これは、確認プロセスを再度実行することなく、エンドポイントへのトラフィックを一時的に防止する場合に便利です。ENABLED にできるのは、ENABLED ステータスの送信先のみです。

IN_PROGRESS

送信先の確認は進行中です。

ERROR

送信先の確認がタイムアウトしました。

送信先が確認され、有効になると、アカウントのどのルールでも送信先を使用できます。

HTTP トピックルールの送信先の作成

送信先は、AWS IoT を使用して http アクションを含むルールを作成するときに作成されます。CreateTopicRuleDestination API または AWS IoT コンソールを使用して送信先を作成することもできます。

送信先を作成すると、AWS IoT はエンドポイント URL が有効であることを確認します。URL が有効な場合は、その 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

確認するトピックルールの送信先の Amazon リソースネーム (ARN)。

confirmationToken

確認トークン。この例のトークンは切り捨てられます。トークンは長くなります。

enableUrl

トピックルールの送信先を確認するために参照する URL。

messageType

メッセージのタイプ。

VPC トピックルールの送信先の作成

Virtual Private Cloud (VPC) 送信先を作成するには、CreateTopicRuleDestination API または コンソールを使用します。AWS IoT CoreVPC の送信先を作成するときは、次の情報を指定する必要があります。

vpcId

VPC 送信先の一意の ID。

subnetIds

ルールエンジンが Elastic Network Interface を作成するサブネットのリスト。ルールエンジンは、リスト内の各サブネットに 1 つのネットワークインターフェイスを割り当てます。

securityGroups (オプション)

ネットワークインターフェイスに適用されるセキュリティグループのリスト。

roleArn

お客様に代わってネットワークインターフェイスを作成するアクセス許可を持つロールの ARN。

この ARN には、次の例のようなポリシーがアタッチされています。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:DescribeNetworkInterfaces", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DescribeVpcAttribute" ], "Resource": "*" } ] }

を使用した VPC 送信先の作成AWS CLI

次の例では、AWS CLI を使用して VPC 送信先を作成する方法を示します。

aws --region regions iot create-topic-rule-destination --destination-configuration 'vpcConfiguration={subnetIds=["subnet-123456789101230456"],securityGroups=[],vpcId="vpc-123456789101230456",roleArn="arn:aws:iam::123456789012:role/role-name"}'

このコマンドを実行すると、VPC の送信先ステータスが IN PROGRESS になります。 数分後、そのステータスは ERROR (コマンドが成功しない場合) または ENABLED に変わります。 送信先ステータスが ENABLED の場合は、使用する準備ができています。

次のコマンドを使用して、VPC 送信先のステータスを取得できます。

aws --region region iot get-topic-rule-destination --arn "VPCDestinationARN"

コンソールを使用した VPC 送信先の作成AWS IoT Core

次の手順では、AWS IoT Core コンソールを使用して VPC 送信先を作成する方法について説明します。

  1. AWS IoT Core コンソールに移動します。左ペインの [Act] タブで、[Destinations] を選択します。

  2. 以下のフィールドに値を入力します。

    • VPC ID

    • サブネット IDs

    • セキュリティグループ

  3. を作成するために必要なアクセス許可を持つロールを選択します。ENIs 前述のロールの例には、これらのアクセス許可が含まれています。

VPC の送信先ステータスが [ENABLED] になると、使用できる状態です。

HTTP トピックルールの送信先の確認

確認メッセージに含まれる HTTP GET リクエストを enableUrl に送信して、送信先を確認できます。確認メッセージのトークンで ConfirmTopicRuleDestination を呼び出すか、AWS IoT コンソールを使用できます。

送信先が ENABLED 状態になるためには、トークンが有効である必要があります。トークンの有効期限が切れている場合は、UpdateTopicRuleDestination を呼び出して確認プロセスを再開する必要があります。

注記

を呼び出してトピックルールの送信先を確認した場合、送信先のステータスは ConfirmTopicRuleDestination になります。使用する前に DISABLED を呼び出して、明示的に送信先を有効にする必要があります。UpdateTopicRuleDestination

トピックルールの送信先の無効化

送信先を無効にするには、UpdateTopicRuleDestination を呼び出して、トピックルールの送信先のステータスを DISABLED に設定します。

トピックルールの送信先の有効化

送信先を有効にするには、UpdateTopicRuleDestination を呼び出して、トピックルールのステータスを ENABLED に設定します。 URL を再検証する必要はありません。

新しい確認メッセージの送信

送信先の新しい確認メッセージをトリガーするには、UpdateTopicRuleDestination を呼び出 して、トピックルールの送信先のステータスを IN_PROGRESS に設定します。

トピックルールの送信先の削除

トピックルールの送信先を削除するには、DeleteTopicRuleDestination を呼び出します。