Я проверил все предыдущие вопросы по этой проблеме, но мне не удалось решить эту проблему. Мой файл конвейера YMAL следующий:
trigger:
branches:
include:
- deploy-dev
- adf_publish
resources:
repositories:
- repository: CustodianDailyPipelines
type: git
name: 'CustodianDailyPipelines'
ref: adf_publish
variables:
workingDir: '$(Build.SourcesDirectory)'
azureSubscription:
azureRMConnection:
resourceGroupDev: 'Dev'
resourceGroupTest: 'Test'
resourceGroupProd: 'Prod'
sourceDataFactory: ''
deployedDataFactory: ''
region: 'westeurope'
artifactName: 'arm-templates-artifact'
vmImageName: 'ubuntu-latest'
stages:
- stage: Publish
displayName: Publish
jobs:
- job: PublishJob
displayName: Copy and Publish Artifacts
pool:
vmImage: $(vmImageName)
steps:
- checkout: self
- checkout: CustodianDailyPipelines
path: s/CustodianDailyPipelines
- script: ls -l $(workingDir)/CustodianDailyPipelines
displayName: 'List Source Directory Contents'
- task: CopyFiles@2
displayName: Copy files
inputs:
SourceFolder: '$(workingDir)/CustodianDailyPipelines/OstricaPipelines'
Contents: '**/*.json'
TargetFolder: '$(Build.ArtifactStagingDirectory)/ArmTemplates'
- task: PublishBuildArtifacts@1
displayName: Publish build artifacts
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)/ArmTemplates'
ArtifactName: '$(artifactName)'
PublishLocation: 'Container'
- stage: DeployDEV
displayName: Deploy DEV stage
condition: succeeded()
jobs:
- deployment: Deploy
displayName: Deploy to DEV stage
environment: 'development'
pool:
vmImage: $(vmImageName)
strategy:
runOnce:
deploy:
steps:
- checkout: self
- checkout: CustodianDailyPipelines
path: a/CustodianDailyPipelines
- download: none
- task: DownloadPipelineArtifact@2
inputs:
buildType: 'current'
artifactName: '$(artifactName)'
targetPath: '$(Pipeline.Workspace)/$(artifactName)'
- script: |
echo "Listing all files in the artifact directory:"
ls -R $(Pipeline.Workspace)/$(artifactName)
displayName: 'List all files in artifact directory'
- script: |
echo "Contents of ARMTemplateForFactory.json:"
cat $(Pipeline.Workspace)/$(artifactName)/ARMTemplateForFactory.json
echo "Contents of ARMTemplateParametersForFactory.json:"
cat $(Pipeline.Workspace)/$(artifactName)/ARMTemplateParametersForFactory.json
displayName: 'Verify ARM Templates'
- task: AzureResourceManagerTemplateDeployment@3
inputs:
deploymentScope: 'Resource Group'
azureResourceManagerConnection: $(azureRMConnection)
subscriptionId: $(azureSubscription)
action: 'Create Or Update Resource Group'
resourceGroupName: $(resourceGroupDev)
location: $(region)
templateLocation: 'Linked artifact'
csmFileLink: '$(Pipeline.Workspace)/$(artifactName)/ARMTemplateForFactory.json'
csmParametersFileLink: '$(Pipeline.Workspace)/$(artifactName)/ARMTemplateParametersForFactory.json'
overrideParameters: '-dataFactoryName $(deployedDataFactory) -environment development'
deploymentMode: 'Incremental'
Я использую эти ветки:
Единственная ошибка, которую я получаю, — это когда я пытаюсь выполнить развертывание последней задачи. Кроме того, выходные данные конвейера Azure Devops показывают, что шаблоны ARM успешно получены и копируются в папку home/vsts/work/1/a.
Если вы планируете использовать файлы артефактов шаблона ARM, загруженные по определенному пути в агенте конвейера, вам следует использовать csmFile
и csmParametersFile
, а не csmFileLink
и csmParametersFileLink
.
Вместо этого измените и протестируйте пример шага конвейера YAML.
- task: AzureResourceManagerTemplateDeployment@3
inputs:
deploymentScope: 'Resource Group'
azureResourceManagerConnection: '$(azureRMConnection)'
subscriptionId: '$(azureSubscription)'
action: 'Create Or Update Resource Group'
resourceGroupName: '$(resourceGroupDev)'
location: '$(region)'
templateLocation: 'Linked artifact'
csmFile: '$(Pipeline.Workspace)/$(artifactName)/ARMTemplateForFactory.json'
csmParametersFile: '$(Pipeline.Workspace)/$(artifactName)/ARMTemplateForFactory.json'
overrideParameters: '-dataFactoryName $(deployedDataFactory) -environment development'
deploymentMode: 'Incremental'
Спасибо @Alvin Zhao - MSFT. Теперь мне нужно переопределить некоторые параметры из шаблонов ARM, поскольку я получаю сообщение об ошибке: BadRequest: не удалось зашифровать полезную нагрузку подресурса. Мне нужно переопределить параметры некоторых связанных служб. Однако некоторые ключи свойств, такие как пароли связанных служб, пусты.
Можете ли вы запустить сборку или возникает ошибка при попытке поставить ее в очередь?