クイック スタート:Azure CLI で IoT Hub Device Provisioning Service をセットアップする

Azure CLI は、コマンドラインやスクリプトで Azure リソースを作成および管理するために使用します。 このクイックスタートでは、Azure CLI を使用して IoT ハブと IoT Hub Device Provisioning Service インスタンスを作成し、2 つのサービスをリンクする方法について詳しく説明します。

Azure サブスクリプションをお持ちでない場合は、開始する前に Azure 無料アカウントを作成してください。

重要

このクイックスタートで作成する IoT ハブとプロビジョニング サービスは、どちらも DNS エンドポイントとして公開されます。 これらのリソースに使用される名前を変更する場合は、機密性の高い情報を含めないようにしてください。

前提条件

  • Azure Cloud Shell で Bash 環境を使用します。 詳細については、「Azure Cloud Shell の Bash のクイックスタート」を参照してください。

  • CLI リファレンス コマンドをローカルで実行する場合、Azure CLI をインストールします。 Windows または macOS で実行している場合は、Docker コンテナーで Azure CLI を実行することを検討してください。 詳細については、「Docker コンテナーで Azure CLI を実行する方法」を参照してください。

    • ローカル インストールを使用する場合は、az login コマンドを使用して Azure CLI にサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、Azure CLI でのサインインに関するページを参照してください。

    • 初回使用時にインストールを求められたら、Azure CLI 拡張機能をインストールします。 拡張機能の詳細については、Azure CLI で拡張機能を使用する方法に関するページを参照してください。

    • az version を実行し、インストールされているバージョンおよび依存ライブラリを検索します。 最新バージョンにアップグレードするには、az upgrade を実行します。

リソース グループを作成する

az group create コマンドを使用して、リソース グループを作成します。 Azure リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。

次の例では、my-sample-resource-group という名前のリソース グループを場所 westus に作成します。

az group create --name my-sample-resource-group --location westus

ヒント

この例では、米国西部にリソース グループが作成されます。 az account list-locations -o table コマンドを実行すると、利用できる場所を一覧表示できます。

IoT Hub の作成

az iot hub create コマンドを使用して、IoT Hub を作成します。

次の例では、my-sample-hub という名前の IoT ハブを場所 westus に作成します。 IoT ハブ名は Azure でグローバルに一意である必要があるため、一意のプレフィックスまたはサフィックスを例の名前に追加するか、まったく新しい名前を選択してください。 名前は、IoT ハブの適切な名前付け規則に従う必要があります。長さは 3 から 50 文字にする必要があるほか、使用できるのは大文字または小文字の英数字とハイフン ("-") のみです。

az iot hub create --name my-sample-hub --resource-group my-sample-resource-group --location westus

Device Provisioning Service インスタンスを作成する

az iot dps create コマンドを使用して、Device Provisioning Service インスタンスを作成します。

次の例では、my-sample-dps という名前の Device Provisioning Service インスタンスを westus の場所に作成します。 自身のインスタンス対してグローバルに一意の名前を選択する必要もあります。 名前は、IoT Hub Device Provisioning Service の適切な名前付け規則に従う必要があります。長さは 3 から 64 文字にする必要があるほか、使用できるのは大文字または小文字の英数字とハイフン ("-") のみです。

az iot dps create --name my-sample-dps --resource-group my-sample-resource-group --location westus

ヒント

この例では、米国西部にプロビジョニング サービスが作成されます。 使用可能な場所の一覧を表示するには、az provider show --namespace Microsoft.Devices --query "resourceTypes[?resourceType=='ProvisioningServices'].locations | [0]" --out table コマンドを実行するか、Azure の状態ページに移動して "Device Provisioning Service" を検索します。 コマンドでは、場所は 1 単語または複数単語の形式で指定できます。たとえば、westus、West US、WEST US などです。この値で、大文字と小文字は区別されません。 複数単語形式で場所を指定する場合は、値を引用符で囲みます。たとえば、--location "West US" のようにします。

回復性と信頼性を確保するために、Availability Zones をサポートするリージョンのいずれかにデプロイすることをお勧めします。

IoT ハブの接続文字列の取得

IoT ハブを Device Provisioning サービスとリンクするには、IoT ハブの接続文字列が必要です。 az iot hub connection-string show コマンドを使用して接続文字列を取得し、その出力を使用して、2 つのリソースをリンクするときに後で使用される変数を設定します。

次の例では、hubConnectionString 変数を、ハブの iothubowner ポリシー (--policy-name パラメーターを使用すると、別のポリシーを指定できます) の主キーの接続文字列の値に設定します。 my-sample-hub を、前に選択した一意の IoT ハブ名に交換します。 このコマンドでは、Azure CLI の queryoutput オプションを使用して、コマンド出力から接続文字列を抽出します。

hubConnectionString=$(az iot hub connection-string show --name my-sample-hub --key primary --query connectionString -o tsv)

接続文字列を表示するには、echo コマンドを使用します。

echo $hubConnectionString

Note

この 2 つのコマンドは、Bash で実行されているホストに対して有効です。

ローカルの Windows (CMD) シェルまたは PowerShell ホストを使用している場合は、その環境での正しい構文を使用するようにコマンドを変更してください。

Azure Cloud Shell を使用している場合は、シェル ウィンドウの左側にある環境ドロップダウンで [Bash] が選択されていることを確認します。

IoT ハブとプロビジョニング サービスをリンクするには、az iot dps linked-hub create コマンドを使用します。

次の例では、場所 westusmy-sample-hub という名前の IoT ハブと、my-sample-dps という名前の Device Provisioning Service をリンクします。 これらの名前を、前に選択した一意の IoT ハブ名および Device Provisioning Service 名に交換します。 このコマンドは、前の手順で hubConnectionString 変数に格納された IoT ハブの接続文字列を使用します。

az iot dps linked-hub create --dps-name my-sample-dps --resource-group my-sample-resource-group --connection-string $hubConnectionString --location westus

コマンドが完了するまでに数分かかる場合があります。

プロビジョニング サービスの確認

az iot dps show コマンドを使用して、プロビジョニング サービスの詳細を取得します。

次の例では、my-sample-dps という名前のプロビジョニング サービスの詳細を取得します。 この名前を、独自の Device Provisioning Service 名に交換します。

az iot dps show --name my-sample-dps

リンクされた IoT ハブは、properties.iotHubs コレクションに表示されます。

プロビジョニング サービスの確認

リソースをクリーンアップする

このコレクションの他のクイックスタートは、このクイックスタートに基づいています。 引き続きクイックスタートまたはチュートリアルの作業を行う場合は、このクイックスタートで作成したリソースをクリーンアップしないでください。 作業を続けない場合は、以下のコマンドを使用して、プロビジョニング サービス、IoT ハブ、またはリソース グループとそのすべてのリソースを削除できます。 以下のコマンドに含まれるリソースの名前を、独自のリソースの名前に置き換えてください。

プロビジョニング サービスを削除するには、az iot dps delete コマンドを実行します。

az iot dps delete --name my-sample-dps --resource-group my-sample-resource-group

IoT ハブを削除するには、az iot hub delete コマンドを実行します。

az iot hub delete --name my-sample-hub --resource-group my-sample-resource-group

リソース グループとそのすべてのリソースを削除するには、az group delete コマンドを実行します。

az group delete --name my-sample-resource-group

次の手順

このクイックスタートでは、IoT ハブと Device Provisioning Service インスタンスをデプロイし、この 2 つのリソースをリンクしました。 この設定を使用してデバイスをプロビジョニングする方法については、デバイスの作成に関するクイックスタートに進んでください。