Почему я получаю сообщение об ошибке: Ошибка: шаблон файла шаблона соответствует каталогу, а не файлу: /home/vsts/work/1/s в моем файле конвейера файлов yaml?

Я проверил все предыдущие вопросы по этой проблеме, но мне не удалось решить эту проблему. Мой файл конвейера 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'

Я использую эти ветки:

  • adf_publish для извлечения шаблонов ARM JSON фабрики данных.
  • Deploy-dev: функциональная ветка, основанная на основной ветке, в которой содержатся все ресурсы ADF и файл конвейера yaml.

Можете ли вы запустить сборку или возникает ошибка при попытке поставить ее в очередь?

Rui Jarimba 03.07.2024 18:35

Единственная ошибка, которую я получаю, — это когда я пытаюсь выполнить развертывание последней задачи. Кроме того, выходные данные конвейера Azure Devops показывают, что шаблоны ARM успешно получены и копируются в папку home/vsts/work/1/a.

Αθανάσιος Σουλιώτης 03.07.2024 18:36
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
61
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если вы планируете использовать файлы артефактов шаблона 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: не удалось зашифровать полезную нагрузку подресурса. Мне нужно переопределить параметры некоторых связанных служб. Однако некоторые ключи свойств, такие как пароли связанных служб, пусты.

Αθανάσιος Σουλιώτης 04.07.2024 12:29

Другие вопросы по теме