

# AWS IoT Core for LoRaWAN へのゲートウェイとデバイスの接続
<a name="lorawan-getting-started"></a>

AWS IoT Core for LoRaWAN は、ワイヤレス LoRaWAN (省電力長距離広域ネットワーク) デバイスの接続と管理を支援し、LNS の開発と運用が不要になります。Long range WAN (LoRaWAN) デバイスおよびゲートウェイは、AWS IoT Core for LoRaWAN を使用することにより、AWS IoT Core に接続できます。

## デバイス、ゲートウェイ、プロファイル、および送信先の命名規則
<a name="lorawan-naming-convention"></a>

AWS IoT Core for LoRaWAN を開始してリソースを作成する前に、デバイス、ゲートウェイ、および送信先の命名規則を検討してください。

AWS IoT Core for LoRaWAN は、ワイヤレスデバイス、ゲートウェイ、およびプロファイル用に作成するリソースに一意の ID を割り当てます。ただし、リソースによりわかりやすい名前も付けて、リソースを識別しやすくすることができます。AWS IoT Core for LoRaWAN にデバイス、ゲートウェイ、プロファイル、および送信先を追加する前に、管理しやすくするために、それらの名前の付け方を検討してください。

作成したリソースにタグを追加することもできます。LoRaWAN デバイスを追加する前に、AWS IoT Core for LoRaWAN リソースを識別および管理するためのタグの使用方法を検討してください。タグは、追加後に変更できます。

命名とタグ付けの詳細については、[AWS IoT Wireless リソースについて説明する](iotwireless-describe-resources.md) を参照してください。

## デバイスデータからサービスデータへのマッピング
<a name="lorawan-service-device-data"></a>

LoRaWAN ワイヤレスデバイスからのデータは、多くの場合、帯域幅を最適化するためにエンコードされます。これらのエンコードされたメッセージは、他の AWS のサービスで簡単に使用できない可能性がある形式で AWS IoT Core for LoRaWAN に到達します。AWS IoT Core for LoRaWAN は、AWS Lambda 関数を使用して、デバイスメッセージを処理して他の AWS のサービスが使用できる形式にデコードできる AWS IoT ルールを使用します。

デバイスデータを変換して他の AWS のサービスに送信するには、次のことを理解しておく必要があります。
+ ワイヤレスデバイスが送信するデータの形式と内容。
+ データの送信先とするサービス。
+ サービスが必要とする形式。

この情報を使用して、変換を実行する AWS IoT ルールを作成し、変換されたデータを、それを使用する AWS のサービスに送信できます。

## コンソールを使用してデバイスとゲートウェイを AWS IoT Core for LoRaWAN にオンボードする
<a name="lorawan-console"></a>

コンソールインターフェイスまたは API を使用して、LoRaWAN ゲートウェイとデバイスを追加できます。初めて AWS IoT Core for LoRaWAN を使用する場合は、コンソールを使用することをお勧めします。いくつかの AWS IoT Core for LoRaWAN リソースを一度に管理する場合には、コンソールインターフェイスが最も実用的です。大量の AWS IoT Core for LoRaWAN リソースを管理する場合は、AWS IoT Wireless API を使用して、より自動化されたソリューションを作成することを検討してください。

AWS IoT Core for LoRaWAN リソースを設定するときに入力するデータの多くは、デバイスのベンダーによって提供され、ベンダーがサポートしている LoRaWAN 仕様に固有のものです。以下のトピックでは、AWS IoT Core for LoRaWAN リソースを説明し、コンソールまたは API を使用してゲートウェイとデバイスを追加する方法を説明します。

**注記**  
パブリックネットワークを使用して LoRaWAN デバイスをクラウドに接続している場合は、ゲートウェイのオンボーディングをスキップできます。詳細については、「[パブリック LoRaWAN デバイスネットワーク (Everynet) からの LoRaWAN トラフィックの管理](iot-lorawan-roaming.md)」を参照してください。

