

# AWS IoT Core for LoRaWAN に送信先を追加する
<a name="lorawan-create-destinations"></a>

AWS IoT Core for LoRaWAN の送信先は、AWS のサービスで使用するデバイスのデータを処理する AWS IoT ルールを記述します。

ほとんどの LoRaWAN デバイスは、AWS のサービスで使用できる形式で AWS IoT Core for LoRaWAN にデータを送信しないため、AWS IoT ルールで最初にデータを処理する必要があります。AWS IoT ルールには、デバイスのデータを解釈する SQL ステートメントと、SQL ステートメントの結果を、それを使用するサービスに送信するトピックルールアクションが含まれています。

送信先を初めて追加している場合は、コンソールの使用をお勧めします。

## コンソールを使用して送信先を追加します
<a name="lorawan-create-destination-console"></a>

「[コンソールを使用してワイヤレスデバイスの仕様を AWS IoT Core for LoRaWAN に追加する](lorawan-end-devices-add.md#lorawan-end-device-spec-console)」で説明されているように、コンソールを使用してワイヤレスデバイスを追加する場合は、ワイヤレスデバイスの仕様とプロファイルを AWS IoT Core for LoRaWAN に前述のように追加したら、先に進んで送信先を追加することができます。

または、AWS IoT コンソールの [[Destinations]](https://console.aws.amazon.com/iot/home#/wireless/destinations) (送信先) ページから AWS IoT Core for LoRaWAN の送信先を追加することもできます。

デバイスのデータを処理するには、AWS IoT Core for LoRaWAN の送信先を作成するときに以下のフィールドを指定して、[**Add destination**] (送信先を追加) を選択します。
+ 

**送信先の詳細**  
[**Destination name**] (送信先名) と、必要に応じて送信先の説明を入力します。
+ 

**ルール名**  
デバイスが送信したメッセージを評価し、デバイスのデータを処理するために設定された AWS IoT ルールです。ルール名は送信先にマップされます。送信先には、受信したメッセージを処理するためのルールが必要です。メッセージは、AWS IoT ルールの呼び出し、または AWS IoT メッセージブローカーへのパブリッシュのいずれかによって処理されるように選択できます。
  + [**Enter a rule name**] (ルール名を入力) を選択する場合は、名前を入力し、次に [**Copy**] (コピー) をクリックして、AWS IoT ルールを作成するときに入力するルール名をコピーします。[**Create rule**] (ルールの作成) を選択して今すぐルールを作成するか、AWS IoT コンソールの [[Rules](https://console.aws.amazon.com/iot/home#/create/rule)] (ルール) ハブを開き、その名前のルールを作成します。

    ルールを入力し、[**Advanced**] (アドバンスト) 設定を使用してトピック名を指定することもできます。トピック名はルールの呼び出し中に提供され、ルール内の `topic` 式を使用してアクセスします。AWS IoT ルールの詳細については、「[https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html)」を参照してください。
  + **[Publish to AWS IoT message broker]** (IoT メッセージブローカーに発行) を選択する場合は、トピック名を入力します。その後、MQTT トピック名をコピーできます。また、複数のサブスクライバーがこのトピックにサブスクライブして、そのトピックに発行されたメッセージを受信できます。詳細については、「[https://docs.aws.amazon.com/iot/latest/developerguide/topics.html](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html)」を参照してください。

  送信先の AWS IoT ルールの詳細については、[LoRaWAN デバイスメッセージを処理するルールを作成する](lorawan-destination-rules.md) を参照してください。
+ 

**ロール名**  
[**Rule name**] (ルール名) で名前を付けたルールにアクセスするための許可をデバイスのデータに付与する IAM ロール。コンソールでは、新しいサービスロールを作成する、または既存のサービスロールを選択することができます。新しいサービスロールを作成する場合は、ロール名 (例、**IoTWirelessDestinationRole**) を入力するか、あるいは、空白のままにして AWS IoT Core for LoRaWAN で新しいロール名を作成することできます。その後、適切なアクセス許可を持つ IAM ロールが AWS IoT Core for LoRaWAN で自動的に作成されます。

  IAM ロールの詳細については、[IAM ロールを使用する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html)を参照してください。

## API を使用して送信先を追加します
<a name="lorawan-create-destination-api"></a>

CLI を使用して送信先を追加する場合は、送信先のルールと IAM ロールが既に作成されている必要があります。ロールに関する送信先の要件の詳細については、「[送信先の IAM ロールを作成する](#lorawan-create-destinations-roles)」を参照してください。

以下のリストには、送信先の追加、更新、または削除に関連付けられたタスクを実行する API アクションが記載されています。

**送信先に対する AWS IoT Wireless API アクション**
+ [CreateDestination](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateDestination.html)
+ [GetDestination](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_GetDestination.html)
+ [ListDestinations](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_ListDestinations.html)
+ [UpdateDestination](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_UpdateDestination.html)
+ [DeleteDestination](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_DeleteDestination.html)

AWS IoT Core for LoRaWAN リソースを作成および管理するために使用できるアクションとデータタイプの完全なリストについては、「[AWS IoT Wireless API reference](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/welcome.html)」を参照してください。

**AWS CLI を使用して送信先を追加する方法**  
AWS CLI を使用して、[create-destination](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/create-destination.html) コマンドによって送信先を追加できます。以下の例は、`RuleName` を `expression-type` パラメータの値として使用してルール名を入力することによって送信先を作成する方法を示しています。メッセージブローカーにパブリッシュまたはサブスクライブするためのトピック名を指定する場合は、`expression-type` パラメータの値を`MqttTopic` に変更してください。

```
aws iotwireless create-destination \
    --name IoTWirelessDestination \
    --expression-type RuleName \
    --expression IoTWirelessRule \
    --role-arn arn:aws:iam::123456789012:role/IoTWirelessDestinationRole
```

このコマンドを実行すると、指定した送信先名、ルール名、ロール名を持つ送信先が作成されます。送信先のルール名およびロール名については、[LoRaWAN デバイスメッセージを処理するルールを作成する](lorawan-destination-rules.md) と [送信先の IAM ロールを作成する](#lorawan-create-destinations-roles) を参照してください。

使用可能な CLI の詳細については、[AWS CLI リファレンス](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/index.html)を参照してください。

## 送信先の IAM ロールを作成する
<a name="lorawan-create-destinations-roles"></a>

AWS IoT Core for LoRaWAN の送信先には、AWS IoT ルールにデータを送信するために必要なアクセス許可を AWS IoT Core for LoRaWAN に付与する IAM ロールが必要です。そのようなロールがまだ定義されていない場合は、ロールのリストに表示されるように定義する必要があります。

コンソールを使用して送信先を追加するときは、このトピックで先ほど説明したように、AWS IoT Core for LoRaWAN が自動的に IAM ロールを作成します。API または CLI を使用して送信先を追加する場合、送信先の IAM ロールを作成する必要があります。

**AWS IoT Core for LoRaWAN 送信先ロール用の IAM ポリシーを作成するには**

1. [IAM コンソールのポリシーハブ](https://console.aws.amazon.com/iam/home#/policies)を開きます。

1. [**Create policy**] (ポリシーの作成) を選択し、[**JSON**] タブを選択します。

1. エディタで、エディタからコンテンツを削除し、このポリシードキュメントを貼り付けます。

   ```
   {
       "Version": "2012-10-17",
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "iot:DescribeEndpoint",
                   "iot:Publish"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

1. [**Review policy**] (ポリシーの確認) を選択し、[**Name**] (名前) でこのポリシーの名前を入力します。この名前は、次の手順で使用するために必要です。

   必要に応じて、このポリシーを [**Description**] (説明) で説明することもできます。

1. [**Create policy**] (ポリシーの作成) を選択します。

**AWS IoT Core for LoRaWAN 送信先の IAM ロールを作成するには**

1. [[Roles hub of the IAM console](https://console.aws.amazon.com/iam/home#/roles)] (IAM コンソールのロールハブ) にログインして、[**Create role**] (ロールの作成) を選択します。

1. **[Select type of trusted entity]** (信頼できるエンティティのタイプを選択) で、**[Another AWS アカウント]** (別の AWS アカウント) を選択します。

1. [**Account ID**] (アカウント ID) で AWS アカウント アカウント ID を入力し、[**Next: Permissions**] (次へ: アクセス許可) を選択します。

1. 検索ボックスで、前の手順で作成した IAM ポリシーの名前を入力します。

1. 検索結果で、前の手順で作成した IAM ポリシーを確認します。

1. [**次へ: タグ**]、[**次へ: 確認**] の順に選択します。

1. [**Role name**] (ロール名) でこのロールの名前を入力し、[**Create role**] (ロールの作成) を選択します。

1. 確認メッセージで、新しいロールを編集するために作成したロールの名前を選択します。

1. [**Summary**] (概要) で、[**Trust relationships**] (信頼関係) タブを選択し、続いて [**Edit trust relationship**] (信頼関係の編集) を選択します。

1. [**Policy Document**] (ポリシードキュメント) で、`Principal` プロパティを次の例のように変更します。

   ```
   "Principal": { 
       "Service": "iotwireless.amazonaws.com" 
   },
   ```

   `Principal` プロパティを変更すると、完全なポリシードキュメントは次の例のようになります。

   ```
   {
     "Version": "2012-10-17",
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "iotwireless.amazonaws.com"
         },
         "Action": "sts:AssumeRole",
         "Condition": {}
       }
     ]
   }
   ```

1. 変更を保存して終了するには、[**Update Trust Policy**] (信頼ポリシーの更新) を選択します。

このロールを定義すると、AWS IoT Core for LoRaWAN の送信先を設定するときに、ロールのリストにそのロールが表示されます。