Передача параметров логического значения в Bicep из yaml конвейера DevOps

Благодаря этому посту я знаю, как передавать параметры из моего конвейера yml через задачу AzureResourceManagerTemplateDeployment в мой скрипт IaC бицепса. Однако мой аргумент поступает в виде строки, хотя я указал их в файле Pipeline.yml как логические значения.

Это приводит к ошибке 'The provided value for the template parameter 'my_parameter_inside' is not valid. Expected a value of type 'Boolean', but received a value of type 'String'.

Мой конвейер.yml

parameters:
- name: my_parameter
  displayName: Deploy spark pools
  type: boolean
  default: false

steps:
- task: AzureResourceManagerTemplateDeployment@3
  inputs:
    csmFile: $(bicep_file_name)
    csmParametersFile: $(bicep_parameter_file_name)
    ...
    overrideParameters: -my_parameter_inside ${{ parameters.my_parameter }}

Параметр внутри моего файла бицепса:

@description('Enable/Disable something')
param my_parameter_inside bool = true

Как я могу гарантировать, что значение передается как логическое значение?

Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
1
0
108
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Я нашел ошибку в GitHub, в которой кто-то нашел обходной путь проблемы — нам нужно передать его в нижнем регистре, чтобы он был распознан как логическое значение, поскольку в противном случае он был бы передан как False вместо false, и Bicep его не принимает. .

-> ${{ lower(parameters.my_parameter) }}

Рабочий конвейер.yml

parameters:
- name: my_parameter
  displayName: Deploy spark pools
  type: boolean
  default: false

steps:
- task: AzureResourceManagerTemplateDeployment@3
  inputs:
    csmFile: $(bicep_file_name)
    csmParametersFile: $(bicep_parameter_file_name)
    ...
    overrideParameters: -my_parameter_inside ${{ lower(parameters.my_parameter) }}

Здесь немного сложнее. Я только что проверил, используя ${{ low(parameters.my_parameter) }}, это тоже работает. Но я хочу сказать, что логические параметры всегда рассматриваются как строка в более позднем встроенном скрипте или AzureResourceManagerTemplateDeployment@3, поэтому сначала необходимо преобразовать строку true или false в bool True или False, а затем использовать ее.

wenbo 15.07.2024 11:08

Спасибо, что поделились решением. Я заметил, что есть билет с предложением попросить не использовать логический параметр с заглавной буквы. Вы можете проголосовать и добавить несколько комментариев, чтобы повысить приоритет.

Ziyang Liu-MSFT 15.07.2024 11:20

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

Azure Devops // Подключение к службе // Terraform // Конвейер Yaml -> Ошибка сборки
Azure Devops: как включить перемещение элементов в бэклогах (переместить в позицию)?
Срок службы .NET Core SDK/среды выполнения 2.2 и 3.0 истек (EOL) и удален из всех размещенных агентов
Почему мои условия не работают должным образом в конвейерах YAML Azure DevOps при использовании условий на основе динамической переменной?
Выходная переменная из обычного задания конвейера Azure не расширяется в задании развертывания
Тип политики Azure DevOps Branch «Требовать стратегию слияния» не устанавливает флажок в разделе «Ограничить типы слияния»
Azure DevOps: свяжите тестовый пример с пользовательской историей во время массового импорта
Почтальон «Get» возвращает данные, а метод Powershell Invoke-Rest не из Azure DevOps
Мой конвейер Azure не запускается, несмотря на выполнение условий
Используйте выходные данные команды bash в качестве входных параметров шаблона задания в конвейере Azure DevOps

Похожие вопросы

Azure Devops // Подключение к службе // Terraform // Конвейер Yaml -> Ошибка сборки
Ошибка ERR_SSL_UNRECOGNIZED_NAME_ALERT из шлюза приложений Azure с сертификатом SSL в хранилище ключей другой подписки
Вариант контейнера модели публикации веб-приложения Azure не работает с Terraform
Развертывание Docker Compose в Azure
Как использовать токен доступа для создания сеанса клерка?
Не удается загрузить файл в исходную группу Azure Front Door из-за задержки?
Как получить метаданные (список общих файловых ресурсов) учетной записи хранения и настроить действие копирования данных для копирования черно-белых учетных записей хранения в ADF?
Дополнительные файлы (блочные BLOB-объекты), создаваемые при копировании хранилища BLOB-объектов в ADF
Невозможно найти модуль «../server/require-hook» Развертывание веб-приложения Nextjs Azure с помощью действий GitHub
Как очистить определенную папку при развертывании в эту папку с помощью «az webapp Deploy»