**Topics**
+ [デバイス、ゲートウェイ、プロファイル、および送信先の命名規則](#lorawan-naming-convention)
+ [デバイスデータからサービスデータへのマッピング](#lorawan-service-device-data)
+ [コンソールを使用してデバイスとゲートウェイを AWS IoT Core for LoRaWAN にオンボードする](#lorawan-console)
+ [ゲートウェイを AWS IoT Core for LoRaWAN にオンボードする](lorawan-onboard-gateways.md)
+ [デバイスを AWS IoT Core for LoRaWAN にオンボードする](lorawan-onboard-end-devices.md)

# ゲートウェイを AWS IoT Core for LoRaWAN にオンボードする
<a name="lorawan-onboard-gateways"></a>

AWS IoT Core for LoRaWAN を初めて使用する場合は、コンソールを使用することで、最初の LoRaWAN ゲートウェイとデバイスを追加できます。

**注記**  
パブリックネットワークを使用して LoRaWAN デバイスをクラウドに接続している場合は、ゲートウェイのオンボーディングをスキップできます。詳細については、「[パブリック LoRaWAN デバイスネットワーク (Everynet) からの LoRaWAN トラフィックの管理](iot-lorawan-roaming.md)」を参照してください。

**ゲートウェイをオンボードする前に**  
ゲートウェイを AWS IoT Core for LoRaWAN にオンボードする前に、以下のことをお勧めします。
+ AWS IoT Core for LoRaWAN での使用を認定されたゲートウェイを使用してください。これらのゲートウェイは追加の構成設定なしで AWS IoT Core に接続し、バージョン 2.0.4 以降の [LoRa Basics Station](https://doc.sm.tc/station) ソフトウェアが実行されています。詳細については、「[AWS IoT Wireless によるゲートウェイの管理](lorawan-manage-gateways.md)」を参照してください。
+ リソースをより簡単に管理できるように、作成したリソースの命名規則を考慮してください。詳細については、「[AWS IoT Wireless リソースについて説明する](iotwireless-describe-resources.md)」を参照してください。
+ 各ゲートウェイに固有の設定パラメータの入力準備を事前にしておくと、コンソールへのデータの入力がよりスムーズになります。AWS IoT がゲートウェイと通信および管理するために必要なワイヤレスゲートウェイの設定パラメータには、ゲートウェイの EUI とその LoRa 周波数帯域が含まれます。

**Topics**
+ [周波数帯域の選択を検討し、必要な IAM ロールを追加する](lorawan-rfregion-permissions.md)
+ [ゲートウェイを AWS IoT Core for LoRaWAN に追加する](lorawan-onboard-gateway-add.md)
+ [LoRaWAN ゲートウェイを接続し、接続ステータスを確認する](lorawan-gateway-connection-status.md)

# 周波数帯域の選択を検討し、必要な IAM ロールを追加する
<a name="lorawan-rfregion-permissions"></a>

ゲートウェイを AWS IoT Core for LoRaWAN に追加する前に、ゲートウェイが動作する周波数帯域を検討し、ゲートウェイを AWS IoT Core for LoRaWAN に接続するために必要な IAM ロールを追加することをお勧めします。

**注記**  
コンソールを使用してゲートウェイを追加する場合は、[**Create role**] (ロールの作成) をクリックして必要な IAM ロールを作成し、これらのステップをスキップできます。これらの手順は、CLI を使用してゲートウェイを作成する場合にのみ実行する必要があります。

## ゲートウェイとデバイス接続用の LoRa 周波数帯域の選択を検討する
<a name="lorawan-frequency-bands"></a>

AWS IoT Core for LoRaWAN は、EU863-870、US902-928、AU915、および AS923-1 周波数帯域をサポートしており、お客様は、これらの周波数帯域と周波数帯域の特性をサポートする国に物理的に存在するゲートウェイとデバイスを接続するために、これらの周波数帯域を使用できます。EU863-870 および US902-928 帯域は、それぞれ欧州と北米で一般的に使用されています。AS923-1 帯域は、オーストラリア、ニュージーランド、日本、シンガポールなどで一般的に使用されています。AU915 は、とりわけオーストラリアとアルゼンチンで使用されています。お住まいの地域または国で使用する周波数帯域の詳細については、[LoRaWAN® 地域別パラメータ](https://lora-alliance.org/resource_hub/rp2-101-lorawan-regional-parameters-2/)を参照してください。

LoRa Alliance は、LoRa Alliance のウェブサイトからダウンロードできる LoRaWAN 仕様と地域別パラメータドキュメントを公開しています。LoRa Alliance の地域パラメータは、企業が地域や国で使用する周波数帯域を決定するのに役立ちます。AWS IoT Core for LoRaWAN の周波数帯域の実装は、地域パラメータ仕様書の推奨事項に従います。これらの地域別パラメータは、産業、科学、および医療 (ISM) 帯域に適合する周波数割り当てとともに、一連の無線パラメータにグループ化されます。コンプライアンスチームと協力して、適用される規制要件を確実に満たすことをお勧めします。

## Configuration and Update Server (CUPS) がゲートウェイ認証情報を管理することを許可するための IAM ロールを追加する
<a name="lorawan-onboard-permissions"></a>

この手順では、Configuration and Update Server (CUPS) がゲートウェイ認証情報を管理することを許可する IAM ロールを追加する方法について説明します。LoRaWAN ゲートウェイが AWS IoT Core for LoRaWAN との接続を試みる前に、必ずこの手順を実行してください。ただし、これを行う必要があるのは 1 回だけです。

**Configuration and Update Server (CUPS) がゲートウェイ認証情報を管理することを許可する IAM ロールを追加する**

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

1. **IoTWirelessGatewayCertManagerRole** ロールを既に追加している可能性があると思われる場合は、検索バーに **IoTWirelessGatewayCertManagerRole** と入力します。

   検索結果に **IoTWirelessGatewayCertManagerRole** ロールが表示された場合、必要な IAM ロールがあります。これで手順を終了できます。

   検索結果が空の場合、必要な IAM ロールがありません。この手順を続行して、追加します。

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

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

1. 検索ボックスに「**AWSIoTWirelessGatewayCertManager**」と入力します。

1. 検索結果のリストで、**AWSIoTWirelessGatewayCertManager** という名前のポリシーを選択します。

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

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

1. 新しいロールを編集するには、確認メッセージで **IoTWirelessGatewayCertManagerRole** を選択します。

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**] (信頼ポリシーの更新) を選択します。

これで、**IoTWirelessGatewayCertManagerRole** が作成されました。これをもう一度行う必要はありません。

ゲートウェイの追加中にこの手順を実行した場合は、このウィンドウと IAM コンソールを閉じ、AWS IoT コンソールに戻り、ゲートウェイの追加を完了できます。

# ゲートウェイを AWS IoT Core for LoRaWAN に追加する
<a name="lorawan-onboard-gateway-add"></a>

コンソールまたは CLI を使用して、ゲートウェイを AWS IoT Core for LoRaWAN に追加できます。

ゲートウェイを追加する前に、「[ゲートウェイを AWS IoT Core for LoRaWAN にオンボードする](lorawan-onboard-gateways.md)」の「**ゲートウェイをオンボードする前に**」セクションで説明されている要素を考慮することをお勧めします。

初めてゲートウェイを追加する場合は、コンソールを使用することをお勧めします。CLI を使用してゲートウェイを追加する場合は、ゲートウェイが AWS IoT Core for LoRaWAN と接続するために必要な IAM ロールを既に作成済みである必要があります。ロールを作成する方法については、「[Configuration and Update Server (CUPS) がゲートウェイ認証情報を管理することを許可するための IAM ロールを追加する](lorawan-rfregion-permissions.md#lorawan-onboard-permissions)」を参照してください。

## コンソールを使用してゲートウェイを追加する
<a name="lorawan-onboard-gateway-console"></a>

AWS IoT コンソールの [AWS IoT Core for LoRaWAN](https://console.aws.amazon.com/iot/home#/wireless/landing) の **[Intro]** (イントロダクション) ページに移動し、**[Get started]** (開始方法) を選択して、**[Add gateway]** (ゲートウェイを追加) を選択します。ゲートウェイを既に追加している場合は、[**View gateway**] (ゲートウェイの表示) を選択して、追加したゲートウェイを表示します。ゲートウェイをさらに追加する場合は、[**Add gateway**] (ゲートウェイの追加) を選択します。

1. 

**ゲートウェイの詳細と周波数帯域情報を提供する**  
[**Gateway details**] (ゲートウェイの詳細) セクションを使用して、ゲートウェイの EUI や周波数帯域設定などのデバイス設定データに関する情報を提供します。
   + 

**ゲートウェイの EUI**  
個々のゲートウェイデバイスの EUI (拡張一意識別子)。EUI は `c0ee40ffff29df10` などの 16 桁の英数字コードであり、LoRaWAN ネットワーク内のゲートウェイを一意に識別します。この情報はゲートウェイモデルに固有のものであり、ゲートウェイデバイスまたはそのユーザーマニュアルに記載されています。
**注記**  
ゲートウェイの EUI は、ゲートウェイデバイスに表示される Wi-Fi MAC アドレスとは異なります。EUI は、ゲートウェイを一意に識別する EUI-64 標準に準拠しているため、他の AWS アカウント とリージョンで再利用できません。
   + 

**周波数帯域 (RFRegion)**  
ゲートウェイの周波数帯。ゲートウェイがサポートするもの、およびゲートウェイの物理的な接続元の国または地域に応じて、`US915`、`EU868`、`AU915`、または `AS923-1` から選択できます。帯域の詳細については、[ゲートウェイとデバイス接続用の LoRa 周波数帯域の選択を検討する](lorawan-rfregion-permissions.md#lorawan-frequency-bands) を参照してください。

1. 

**ワイヤレスゲートウェイ設定データを指定する (オプション)**  
これらのフィールドはオプションで、ゲートウェイとその設定に関する追加情報を提供するために使用できます。
   + 

**ゲートウェイの名前、説明、タグ**  
これらのオプションフィールドの情報は、ワイヤレスシステムの要素をどのように編成および説明するかによって決まります。ゲートウェイに**名前**を追加し、[**Description**] (説明) フィールドを使用してゲートウェイに関する情報を提供し、**タグ**を使用してゲートウェイに関するメタデータのキーと値のペアを追加できます。リソースの命名と説明の詳細については、[AWS IoT Wireless リソースについて説明する](iotwireless-describe-resources.md) を参照してください。
   + 

**サブバンドとフィルターを使用した LoRaWAN 構成**  
オプションで、使用するサブバンドやトラフィックのフローを制御できるフィルターなどの LoRaWAN 設定データを指定することもできます。このチュートリアルでは、これらのフィールドをスキップできます。詳細については、「[ゲートウェイのサブバンドとフィルタリング機能を設定する](lorawan-subband-filter-configuration.md)」を参照してください。

1. 

**AWS IoT のモノとゲートウェイを関連付ける**  
AWS IoTのモノを作成し、ゲートウェイに関連付けるかどうかを指定します。AWS IoT におけるモノを使用すると、デバイスの検索と管理を簡単に行えるようになります。モノをゲートウェイに関連付けると、ゲートウェイは他の AWS IoT Core 機能にアクセスできます。

1. 

**ゲートウェイ証明書を作成してダウンロードする**  
ゲートウェイが安全に AWS IoT と通信できるようにゲートウェイを認証するには、LoRaWAN ゲートウェイは AWS IoT Core for LoRaWAN に対してプライベートキーと証明書を提示する必要があります。AWS IoT が X.509 標準を使用してゲートウェイの ID を確認できるように、**ゲートウェイ証明書**を作成します。

   [**Create certificate**] (証明書の作成) ボタンをクリックして、証明書ファイルをダウンロードします。これらはゲートウェイを設定するために後で使用します。

1. 

**CUPS エンドポイントと LNS エンドポイントをコピーし、証明書をダウンロードする**  
LoRaWAN ゲートウェイは、AWS IoT Core for LoRaWAN への接続を確立するときに、CUPS エンドポイントまたは LNS エンドポイントに接続する必要があります。CUPS エンドポイントでは設定管理も提供されるため、CUPS エンドポイントを使用することをお勧めします。AWS IoT Core for LoRaWAN エンドポイントの真正性を確認するために、ゲートウェイは CUPS エンドポイントおよび LNS エンドポイントごとに信頼証明書を使用します。

   [**Copy**] (コピー) ボタンをクリックして CUPS エンドポイントと LNS エンドポイントをコピーします。この情報はゲートウェイを構成するために後で必要になります。次に、[**Download server trust certificates**] (サーバー信頼証明書のダウンロード) ボタンをクリックして、CUPS エンドポイントおよび LNS エンドポイントの信頼証明書をダウンロードします。

1. 

**ゲートウェイのアクセス許可のための IAM ロールを作成する**  
Configuration and Update Server (CUPS) がゲートウェイ認証情報を管理することを許可する IAM ロールを追加する必要があります。
**注記**  
このステップでは、**IoTWirelessGatewayCertManager** ロールを作成します。すでにこのロールを作成している場合は、このステップをスキップできます。LoRaWAN ゲートウェイが AWS IoT Core for LoRaWAN との接続を試みる前に、これを行う必要があります。ただし、実行する必要があるのは 1 回だけです。

   アカウントに **IoTWirelessGatewayCertManager** IAM ロールを作成するには、[**Create role**] (ロールの作成) ボタンをクリックします。ロールが既に存在する場合は、ドロップダウンリストから選択します。

   [**Submit**] (送信) をクリックして、ゲートウェイの作成を完了します。

## API を使用してゲートウェイを追加する
<a name="lorawan-onboard-gateway-api"></a>

API または CLI を使用して初めてゲートウェイを追加する場合は、ゲートウェイが AWS IoT Core for LoRaWAN と接続できるように **IoTWirelessGatewayCertManager** IAM ロールを追加する必要があります。ロールの作成方法については、「[Configuration and Update Server (CUPS) がゲートウェイ認証情報を管理することを許可するための IAM ロールを追加する](lorawan-rfregion-permissions.md#lorawan-onboard-permissions)」セクションを参照してください。

以下に、LoRaWAN ゲートウェイの追加、更新、削除に関連するタスクを実行する API アクションを示します。

**AWS IoT Core for LoRaWAN ゲートウェイ向けの AWS IoT Wireless API アクション**
+ [CreateWirelessGateway](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateWirelessGateway.html)
+ [GetWirelessGateway](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_GetWirelessGateway.html)
+ [ListWirelessGateways](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_ListWirelessGateways.html)
+ [UpdateWirelessGateway](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_UpdateWirelessGateway.html)
+ [DeleteWirelessGateway](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_DeleteWirelessGateway.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-wireless-gateway](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/create-wireless-gateway.html) コマンドによってワイヤレスゲートウェイを作成できます。次の例では、ワイヤレス LoRaWAN デバイスゲートウェイを作成します。ゲートウェイ証明書やプロビジョニング認証情報などの追加の詳細が含まれる `input.json` ファイルを指定することもできます。

**注記**  
この手順は、ここに示す CLI コマンドに対応する AWS API のメソッドを使用することにより、API で行うこともできます。

```
aws iotwireless create-wireless-gateway \
    --lorawan GatewayEui="a1b2c3d4567890ab",RfRegion="US915" \
    --name "myFirstLoRaWANGateway" \
    --description "Using my first LoRaWAN gateway"
    --cli-input-json input.json
```

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

# LoRaWAN ゲートウェイを接続し、接続ステータスを確認する
<a name="lorawan-gateway-connection-status"></a>

ゲートウェイの接続ステータスを確認する前に、ゲートウェイを追加済みで、AWS IoT Core for LoRaWAN に接続済みである必要があります。ゲートウェイを追加する方法については、「[ゲートウェイを AWS IoT Core for LoRaWAN に追加する](lorawan-onboard-gateway-add.md)」を参照してください。

## ゲートウェイを AWS IoT Core for LoRaWAN に接続する
<a name="lorawan-connect-gateway"></a>

ゲートウェイを追加したら、ゲートウェイの設定インターフェイスに接続して、設定情報と信頼証明書を入力します。

AWS IoT Core for LoRaWAN にゲートウェイの情報を追加した後、AWS IoT Core for LoRaWAN 情報をゲートウェイデバイスに追加します。ゲートウェイのベンダーが提供するドキュメントでは、証明書ファイルをゲートウェイにアップロードし、AWS IoT Core for LoRaWAN と通信するようにゲートウェイデバイスを設定するプロセスについて説明されているはずです。

**AWS IoT Core for LoRaWAN での使用を認定されたゲートウェイ**  
LoRaWAN ゲートウェイを設定する手順については、AWS IoT Core for LoRaWAN ワークショップの「[Configure gateway device](https://iotwireless.workshop.aws/en/200_gateway/400_configuregateway.html)」セクションを参照してください。ここでは、AWS IoT Core for LoRaWAN での使用が認定されたゲートウェイを接続するための手順について説明します。

**CUPS プロトコルをサポートするゲートウェイ**  
次の手順で、CUPS プロトコルをサポートするゲートウェイを接続する方法について説明します。

1. ゲートウェイの追加時に取得した次のファイルをアップロードします。
   + ゲートウェイデバイス証明書およびプライベートキーファイル。
   + CUPS エンドポイントの信頼証明書ファイル `cups.trust`。

1. 前に取得した CUPS エンドポイント URL を指定します。エンドポイントは `prefix.cups.lorawan.region.amazonaws.com:443` の形式です。

この情報の入手方法については、「[ゲートウェイを AWS IoT Core for LoRaWAN に追加する](lorawan-onboard-gateway-add.md)」を参照してください。

**LNS プロトコルをサポートするゲートウェイ**  
次の手順で、LNS プロトコルをサポートするゲートウェイを接続する方法について説明します。

1. ゲートウェイの追加時に取得した次のファイルをアップロードします。
   + ゲートウェイデバイス証明書およびプライベートキーファイル。
   + LNS エンドポイントの信頼証明書ファイル `lns.trust`。

1. 前に取得した LNS エンドポイント URL を指定します。エンドポイントは https://`prefix.lns.lorawan.region.amazonaws.com:443` の形式です。

この情報の入手方法については、「[ゲートウェイを AWS IoT Core for LoRaWAN に追加する](lorawan-onboard-gateway-add.md)」を参照してください。

ゲートウェイを AWS IoT Core for LoRaWAN に接続したら、コンソールまたは API を使用して、接続のステータスを確認し、最後のアップリンクがいつ受信されたかに関する情報を取得できます。

## コンソールを使用してゲートウェイ接続ステータスを確認する
<a name="lorawan-connection-status-console"></a>

コンソールを使用して接続ステータスを確認するには、AWS IoT コンソールの [[https://console.aws.amazon.com/iot/home#/wireless/gateways](https://console.aws.amazon.com/iot/home#/wireless/gateways)] (ゲートウェイ) ページに移動し、追加したゲートウェイを選択します。ゲートウェイの詳細ページの [**LoRaWAN specific details**] (LoRaWAN 固有の詳細) セクションに、接続ステータスと最後にアップリンクが受信された日時が表示されます。

## API を使用してゲートウェイ接続ステータスを確認する
<a name="lorawan-connection-status-api"></a>

API を使用して接続ステータスを確認するには、`GetWirelessGatewayStatistics` API を使用します。この API にはリクエストボディがなく、ゲートウェイが接続されているかどうか、および最後のアップリンクがいつ受信されたかを示すレスポンス本文のみが含まれます。

```
HTTP/1.1 200
Content-type: application/json

{
  “ConnectionStatus”: “Connected”,
  “LastUplinkReceivedAt”: “2021-03-24T23:13:08.476015749Z”,
  “WirelessGatewayId”: “30cbdcf3-86de-4291-bfab-5bfa2b12bad5"
}
```

# デバイスを AWS IoT Core for LoRaWAN にオンボードする
<a name="lorawan-onboard-end-devices"></a>

ゲートウェイをAWS IoT Core for LoRaWAN にオンボードして接続ステータスを確認したら、ワイヤレス機器をオンボードできます。ゲートウェイをオンボードする方法については、「[ゲートウェイを AWS IoT Core for LoRaWAN にオンボードする](lorawan-onboard-gateways.md)」を参照してください。

LoRaWAN デバイスは、LoRaWAN プロトコルを使用して、クラウドホスト型アプリケーションとデータを交換します。AWS IoT Core for LoRaWAN は、LoRa Alliance によって標準化された 1.0.x または 1.1 LoRaWAN 仕様に準拠したデバイスをサポートしています。

LoRaWAN デバイスは、通常、1 つ以上のセンサーとアクターで構成されます。デバイスは、LoRaWAN ゲートウェイを介してアップリンクテレメトリデータを AWS IoT Core for LoRaWAN に送信します。クラウドでホストされたアプリケーションは、LoRaWAN ゲートウェイを介して LoRaWAN デバイスにダウンリンクコマンドを送信することで、センサーを制御できます。

**ワイヤレスデバイスをオンボードする前に**  
ワイヤレスデバイスを AWS IoT Core for LoRaWAN にオンボードする前に、以下の情報を事前に用意しておく必要があります。
+ 

**LoRaWAN の仕様と無線機器の設定**  
各デバイスに固有の設定パラメータの入力準備を事前にしておくと、コンソールへのデータの入力がよりスムーズになります。入力する必要がある特定のパラメータは、デバイスが使用する LoRaWAN 仕様によって異なります。仕様と設定パラメータの完全なリストについては、各デバイスに関するドキュメントを参照してください。
+ 

**デバイス名と説明 (オプション)**  
これらのオプションフィールドの情報は、ワイヤレスシステムの要素をどのように編成および説明するかによって決まります。リソースの命名と説明の詳細については、[AWS IoT Wireless リソースについて説明する](iotwireless-describe-resources.md) を参照してください。
+ 

**デバイスおよびサービスプロファイル**  
多くのデバイスで共有され、AWS IoT Core for LoRaWAN にデバイスおよびサービスプロファイルとして保存できる一部のワイヤレスデバイス設定パラメータを用意しておきます。設定パラメータは、デバイスのドキュメントまたはデバイス自体に記載されています。デバイスを追加する前に、デバイスの設定パラメータに一致するデバイスプロファイルを特定するか、必要に応じて作成します。詳細については、「[プロファイルを AWS IoT Core for LoRaWAN に追加する](lorawan-define-profiles.md)」を参照してください。
+ 

**AWS IoT Core for LoRaWAN 送信先**  
各デバイスは、メッセージを処理して AWS IoT やその他のサービスに送信する送信先に割り当てる必要があります。デバイスメッセージを処理および送信する AWS IoT ルールは、デバイスのメッセージ形式に固有です。デバイスからのメッセージを処理して正しいサービスに送信するには、デバイスのメッセージで使用するために作成する送信先を特定し、デバイスに割り当てます。

**Topics**
+ [ワイヤレスデバイスを AWS IoT Core for LoRaWAN に追加する](lorawan-end-devices-add.md)
+ [プロファイルを AWS IoT Core for LoRaWAN に追加する](lorawan-define-profiles.md)
+ [AWS IoT Core for LoRaWAN に送信先を追加する](lorawan-create-destinations.md)
+ [LoRaWAN デバイスメッセージを処理するルールを作成する](lorawan-destination-rules.md)
+ [LoRaWAN デバイスを接続し、接続ステータスを確認する](lorawan-device-connection-status.md)

# ワイヤレスデバイスを AWS IoT Core for LoRaWAN に追加する
<a name="lorawan-end-devices-add"></a>

初めてワイヤレスデバイスを追加する場合は、コンソールを使用することをお勧めします。AWS IoT コンソールの [AWS IoT Core for LoRaWAN](https://console.aws.amazon.com/iot/home#/wireless/landing) の **[Intro]** (イントロダクション) ページに移動し、**[Get started]** (開始方法) を選択して、**[Add device]** (デバイスを追加) を選択します。デバイスを既に追加している場合は、[**View device**] (デバイスの表示) を選択して、追加したゲートウェイを表示します。デバイスを追加する場合は、[**Add device**] (デバイスの追加) を選択します。

または、AWS IoT コンソールの [[Devices](https://console.aws.amazon.com/iot/home#/wireless/devices)] (デバイス) ページからワイヤレスデバイスを追加することもできます。

## コンソールを使用してワイヤレスデバイスの仕様を AWS IoT Core for LoRaWAN に追加する
<a name="lorawan-end-device-spec-console"></a>

アクティベーション方法と LoRaWAN のバージョンに基づいて、**ワイヤレスデバイスの仕様**を選択します。選択すると、AWS が所有して管理するキーによってデータが暗号化されます。

**OTAA および ABP アクティベーションモード**  
LoRaWAN デバイスがアップリンクデータを送信する前に、*アクティベーション*または*参加手順*と呼ばれるプロセスを完了する必要があります。デバイスをアクティベートするには、OTAA (無線通信経由アクティベーション) または ABP (パーソナライゼーションによるアクティベーション) のいずれかを使用できます。

ABP は参加手順を必要とせず、静的キーを使用します。OTAA を使用すると、LoRaWAN デバイスが参加要求を送信し、ネットワークサーバーが要求を許可することができます。アクティベーションごとに新しいセッションキーが生成されて安全性が高まるため、デバイスのアクティベーションには OTAA を使用することをお勧めします。

**LoRaWAN バージョン**  
OTAA を使用すると、LoRaWAN デバイスとクラウドホスト型アプリケーションがルートキーを共有します。これらのルートキーは、バージョン v1.0.x と v1.1 のどちらを使用しているかによって異なります。v1.0.x には **AppKey** (アプリケーションキー) の 1 つのルートキーしかありません。v1.1 には **AppKey** (アプリケーションキー) と **NwkKey** (ネットワークキー) の 2 つのルートキーがあります。セッションキーは、各アクティベーションのルートキーに基づいて生成されます。**NwkKey** と **AppKey** はいずれも、ワイヤレスベンダーが提供した 32 桁の 16 進数値です。

**ワイヤレスデバイスの EUI**  
**ワイヤレスデバイスの仕様**を選択すると、コンソールに表示されているワイヤレスデバイスの EUI (拡張一意識別子) パラメータが表示されます。この情報は、デバイスまたはワイヤレスベンダーのドキュメントに記載されています。
+ **DevEUI**: お使いのデバイスに固有の 16 桁の 16 進数値で、デバイスのラベルまたはドキュメントに記載されています。
+ **AppEUI**: 参加サーバーに固有の 16 桁の 16 進数値で、デバイスのドキュメントに記載されています。LoRaWAN バージョン v1.1 では、**AppEUI** は **JoinEUI** と呼ばれます。

一意識別子、セッションキー、およびルートキーの詳細については、[LoRa Alliance](https://lora-alliance.org/about-lorawan) ドキュメントを参照してください。

## API を使用してワイヤレスデバイスの仕様を AWS IoT Core for LoRaWAN に追加する
<a name="lorawan-end-device-spec-api"></a>

API を使用してワイヤレスデバイスを追加する場合は、ワイヤレスデバイスを作成する前に、まずデバイスプロファイルとサービスプロファイルを作成する必要があります。ワイヤレスデバイスを作成するときは、デバイスプロファイル ID とサービスプロファイル ID を使用します。API を使用してこれらのプロファイルを作成する方法については、「[API を使用してデバイスプロファイルを追加する](lorawan-define-profiles.md#lorawan-device-profile-api)」を参照してください。

以下に、サービスプロファイルの追加、更新、削除に関連するタスクを実行する API アクションを示します。

**サービスプロファイルに対する AWS IoT Wireless API アクション**
+ [CreateWirelessDevice](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateWirelessDevice.html)
+ [GetWirelessDevice](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_GetWirelessDevice.html)
+ [ListWirelessDevices](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_ListWirelessDevices.html)
+ [ UpdateWirelessDevice](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_UpdateWirelessDevice.html)
+ [DeleteWirelessDevice](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_DeleteWirelessDevice.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-wireless-device](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/create-device-profile.html) コマンドによってワイヤレスデバイスを作成できます。次の例では、input.json ファイルを使用してパラメータを入力することにより、ワイヤレスデバイスを作成します。

**注記**  
この手順は、ここに示す CLI コマンドに対応する AWS API のメソッドを使用することにより、API で行うこともできます。

**input.json の内容**

```
{
    "Description": "My LoRaWAN wireless device"
    "DestinationName": "IoTWirelessDestination"
    "LoRaWAN": {
        "DeviceProfileId": "ab0c23d3-b001-45ef-6a01-2bc3de4f5333",
        "ServiceProfileId": "fe98dc76-cd12-001e-2d34-5550432da100",
        "OtaaV1_1": {
            "AppKey": "3f4ca100e2fc675ea123f4eb12c4a012",
            "JoinEui": "b4c231a359bc2e3d",
            "NwkKey": "01c3f004a2d6efffe32c4eda14bcd2b4"
        },
        "DevEui": "ac12efc654d23fc2"
    },
    "Name": "SampleIoTWirelessThing"
    "Type": LoRaWAN
}
```

`create-wireless-device` コマンドへの入力としてこのファイルを指定できます。

```
aws iotwireless create-wireless-device \
    --cli-input-json file://input.json
```

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

# プロファイルを AWS IoT Core for LoRaWAN に追加する
<a name="lorawan-define-profiles"></a>

デバイスおよびサービスプロファイルを定義して、一般的なデバイス設定を記述できます。これらのプロファイルは、デバイスによって共有される設定パラメータを記述し、これらのデバイスを簡単に追加できるようにします。AWS IoT Core for LoRaWAN では、デバイスプロファイルとサービスプロファイルがサポートされています。

 これらのプロファイルに入力する設定パラメータと値は、デバイスの製造元によって提供されます。

## デバイスプロファイルを追加する
<a name="lorawan-device-profiles"></a>

デバイスプロファイルは、ネットワークサーバーが LoRaWAN 無線アクセスサービスを設定するために使用するデバイス機能とブートパラメータを定義します。これには、LoRa 周波数帯域、LoRa 地域別パラメータバージョン、デバイスの MAC バージョンなどのパラメータの選択が含まれます。さまざまな周波数帯域については、[ゲートウェイとデバイス接続用の LoRa 周波数帯域の選択を検討する](lorawan-rfregion-permissions.md#lorawan-frequency-bands) を参照してください。

### コンソールを使用してデバイスプロファイルを追加する
<a name="lorawan-device-profile-console"></a>

コンソールを使用してワイヤレスデバイスを追加する場合は、「[コンソールを使用してワイヤレスデバイスの仕様を AWS IoT Core for LoRaWAN に追加する](lorawan-end-devices-add.md#lorawan-end-device-spec-console)」で説明されているように、ワイヤレスデバイスの仕様を追加した後、デバイスプロファイルを追加できます。または、AWS IoT コンソールの **LoRaWAN** タブの [[Profiles](https://console.aws.amazon.com/iot/home#/wireless/profiles)] (プロファイル) ページからワイヤレスデバイスを追加することもできます。

デフォルトのデバイスプロファイルから選択するか、新しいデバイスプロファイルを作成できます。デフォルトのデバイスプロファイルを使用することをお勧めします。アプリケーションでデバイスプロファイルの作成が必要な場合は、**デバイスプロファイル名**を指定し、[**Frequency band (RfRegion)**] (周波数帯 (RfRegion)) を設定します。デバイスのマニュアルで特に指定されていない限り、その他の設定はデフォルト値のままにします。

### API を使用してデバイスプロファイルを追加する
<a name="lorawan-device-profile-api"></a>

API を使用してワイヤレスデバイスを追加する場合は、ワイヤレスデバイスを作成する前にデバイスプロファイルを作成する必要があります。

以下に、サービスプロファイルの追加、更新、削除に関連するタスクを実行する API アクションを示します。

**サービスプロファイルに対する AWS IoT Wireless API アクション**
+ [CreateDeviceProfile](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateDeviceProfile.html)
+ [GetDeviceProfile](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_GetDeviceProfile.html)
+ [ListDeviceProfiles](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_ListDeviceProfiles.html)
+ [UpdateDeviceProfile](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_UpdateDeviceProfile.html)
+ [DeleteDeviceProfile](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_DeleteDeviceProfile.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-device-profile](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/create-device-profile.html) コマンドによってデバイスプロファイルを作成できます。次の例では、デバイスプロファイルを作成します。

```
aws iotwireless create-device-profile
```

このコマンドを実行すると、ワイヤレスデバイスの作成時に使用できる ID を持つデバイスプロファイルが自動的に作成されます。これで、次の API を使用してサービスプロファイルを作成し、デバイスプロファイルとサービスプロファイルを使用してワイヤレスデバイスを作成できるようになりました。

```
{
    "Arn": "arn:aws:iotwireless:us-east-1:123456789012:DeviceProfile/12345678-a1b2-3c45-67d8-e90fa1b2c34d",
    "Id": "12345678-a1b2-3c45-67d8-e90fa1b2c34d"
}
```

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

## サービスプロファイルを追加する
<a name="lorawan-service-profiles"></a>

サービスプロファイルは、デバイスがアプリケーションサーバーと通信するために必要な通信パラメータを記述します。

### コンソールを使用してサービスプロファイルを追加する
<a name="lorawan-service-profile-console"></a>

コンソールを使用してワイヤレスデバイスを追加する場合は、「[コンソールを使用してワイヤレスデバイスの仕様を AWS IoT Core for LoRaWAN に追加する](lorawan-end-devices-add.md#lorawan-end-device-spec-console)」で説明されているように、デバイスプロファイルを追加した後、サービスプロファイルを追加できます。または、AWS IoT コンソールの **LoRaWAN** タブの [[Profiles](https://console.aws.amazon.com/iot/home#/wireless/profiles)] (プロファイル) ページからワイヤレスデバイスを追加することもできます。

**AddGWMetaData** 設定は有効のままにしておくことをお勧めします。有効にすると、データ転送の RSSI や SNR など、ペイロードごとに追加のゲートウェイメタデータを受信できるようになります。

### API を使用してサービスプロファイルを追加する
<a name="lorawan-service-profile-api"></a>

API を使用してワイヤレスデバイスを追加する場合は、ワイヤレスデバイスを作成する前にサービスプロファイルを作成する必要があります。

以下に、サービスプロファイルの追加、更新、削除に関連するタスクを実行する API アクションを示します。

**サービスプロファイルに対する AWS IoT Wireless API アクション**
+ [CreateServiceProfile](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateServiceProfile.html)
+ [GetServiceProfile](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_GetServiceProfile.html)
+ [ListServiceProfiles](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_ListServiceProfiles.html)
+ [UpdateServiceProfile](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_UpdateServiceProfile.html)
+ [DeleteServiceProfile](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_DeleteServiceProfile.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-service-profile](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/create-service-profile.html) コマンドによってサービスプロファイルを作成できます。次の例では、サービスプロファイルを作成します。

```
aws iotwireless create-service-profile
```

このコマンドを実行すると、ワイヤレスデバイスの作成時に使用できる ID を持つサービスプロファイルが自動的に作成されます。これで、デバイスプロファイルとサービスプロファイルを使用して、ワイヤレスデバイスを作成できるようになりました。

```
{
    "Arn": "arn:aws:iotwireless:us-east-1:123456789012:ServiceProfile/12345678-a1b2-3c45-67d8-e90fa1b2c34d",
    "Id": "12345678-a1b2-3c45-67d8-e90fa1b2c34d"
}
```

# 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 の送信先を設定するときに、ロールのリストにそのロールが表示されます。

# LoRaWAN デバイスメッセージを処理するルールを作成する
<a name="lorawan-destination-rules"></a>

AWS IoT ルールは、デバイスメッセージを他のサービスに送信します。AWS IoT は、LoRaWAN デバイスから受信したバイナリメッセージを処理して、メッセージを他の形式に変換して、他のサービスで使用しやすくすることもできます。

[AWS IoT Core for LoRaWAN の送信先](lorawan-create-destinations.md)は、デバイスのメッセージデータを処理して他のサービスに送信するルールにワイヤレスデバイスを関連付けます。このルールは、AWS IoT Core for LoRaWAN がデバイスのデータを受信するとすぐに、そのデータに対して機能します。[AWS IoT Core for LoRaWAN の送信先](lorawan-create-destinations.md)は、メッセージが同じデータ形式で、データを同じサービスに送信するすべてのデバイスで共有できます。

## AWS IoT ルールがデバイスメッセージを処理する方法
<a name="how-rules-process-message"></a>

AWS IoT ルールがデバイスのメッセージデータを処理する方法は、データを受信するサービス、デバイスのメッセージデータの形式、およびサービスが必要とするデータ形式によって異なります。通常、このルールは AWS Lambda 関数を呼び出して、デバイスのメッセージデータをサービスが必要とする形式に変換し、その結果をサービスに送信します。

次の図は、メッセージデータがワイヤレスデバイスから AWS のサービスに移動するときに、メッセージデータがどのように保護および処理されるかを示しています。

![\[AWS IoT Core for LoRaWAN データがワイヤレスデバイスから AWS IoT およびその他のサービスにどのように渡されるかを示す画像。\]](http://docs.aws.amazon.com/ja_jp/iot-wireless/latest/developerguide/images/iot-lorawan-data-flow.png)


1. LoRaWAN ワイヤレスデバイスは、バイナリメッセージを送信する前に AES128 CTR モードを使用して暗号化します。

1. AWS IoT Core for LoRaWAN は、バイナリメッセージを復号し、復号されたバイナリメッセージペイロードを base64 文字列としてエンコードします。

1. 結果として生じる base64 でエンコードされたメッセージは、メッセージペイロード (JSON ドキュメントとしてフォーマットされていない) として、デバイスに割り当てられた送信先に記載されている AWS IoT ルールに送信されます。

1. AWS IoT ルールは、ルールの設定に記載されているサービスにメッセージデータを送信します。

ワイヤレスデバイスから受信した、暗号化されたバイナリペイロードは、AWS IoT Core for LoRaWAN によって変更および解釈されません。復号されたバイナリメッセージペイロードは、base64 文字列としてのみエンコードされます。サービスがバイナリメッセージペイロードのデータ要素にアクセスするためには、ルールによって呼び出される関数によってデータ要素をペイロードから解析する必要があります。base64 でエンコードされたメッセージペイロードは ASCII 文字列であるため、後で解析するために保存することができます。

## LoRaWAN デバイスのルールを作成する
<a name="create-lorawan-rules"></a>

AWS IoT Core for LoRaWAN は、メッセージブローカーを使用することなく、AWS IoT ルールを使用して、デバイスメッセージを他の AWS のサービスに直接安全に送信します。取り込みパスからメッセージブローカーを削除することで、コストを削減し、データフローを最適化します。

デバイスメッセージを他の AWS のサービスに送信するための AWS IoT Core for LoRaWAN ルールには、AWS IoT Core for LoRaWAN 送信先と、その送信先に割り当てられた AWS IoT ルールが必要です。AWS IoT ルールには、SQL クエリステートメントと少なくとも 1 つのルールアクションが含まれている必要があります。

通常、AWS IoT ルールクエリステートメントは、次のもので構成されます。
+ メッセージペイロードからデータを選択してフォーマットする SQL SELECT 句
+ 使用するメッセージを識別するトピックフィルター (ルールクエリステートメントの FROM オブジェクト)
+ アクションを実行する条件を指定するオプションの条件文 (SQL WHERE 句)

ルールクエリステートメントの例を以下に示します。

```
SELECT temperature FROM iot/topic' WHERE temperature > 50
```

LoRaWAN デバイスからのペイロードを処理するために AWS IoT ルールを構築する場合、ルールクエリオブジェクトの一部として FROM 句を指定する必要はありません。ルールクエリステートメントには SQL SELECT 句が含まれている必要があり、オプションで WHERE 句を含めることができます。クエリステートメントで FROM 句が使用されている場合は、無視されます。

LoRaWAN デバイスからペイロードを処理できるルールクエリステートメントの例を次に示します。

```
SELECT WirelessDeviceId, WirelessMetadata.LoRaWAN.FPort as FPort,
       WirelessMetadata.LoRaWAN.DevEui as DevEui, 
       PayloadData
```

この例では、`PayloadData` は、LoRaWAN デバイスによって送信される base64 でエンコードされたバイナリペイロードです。

受信ペイロードのバイナリデコードを実行し、JSON などの別の形式に変換できるルールクエリステートメントの例を次に示します。

```
SELECT WirelessDeviceId, WirelessMetadata.LoRaWAN.FPort as FPort,
       WirelessMetadata.LoRaWAN.DevEui as DevEui, 
       aws_lambda("arn:aws:lambda:<region>:<account>:function:<name>",                                       
                  {                                      
                   "PayloadData":PayloadData,                                       
                   "Fport": WirelessMetadata.LoRaWAN.FPort   
                  }) as decodingoutput
```

SELECT AND WHERE 句の使用の詳細については、「[https://docs.aws.amazon.com/iot/latest/developerguide/iot-sql-reference.html](https://docs.aws.amazon.com/iot/latest/developerguide/iot-sql-reference.html)」を参照してください。

AWS IoT ルールとその作成方法および使用方法については、[https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html) と [https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules-tutorial.html](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules-tutorial.html) を参照してください。

AWS IoT Core for LoRaWAN 送信先の作成と使用については、「[AWS IoT Core for LoRaWAN に送信先を追加する](lorawan-create-destinations.md)」を参照してください。

ルールでのバイナリメッセージペイロードの使用については、[https://docs.aws.amazon.com/iot/latest/developerguide/binary-payloads.html](https://docs.aws.amazon.com/iot/latest/developerguide/binary-payloads.html) を参照してください。

送信中のメッセージペイロードを保護するために使用されるデータセキュリティと暗号化の詳細については、[AWS IoT Wireless でのデータ保護](data-protection.md) を参照してください。

IoT ルールのバイナリデコードと実装例を示すリファレンスアーキテクチャについては、[GitHub の 「AWS IoT Core for LoRaWAN Solution Samples」](https://github.com/aws-samples/aws-iot-core-lorawan/tree/main/transform_binary_payload) を参照してください。

# LoRaWAN デバイスを接続し、接続ステータスを確認する
<a name="lorawan-device-connection-status"></a>

デバイスの接続ステータスを確認する前に、デバイスが追加済みで、AWS IoT Core for LoRaWAN に接続済みである必要があります。デバイスの追加方法については、「[ワイヤレスデバイスを AWS IoT Core for LoRaWAN に追加する](lorawan-end-devices-add.md)」を参照してください。

デバイスを追加したら、デバイスのユーザーマニュアルを参照して、LoRaWAN デバイスからアップリンクメッセージの送信を開始する方法をご確認ください。

## コンソールを使用してデバイスの接続ステータスを確認する
<a name="lorawan-device-connection-status-console"></a>

コンソールを使用して接続ステータスを確認するには、AWS IoT コンソールの [[https://console.aws.amazon.com/iot/home#/wireless/devices](https://console.aws.amazon.com/iot/home#/wireless/devices)] (デバイス) ページに移動し、追加したデバイスを選択します。ワイヤレスデバイスの詳細ページの [**Details**] (詳細) セクションに、最後にアップリンクが受信された日時が表示されます。

## API を使用してデバイスの接続ステータスを確認する
<a name="lorawan-device-connection-status-api"></a>

API を使用して接続ステータスを確認するには、`GetWirelessDeviceStatistics` API を使用します。この API にはリクエストボディがなく、最後のアップリンクがいつ受信されたかを示すレスポンス本文のみが含まれます。

```
HTTP/1.1 200
Content-type: application/json

{  
  “LastUplinkReceivedAt”: “2021-03-24T23:13:08.476015749Z”,
  "LoRaWAN": {
        "DataRate": 5,
        "DevEui": "647fda0000006420",
        "Frequency": 868100000
        "Gateways": [ 
         { 
            "GatewayEui": "c0ee40ffff29df10",
            "Rssi": -67,
            "Snr": 9.75
         }
      ],
  “WirelessDeviceId”: “30cbdcf3-86de-4291-bfab-5bfa2b12bad5"
}
```

## 次のステップ
<a name="lorawan-device-connection-next-steps"></a>

これで、デバイスを接続して接続ステータスを確認できたので、AWS IoT コンソールの [**Test**] (テスト) ページの [MQTT テストクライアント](https://console.aws.amazon.com/iot/home#/test)を使用して、デバイスから受信したアップリンクメタデータの形式を確認できます。詳細については、「[LoRaWAN デバイスから送信されたアップリンクメッセージの形式の表示](lorawan-uplink-metadata-format.md)」を参照してください。