Поделиться через


Краткое руководство: Интеграция Bicep с Azure Pipelines

В этом кратком руководстве показано, как интегрировать файлы Bicep с Azure Pipelines для непрерывной интеграции и непрерывного развертывания.

В ней дано краткое введение в задачу работы с конвейером, необходимую для развертывания Bicep-файла. Дополнительные сведения о настройке конвейера и проекта см. в разделе "Развертывание ресурсов Azure" с помощью модуля Bicep и Azure Pipelines Microsoft Learn.

Предпосылки

Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.

Вам также нужна организация Azure DevOps. Если у вас ее нет, создайте подписку бесплатно. Если у вашей команды уже есть организация Azure DevOps, убедитесь, что вы являетесь администратором проекта Azure DevOps, который вы хотите использовать.

Необходимо настроить подключение службы к подписке Azure. Задачи в конвейере выполняются под удостоверением субъекта-службы. Инструкции по созданию подключения см. в разделе "Создание проекта DevOps".

Вам нужен файл Bicep , определяющий инфраструктуру для проекта. Этот файл находится в репозитории.

Вам нужен файл 'bicepparam' , определяющий параметры, используемые файлом Bicep. Этот файл находится в репозитории.

Создание конвейера

  1. В организации Azure DevOps выберите "Конвейеры " и "Создать конвейер".

    Снимок экрана создания нового конвейера.

  2. Укажите место хранения кода. В этом кратком руководстве используются репозитории Git в Azure Repos.

    Снимок экрана: выбор источника кода.

  3. Выберите репозиторий с кодом для проекта.

    Снимок экрана: выбор репозитория.

  4. Выберите начальный конвейер для типа создаваемого конвейера.

    Снимок экрана: выбор конвейера.

Развертывание файлов Bicep

Вы можете использовать задачу развертывания группы ресурсов Azure или задачу Azure CLI для развертывания файла Bicep.

Использование задачи развертывания шаблона Azure Resource Manager

Примечание.

По состоянию на версию 3.235.0 задачи развертывания шаблона Azure Resource Manager поддерживается использование файлов '.bicepparam'.

Примечание.

Задача AzureResourceManagerTemplateDeployment@3 требует предоставления файлов Bicep и .bicepparam при использовании .bicepparam. Файл Bicep может ссылаться на все поддерживаемые местоположения для модульных ссылок. Файл .bicepparam должен ссылаться на локальный файл Bicep в инструкции using .

  1. Замените начальный конвейер следующим YAML. Она использует задачу развертывания шаблона в Azure Resource Manager для создания группы ресурсов и развертывания файла Bicep и .bicepparam.

    trigger:
    - main
    
    name: Deploy Bicep files
    
    parameters:
    - name: azureServiceConnection
      type: string
      default: '<your-connection-name>'
    
    variables:
      vmImageName: 'ubuntu-latest'
      resourceGroupName: 'exampleRG'
      location: '<your-resource-group-location>'
      templateFile: './main.bicep'
      csmParametersFile: './main.bicepparam'
    
    pool:
      vmImage: $(vmImageName)
    
    steps:
    - task: AzureResourceManagerTemplateDeployment@3
      inputs:
        deploymentScope: 'Resource Group'
        action: 'Create Or Update Resource Group'
        resourceGroupName: '$(resourceGroupName)'
        location: '$(location)'
        templateLocation: 'Linked artifact'
        csmFile: '$(templateFile)'
        csmParametersFile: '$(csmParametersFile)'
        overrideParameters: '-storageAccountType Standard_LRS'
        deploymentMode: 'Incremental'
        deploymentName: 'DeployPipelineTemplate'
        connectedServiceName: '${{ parameters.azureServiceConnection }}'
    
  2. Обновите значения azureServiceConnection и location.

  3. Убедитесь, что у вас есть допустимый main.bicep файл в репозитории.

  4. Убедитесь, что в репозитории есть допустимый main.bicepparam файл, содержащий инструкцию using .

  5. Выберите Сохранить. Конвейер сборки выполняется автоматически. Вернитесь к сводке для конвейера сборки и просмотрите состояние.

Использование задачи Azure CLI

Примечание.

Для az deployment group create команды требуется только bicepparam. файл. Инструкция using в файле .bicepparam может указывать на любое поддерживаемое место, чтобы ссылаться на файл Bicep. Файл Bicep необходим в вашем репозитории только при использовании using из локального пути к диску с помощью Azure CLI.

Примечание.

При использовании файла с командой .bicepparamaz deployment group create невозможно переопределить параметры.

  1. Замените начальный конвейер следующим YAML. Он создает группу ресурсов и развертывает .bicepparam файл с помощью задачи Azure CLI:

    trigger:
    - main
    
    name: Deploy Bicep files
    
    parameters:
      azureServiceConnection: '<your-connection-name>'
    
    variables:
      vmImageName: 'ubuntu-latest'
      resourceGroupName: 'exampleRG'
      location: '<your-resource-group-location>'
      bicepParamFile: './main.bicepparam'
    
    pool:
      vmImage: $(vmImageName)
    
    steps:
    - task: AzureCLI@2
      inputs:
        azureSubscription: '${{ parameters.azureServiceConnection }}'
        scriptType: bash
        scriptLocation: inlineScript
        useGlobalConfig: false
        inlineScript: |
          az --version
          az group create --name $(resourceGroupName) --location $(location)
          az deployment group create `
            --resource-group $(resourceGroupName) `
            --parameters $(bicepParamFile) `
            --name DeployPipelineTemplate
    

    Описание входных данных задачи см. в задаче Azure CLI версии 2. При использовании задачи в изолированном от интернета облаке необходимо установить для свойства задачи useGlobalConfig значение true. Значение по умолчанию — false.

  2. Обновите значения azureServiceConnection и location.

  3. Убедитесь, что в репозитории есть допустимый main.bicepparam файл, содержащий инструкцию using .

  4. Выберите Сохранить. Конвейер сборки выполняется автоматически. Вернитесь к сводке для конвейера сборки и просмотрите состояние.

Очистка ресурсов

Если ресурсы Azure больше не нужны, используйте Azure CLI или Azure PowerShell для удаления группы ресурсов быстрого запуска.

az group delete --name exampleRG

Дальнейшие действия