:ここ
"outputs": {
"clusterProperties": {
"value": "[reference(parameters('clusterName'))]",
"type": "object"
},
"iotHubHostName": {
"type": "string",
"value": "[reference(variables('iotHubResourceId')).hostName]"
},
"iotHubConnectionString": {
"type": "string",
"value": "[concat('HostName=', reference(variables('iotHubResourceId')).hostName, ';SharedAccessKeyName=', variables('iotHubKeyName'), ';SharedAccessKey=', listkeys(variables('iotHubKeyResource'), variables('iotHubVersion')).primaryKey)]"
}
}
そして、私が使用する変数は、 IoT Hubを使用して、次のような接続文字列を作成します。
"EventHubConnectionString": "[concat('Endpoint=',reference(resourceId('Microsoft.Devices/IoTHubs',parameters('iothub_name'))).eventHubEndpoints.events.endpoint,';SharedAccessKeyName=iothubowner;SharedAccessKey=',listKeys(resourceId('Microsoft.Devices/IotHubs',parameters('iothub_name')),variables('devices_provider_apiversion')).value[0].primaryKey)]"
EventHub互換のエンドポイントを取得するための重要なビット
ました:。RESOURCEID( 'Microsoft.Devices/IoTHubs'、パラメータ( 'iothub_name')))eventHubEndpoints.events.endpointの外にリッピングた
私ARMのテンプレートを動作させる。明確にするため、ここでは上記の変数/パラメータに関するいくつかの詳細です:
- 変数(「devices_provider_apiversion」)は、「2016年2月3日」
- パラメータ(「iothub_name」)であることの名前です。同じARMテンプレートがテンプレートの他の場所でプロビジョニングしているIoTハブ
- "listKeys"の出力はキーオブジェクトの配列を返します。ここでは最初の項目が "iothubowner"でした。 (...私はこの問題をよりよく説明するアプローチが好きです:)
ARMテンプレートの実行中にリソースから読み込むために利用できるものを知るのに役立つトリックは、 。あなたはまたの間で(出力にエンドポイントをこの方法を使用することができます
"outputs": {
"iotHub": {
"value": "[reference(resourceId('Microsoft.Devices/IoTHubs',parameters('iothub_name')))]",
"type": "object"
}
}
:出力全体のリソース、その後、私が興味を持って財産を見つけるここではどのようにI出力ARMテンプレートを実行しているからなIoTハブのすべての詳細です他のもの)を他のテンプレートへの入力として使用することができます。
Azure IoTHubをARMテンプレートで作成しています。したがって、 'variables( 'iotHubResourceId')'の代わりに 'parameters( 'iotHubName')'を使うべきです。なぜなら、 "resource id"はテンプレートの外側のリソースに使うべきですが、 "resource name"は内部のリソーステンプレート。 [この記事](https://azure.microsoft.com/en-us/documentation/articles/resource-group-template-functions/#_reference)をご覧ください。 –
イベントハブを必要とする、後で展開するものは何ですか?互換性のある接続情報?たとえば、Azure Stream AnalyticsをIoTハブに接続する場合は、Event Hubと互換性のある接続情報を使用せずに行うことができます。 –
@DominicBettsのお返事ありがとうございます。エンドポイントにデータを送信するService Fabricアクタがあります。 IoTハブに接続する別の可能性があるかどうかは確かに確認します。それは自分自身で接続文字列を生成することは可能ですか? 'sb://iothubname-xxxxx-xxxxxxxxxx.servicebus.windows。net/'数字がどのように生成されるか(x'es)はわかりません。 – ErBeEn