AzureIoTEdge@2 - Azure IoT Edge v2 작업
이 작업을 사용하여 Azure IoT Edge 이미지를 빠르고 효율적으로 빌드하고 배포할 수 있습니다.
이 작업은 사용자 지정 변수를 지원합니다. 파이프라인에서 변수를 사용하는 방법을 잘 모르는 경우 변수 정의를 참조하세요.
참고
이 작업은 워크플로 ID 페더레이션을 사용한 Azure Resource Manager 인증을 지원하지 않습니다.
Syntax
# 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
, , , Generate deployment manifest
. Deploy to IoT Edge devices
Push module images
기본값은 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
배포 충돌을 resolve 위해 를 양의 정수로 설정합니다. 이 작업이 여러 배포의 대상이 되는 경우 디바이스는 우선 순위가 가장 높은 배포를 사용하거나, 우선 순위가 동일한 두 배포의 경우 최신 생성 시간을 사용합니다.
자세한 내용은 Azure IoT Edge 배포를 참조하세요.
deviceOption
- 단일/다중 디바이스 선택
string
. 필요한 경우 action == Deploy to IoT Edge devices
입니다. 허용되는 값: Single Device
, Multiple Devices
.
태그에 따라 단일 또는 여러 디바이스에 배포하도록 선택합니다.
deviceId
- IoT Edge 디바이스 ID
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
, , , arm32v7
. arm64v8
windows-amd64
기본값은 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
할 필요가 없는 모듈을 선택하고 모듈 이름을 지정하고 쉼표로 구분합니다.
예: 에 및 SampleModule2
가 있고 만 빌드하거나 푸시SampleModule1
하려는 경우 SampleModule1
바이패스 모듈을 로 SampleModule2
.template.json
설정합니다. 에서 모든 모듈을 빌드하려면 이 항목을 비워 둡니다 .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에서 이러한 작업을 사용하는 방법에 대한 단계별 예제는 다음 문서를 참조하세요.
요구 사항
요구 사항 | Description |
---|---|
파이프라인 유형 | YAML, 클래식 빌드, 클래식 릴리스 |
실행 중 | 에이전트, DeploymentGroup |
요청 | 없음 |
Capabilities | 이 작업은 작업의 후속 작업에 대한 요구를 충족하지 않습니다. |
명령 제한 사항 | 모두 |
설정 가능한 변수 | 모두 |
에이전트 버전 | 지원되는 모든 에이전트 버전. |
작업 범주 | 빌드 |