Лазурный бицепс: цикл for в определении переменной невозможен?

Я создаю модуль бицепса следующим образом:

param permission object

var keys = [for key in permission.keys: key]
var secretes= [for secret in permission.secrets: secret]
var certificates = [for certificate in permission.certificates: certificate]

где «разрешения» — это объект, содержащий эти 3 массива.
Это хорошо работает, но я бы предпочел что-то вроде этого (одна сложная переменная вместо трех отдельных массивов):

var x = {
  keys: [for key in permission.keys: key]
  secrets: [for secret in permission.secrets: secret]   
  certificates: [for certificate in permission.certificates: certificate]
}

Синтаксически это не разрешено. Интересно, что при выполнении того же действия в определении ресурса действует тот же синтаксис, например:

resource EventHubAuthorization 'Microsoft.EventHub/namespaces/eventhubs/authorizationRules@2021-01-01-preview' = {
  name: '${EventHub.name}/${AuthorizationName}'
  properties: {
    rights: [for right in Rights: right]
  }
}

Это просто так или я что-то упускаю и то, что я хочу, можно было бы сделать - просто по-другому?

бр волкер

3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
0
0
36
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Это не поддерживается в соответствии с сообщением об ошибке:

For-expressions are not supported in this context. For-expressions may be used as values of resource, module, variable, and output declarations, or values of resource and module properties.bicep(BCP138)

Вы всегда можете сделать что-то вроде этого:

param permission object

var keys = [for key in permission.keys: key]
var secrets= [for secret in permission.secrets: secret]
var certificates = [for certificate in permission.certificates: certificate]

var x = {
  keys: keys
  secrets: secrets
  certificates: certificates
}

Но здесь переменная x выглядит примерно так же, как параметр permission.

Привет Томас, спасибо за ваш вклад. Вы правы с переменной x. Я просто был обеспокоен синтаксисом.

vkoster 24.04.2022 14:43

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