次の方法で共有


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 imagesGenerate deployment manifestDeploy 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が含まれています
入力エイリアス: connectedServiceNameARMstring. 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 DeviceMultiple 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=9tags.environment='test'。 詳細については、「Azure IoT Edge デプロイ」を参照してください。


containerregistrytype - コンテナー レジストリの種類
string. action = Push module images の場合に必要です。 使用できる値: Azure Container RegistryGeneric Container Registry。 既定値: Azure Container Registry

を選択します Container Registry TypeAzure Container Registry は ACR 用であり Generic Container Registry 、Docker ハブを含む汎用レジストリ用です。


dockerRegistryConnection - Docker レジストリ接続
入力エイリアス: dockerRegistryEndpointstring. 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-amd64arm32v7arm64v8。 既定値: amd64

.template.jsonでは、モジュール プラットフォームを指定しないままにすることができます。 これらのモジュールでは、既定のプラットフォームが使用されます。


defaultPlatform - 既定のプラットフォーム
string. action = Build module images || action = Push module images || action = Generate deployment manifest の場合に必要です。 許可値: amd64windows-amd64arm32v7。 既定値: amd64

.template.jsonでは、モジュール プラットフォームを指定しないままにすることができます。 これらのモジュールでは、既定のプラットフォームが使用されます。


fillRegistryCredential - デプロイ マニフェストにレジストリ資格情報を追加する
string. action = Push module images の場合に必要です。 使用できる値: truefalse。 既定値: true

Docker イメージをデプロイ マニフェストにプッシュするためのレジストリ資格情報を追加します。


deploymentManifestOutputPath - 出力パス
string. action == Generate deployment manifest の場合に必要です。 既定値: $(System.DefaultWorkingDirectory)/config/deployment.json

生成された配置マニフェストの出力パス。


validateGeneratedDeploymentManifest - 生成された配置マニフェストのスキーマを検証する
string. action = Generate deployment manifest の場合に必要です。 使用できる値: truefalse。 既定値: false

生成された配置マニフェストがスキーマ検証に合格しない場合、この手順は失敗します。 JSON スキーマ ストアで検索Azure IoT Edge deploymentして、最新のスキーマを検索します。


bypassModules - バイパス モジュール
string. 省略可能。 の場合は action = Push module imagesを使用します。

でビルドまたはプッシュ .template.jsonする必要がないモジュールを選択し、モジュール名を指定し、コンマで区切ります。 例: と がSampleModule1SampleModule2.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 でこれらのアクションを使用する方法の詳細な例については、次の記事を参照してください。

必要条件

要件 説明
パイプラインの種類 YAML、クラシック ビルド、クラシック リリース
上で実行 エージェント、DeploymentGroup
確認要求 なし
Capabilities このタスクは、ジョブ内の後続のタスクに対する要求を満たしていません。
コマンドの制限 Any
設定可能な変数 Any
エージェントのバージョン サポートされているすべてのエージェント バージョン。
タスクのカテゴリ Build