AzureIoTEdge@2 - Azure IoT Edge v2 タスク
このタスクを使用して、Azure IoT Edgeに迅速かつ効率的にイメージをビルドしてデプロイします。
このタスクでは、カスタム変数がサポートされています。 パイプラインで変数を使用する方法に慣れていない場合は、「 変数を定義する」を参照してください。
注意
このタスクでは、ワークフロー ID フェデレーションを使用した Azure Resource Manager認証はサポートされていません。
構文
# Azure IoT Edge v2
# Build and deploy an Azure IoT Edge image.
- task: AzureIoTEdge@2
inputs:
action: 'Build module images' # 'Build module images' | 'Push module images' | 'Generate deployment manifest' | 'Deploy to IoT Edge devices'. Required. Action. Default: Build module images.
#deploymentFilePath: '$(System.DefaultWorkingDirectory)/config/deployment.json' # string. Required when action == Deploy to IoT Edge devices. Deployment file. Default: $(System.DefaultWorkingDirectory)/config/deployment.json.
#azureSubscription: # string. Alias: connectedServiceNameARM. Required when action == Deploy to IoT Edge devices. Azure subscription contains IoT Hub.
#iothubname: # string. Required when action == Deploy to IoT Edge devices. IoT Hub name.
#deviceOption: # 'Single Device' | 'Multiple Devices'. Required when action == Deploy to IoT Edge devices. Choose single/multiple device.
#deviceId: # string. Required when deviceOption == Single Device. IoT Edge device ID.
#targetcondition: # string. Required when deviceOption == Multiple Devices. IoT Edge device target condition.
#containerregistrytype: 'Azure Container Registry' # 'Azure Container Registry' | 'Generic Container Registry'. Required when action = Push module images. Container registry type. Default: Azure Container Registry.
#dockerRegistryConnection: # string. Alias: dockerRegistryEndpoint. Required when containerregistrytype = Generic Container Registry. Docker Registry Connection.
#azureSubscriptionEndpoint: # string. Optional. Use when containerregistrytype = Azure Container Registry. Azure subscription.
#azureContainerRegistry: # string. Required when containerregistrytype = Azure Container Registry. Azure Container Registry.
#templateFilePath: 'deployment.template.json' # string. Required when action = Build module images || action = Push module images || action = Generate deployment manifest. .template.json file. Default: deployment.template.json.
#defaultPlatform: 'amd64' # 'amd64' | 'windows-amd64' | 'arm32v7' | 'arm64v8'. Required when action = Build module images || action = Push module images || action = Generate deployment manifest. Default platform. Default: amd64.
#fillRegistryCredential: 'true' # 'true' | 'false'. Required when action = Push module images. Add registry credential to deployment manifest. Default: true.
#deploymentManifestOutputPath: '$(System.DefaultWorkingDirectory)/config/deployment.json' # string. Required when action == Generate deployment manifest. Output path. Default: $(System.DefaultWorkingDirectory)/config/deployment.json.
#validateGeneratedDeploymentManifest: 'false' # 'true' | 'false'. Required when action = Generate deployment manifest. Validate the schema of generated deployment manifest. Default: false.
# Advanced
#deploymentid: '$(System.TeamProject)-devops-deployment' # string. Required when action = Deploy to IoT Edge devices. IoT Edge deployment ID. Default: $(System.TeamProject)-devops-deployment.
#priority: '0' # string. Required when action = Deploy to IoT Edge devices. IoT Edge deployment priority. Default: 0.
# Advanced
#bypassModules: # string. Optional. Use when action = Push module images. Bypass module(s).
# Azure IoT Edge v2
# Build and deploy an Azure IoT Edge image.
- task: AzureIoTEdge@2
inputs:
action: 'Build module images' # 'Build module images' | 'Push module images' | 'Generate deployment manifest' | 'Deploy to IoT Edge devices'. Required. Action. Default: Build module images.
#deploymentFilePath: '$(System.DefaultWorkingDirectory)/config/deployment.json' # string. Required when action == Deploy to IoT Edge devices. Deployment file. Default: $(System.DefaultWorkingDirectory)/config/deployment.json.
#azureSubscription: # string. Alias: connectedServiceNameARM. Required when action == Deploy to IoT Edge devices. Azure subscription contains IoT Hub.
#iothubname: # string. Required when action == Deploy to IoT Edge devices. IoT Hub name.
#deviceOption: # 'Single Device' | 'Multiple Devices'. Required when action == Deploy to IoT Edge devices. Choose single/multiple device.
#deviceId: # string. Required when deviceOption == Single Device. IoT Edge device ID.
#targetcondition: # string. Required when deviceOption == Multiple Devices. IoT Edge device target condition.
#containerregistrytype: 'Azure Container Registry' # 'Azure Container Registry' | 'Generic Container Registry'. Required when action = Push module images. Container registry type. Default: Azure Container Registry.
#dockerRegistryConnection: # string. Alias: dockerRegistryEndpoint. Required when containerregistrytype = Generic Container Registry. Docker Registry Connection.
#azureSubscriptionEndpoint: # string. Optional. Use when containerregistrytype = Azure Container Registry. Azure subscription.
#azureContainerRegistry: # string. Required when containerregistrytype = Azure Container Registry. Azure Container Registry.
#templateFilePath: 'deployment.template.json' # string. Required when action = Build module images || action = Push module images || action = Generate deployment manifest. .template.json file. Default: deployment.template.json.
#defaultPlatform: 'amd64' # 'amd64' | 'windows-amd64' | 'arm32v7'. Required when action = Build module images || action = Push module images || action = Generate deployment manifest. Default platform. Default: amd64.
#fillRegistryCredential: 'true' # 'true' | 'false'. Required when action = Push module images. Add registry credential to deployment manifest. Default: true.
#deploymentManifestOutputPath: '$(System.DefaultWorkingDirectory)/config/deployment.json' # string. Required when action == Generate deployment manifest. Output path. Default: $(System.DefaultWorkingDirectory)/config/deployment.json.
#validateGeneratedDeploymentManifest: 'false' # 'true' | 'false'. Required when action = Generate deployment manifest. Validate the schema of generated deployment manifest. Default: false.
# Advanced
#deploymentid: '$(System.TeamProject)-devops-deployment' # string. Required when action = Deploy to IoT Edge devices. IoT Edge deployment ID. Default: $(System.TeamProject)-devops-deployment.
#priority: '0' # string. Required when action = Deploy to IoT Edge devices. IoT Edge deployment priority. Default: 0.
# Advanced
#bypassModules: # string. Optional. Use when action = Push module images. Bypass module(s).
# Azure IoT Edge v2
# Build and deploy an Azure IoT Edge image.
- task: AzureIoTEdge@2
inputs:
action: 'Build module images' # 'Build module images' | 'Push module images' | 'Generate deployment manifest' | 'Deploy to IoT Edge devices'. Required. Action. Default: Build module images.
#deploymentFilePath: '$(System.DefaultWorkingDirectory)/config/deployment.json' # string. Required when action == Deploy to IoT Edge devices. Deployment file. Default: $(System.DefaultWorkingDirectory)/config/deployment.json.
#azureSubscription: # string. Alias: connectedServiceNameARM. Required when action == Deploy to IoT Edge devices. Azure subscription contains IoT Hub.
#iothubname: # string. Required when action == Deploy to IoT Edge devices. IoT Hub name.
#deviceOption: # 'Single Device' | 'Multiple Devices'. Required when action == Deploy to IoT Edge devices. Choose single/multiple device.
#deviceId: # string. Required when deviceOption == Single Device. IoT Edge device ID.
#targetcondition: # string. Required when deviceOption == Multiple Devices. IoT Edge device target condition.
#containerregistrytype: 'Azure Container Registry' # 'Azure Container Registry' | 'Generic Container Registry'. Required when action = Push module images. Container registry type. Default: Azure Container Registry.
#dockerRegistryConnection: # string. Alias: dockerRegistryEndpoint. Required when containerregistrytype = Generic Container Registry. Docker Registry Connection.
#azureSubscriptionEndpoint: # string. Optional. Use when containerregistrytype = Azure Container Registry. Azure subscription.
#azureContainerRegistry: # string. Required when containerregistrytype = Azure Container Registry. Azure Container Registry.
#templateFilePath: 'deployment.template.json' # string. Required when action = Build module images || action = Push module images || action = Generate deployment manifest. .template.json file. Default: deployment.template.json.
#defaultPlatform: 'amd64' # 'amd64' | 'windows-amd64' | 'arm32v7'. Required when action = Build module images || action = Push module images || action = Generate deployment manifest. Default platform. Default: amd64.
#fillRegistryCredential: 'true' # 'true' | 'false'. Required when action = Push module images. Add registry credential to deployment manifest. Default: true.
#deploymentManifestOutputPath: '$(System.DefaultWorkingDirectory)/config/deployment.json' # string. Required when action == Generate deployment manifest. Output path. Default: $(System.DefaultWorkingDirectory)/config/deployment.json.
# Advanced
#deploymentid: '$(System.TeamProject)-devops-deployment' # string. Required when action = Deploy to IoT Edge devices. IoT Edge deployment ID. Default: $(System.TeamProject)-devops-deployment.
#priority: '0' # string. Required when action = Deploy to IoT Edge devices. IoT Edge deployment priority. Default: 0.
# Advanced
#bypassModules: # string. Optional. Use when action = Push module images. Bypass module(s).
入力
action
- アクション
string
. 必須です。 使用できる値: Build module images
、、Push module images
Generate deployment manifest
、Deploy to IoT Edge devices
。 既定値: Build module images
。
Azure IoT Edge アクションを選択します。
Build module images
モジュールのみをビルドします (コンパイル エラーをチェックするために使用できます)。
Push module images
は、モジュールをコンテナー レジストリにプッシュします。
Deploy to IoT Edge devices
は、生成されたデプロイ ファイルをIoT Hubにデプロイします。 (タスクを Deploy
リリース パイプラインに配置することをお勧めします)。
deploymentFilePath
- デプロイ ファイル
string
. action == Deploy to IoT Edge devices
の場合に必要です。 既定値: $(System.DefaultWorkingDirectory)/config/deployment.json
。
デプロイ json ファイルを選択します。
このタスクが にある場合は、成果物内 release pipeline
のデプロイ ファイルの場所を設定する必要があります。 (既定値はほとんどの条件で機能します)。このタスクがビルド パイプライン内にある場合は、配置マニフェストの出力パスを指定する必要があります。
azureSubscription
- Azure サブスクリプションにはIoT Hubが含まれています
入力エイリアス: connectedServiceNameARM
。 string
. action == Deploy to IoT Edge devices
の場合に必要です。
IoT Hubを含む Azure サブスクリプションを選択します。
iothubname
- IoT Hub名
string
. action == Deploy to IoT Edge devices
の場合に必要です。
IoT Hubを選択します。
deploymentid
- IoT Edgeデプロイ ID
string
. action = Deploy to IoT Edge devices
の場合に必要です。 既定値: $(System.TeamProject)-devops-deployment
。
IoT Edgeデプロイ ID を入力します。 ID が既に存在する場合は、オーバーライドされます。
これには最大 128 個の小文字と数字があり、次の文字を使用できます。 -:+%_#*?!(),=@;'
詳細については、「Azure IoT Edge デプロイ」を参照してください。
priority
- デプロイの優先順位をIoT Edgeする
string
. action = Deploy to IoT Edge devices
の場合に必要です。 既定値: 0
。
デプロイの priority
競合を解決するには、 を正の整数に設定します。 このタスクが複数のデプロイの対象になっている場合、デバイスは最も優先度の高い展開を使用するか、同じ優先度の 2 つのデプロイの場合は、最新の作成時刻を使用します。
詳細については、「Azure IoT Edge デプロイ」を参照してください。
deviceOption
- 1 台または複数のデバイスを選択する
string
. action == Deploy to IoT Edge devices
の場合に必要です。 使用できる値: Single Device
、Multiple Devices
。
タグに従って、1 つまたは複数のデバイスにデプロイすることを選択します。
deviceId
- デバイス ID のIoT Edge
string
. deviceOption == Single Device
の場合に必要です。
IoT Edge device ID
を入力します。
targetcondition
- デバイスのターゲット条件IoT Edgeする
string
. deviceOption == Multiple Devices
の場合に必要です。
展開する target condition
デバイスの を入力します。 二重引用符は使用しないでください。 例: tags.building=9
と tags.environment='test'
。
詳細については、「Azure IoT Edge デプロイ」を参照してください。
containerregistrytype
- コンテナー レジストリの種類
string
. action = Push module images
の場合に必要です。 使用できる値: Azure Container Registry
、Generic Container Registry
。 既定値: Azure Container Registry
。
を選択します Container Registry Type
。
Azure Container Registry
は ACR 用であり Generic Container Registry
、Docker ハブを含む汎用レジストリ用です。
dockerRegistryConnection
- Docker レジストリ接続
入力エイリアス: dockerRegistryEndpoint
。 string
. containerregistrytype = Generic Container Registry
の場合に必要です。
汎用 Docker レジストリ接続を選択します。 これは、ビルドとプッシュに必要です。
azureSubscriptionEndpoint
- Azure サブスクリプション
string
. 省略可能。 の場合は containerregistrytype = Azure Container Registry
を使用します。
Azure サブスクリプションを選択します。
azureContainerRegistry
- Azure Container Registry
string
. containerregistrytype = Azure Container Registry
の場合に必要です。
Azure Container Registryを選択します。
templateFilePath
- .template.json ファイル
string
. action = Build module images || action = Push module images || action = Generate deployment manifest
の場合に必要です。 既定値: deployment.template.json
。
Azure IoT Edge ソリューション.template.json
のパス。 このファイルは、Azure IoT Edge ソリューションのモジュールとルートを定義します。 ファイル名は で終わる .template.json
必要があります。
defaultPlatform
- 既定のプラットフォーム
string
. action = Build module images || action = Push module images || action = Generate deployment manifest
の場合に必要です。 使用できる値: amd64
、、windows-amd64
arm32v7
、arm64v8
。 既定値: amd64
。
.template.json
では、モジュール プラットフォームを指定しないままにすることができます。 これらのモジュールでは、既定のプラットフォームが使用されます。
defaultPlatform
- 既定のプラットフォーム
string
. action = Build module images || action = Push module images || action = Generate deployment manifest
の場合に必要です。 許可値: amd64
、windows-amd64
、arm32v7
。 既定値: amd64
。
.template.json
では、モジュール プラットフォームを指定しないままにすることができます。 これらのモジュールでは、既定のプラットフォームが使用されます。
fillRegistryCredential
- デプロイ マニフェストにレジストリ資格情報を追加する
string
. action = Push module images
の場合に必要です。 使用できる値: true
、false
。 既定値: true
。
Docker イメージをデプロイ マニフェストにプッシュするためのレジストリ資格情報を追加します。
deploymentManifestOutputPath
- 出力パス
string
. action == Generate deployment manifest
の場合に必要です。 既定値: $(System.DefaultWorkingDirectory)/config/deployment.json
。
生成された配置マニフェストの出力パス。
validateGeneratedDeploymentManifest
- 生成された配置マニフェストのスキーマを検証する
string
. action = Generate deployment manifest
の場合に必要です。 使用できる値: true
、false
。 既定値: false
。
生成された配置マニフェストがスキーマ検証に合格しない場合、この手順は失敗します。 JSON スキーマ ストアで検索Azure IoT Edge deployment
して、最新のスキーマを検索します。
bypassModules
- バイパス モジュール
string
. 省略可能。 の場合は action = Push module images
を使用します。
でビルドまたはプッシュ .template.json
する必要がないモジュールを選択し、モジュール名を指定し、コンマで区切ります。
例: と がSampleModule1
SampleModule2
で.template.json
、ビルドまたはプッシュSampleModule1
のみを行う場合は、バイパス モジュールを としてSampleModule2
設定します。 ですべてのモジュール .template.json
をビルドする場合は、これを空のままにします。
タスク制御オプション
すべてのタスクには、タスク入力に加えて制御オプションがあります。 詳細については、「 コントロール オプションと一般的なタスク プロパティ」を参照してください。
出力変数
このタスクでは、ダウンストリームのステップ、ジョブ、およびステージで使用できる次の 出力変数を定義します。
DEPLOYMENT_FILE_PATH
これは、生成されたデプロイ ファイルのパスです。
解説
このタスクを使用し、アプリケーションをすばやく効率的にビルド、テスト、Azure IoT Edge にデプロイします。
このタスクでは、カスタム変数がサポートされています。 パイプラインで変数を使用する方法に慣れていない場合は、「 変数を定義する」を参照してください。
例
モジュール イメージをビルドする
次の YAML の例では、モジュール イメージをビルドします。
- task: AzureIoTEdge@2
displayName: AzureIoTEdge - Build module images
inputs:
action: Build module images
templateFilePath: deployment.template.json
defaultPlatform: amd64
モジュール イメージをプッシュする
次の YAML の例では、モジュール イメージをプッシュします。
variables:
azureSubscriptionEndpoint: Contoso
azureContainerRegistry: contoso.azurecr.io
steps:
- task: AzureIoTEdge@2
displayName: AzureIoTEdge - Push module images
inputs:
action: Push module images
containerregistrytype: Azure Container Registry
azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
azureContainerRegistry: {"loginServer":"$(azureContainerRegistry)"}
templateFilePath: deployment.template.json
defaultPlatform: amd64
fillRegistryCredential: true
配置マニフェストを生成する
次の YAML の例では、テンプレート ファイルに基づいて配置マニフェストを作成します。
steps:
- task: AzureIoTEdge@2
displayName: AzureIoTEdge - Generate deployment manifest
inputs:
action: Generate deployment manifest
templateFilePath: deployment.template.json
defaultPlatform: amd64
deploymentManifestOutputPath: $(System.DefaultWorkingDirectory)/config/deployment.json
validateGeneratedDeploymentManifest: false
IoT Edge デバイスにデプロイする
次の YAML の例では、モジュール イメージをデプロイします。
steps:
- task: AzureIoTEdge@2
displayName: 'Azure IoT Edge - Deploy to IoT Edge devices'
inputs:
action: 'Deploy to IoT Edge devices'
deploymentFilePath: $(System.DefaultWorkingDirectory)/config/deployment.json
azureSubscription: $(azureSubscriptionEndpoint)
iothubname: iothubname
deploymentid: '$(System.TeamProject)-devops-deployment'
priority: '0'
deviceOption: 'Single Device'
deviceId: deviceId
その他の例
Azure Pipelines でこれらのアクションを使用する方法の詳細な例については、次の記事を参照してください。
- Azure IoT Edge デバイスに対する継続的インテグレーションと継続的デプロイ (YAML)
- Azure IoT Edge デバイスに対する継続的インテグレーションと継続的配置 (クラシック エディター)
必要条件
要件 | 説明 |
---|---|
パイプラインの種類 | YAML、クラシック ビルド、クラシック リリース |
上で実行 | エージェント、DeploymentGroup |
確認要求 | なし |
Capabilities | このタスクは、ジョブ内の後続のタスクに対する要求を満たしていません。 |
コマンドの制限 | Any |
設定可能な変数 | Any |
エージェントのバージョン | サポートされているすべてのエージェント バージョン。 |
タスクのカテゴリ | Build |