Pulumi получить объект или массив сохраненных конфигураций

При вызове new pulumi.Config('someName') я хотел бы получить массив секретов, находящихся под someName:aValue.

Я пытался вызвать что-то вроде const cfg = new pulumi.Config('someName'), но после этого все методы в этом классе требуют ключа (например, aValue), но это бесполезно, если вы хотите, чтобы все секреты были под логическим именем.

пулуми. *. ямл

  someName:someValue1:
    secure: someSecureValue
  someName:someValue2:
    secure: someOtherSecureValue

somefile.ts

const cfg = new pulumi.Config('someName')

С помощью приведенного выше кода я ищу список всех секретов в разделе someName.


person sh on    schedule 01.07.2019    source источник


Ответы (1)


Из документов:

Значения конфигурации всегда хранятся в виде строк, но могут быть проанализированы как богато типизированные значения.

Для более богатых структурированных данных можно использовать метод config.getObject для анализа значений JSON.

Для секретных значений есть функции getSecretObject() и requireSecretObject(). Для вашего примера вы бы сделали что-то вроде

pulumi config set --secret someName '{"someValue1": "someSecureValue", "someValue2": "someOtherSecureValue" }'

а затем прочтите это с

const config = new pulumi.Config();
const someName = config.requireSecretObject("someName");
const someValue1 = someName.someValue1;

Очевидно, вы также можете использовать несколько секретов в качестве отдельных ключей в файле конфигурации и извлекать их один за другим с отдельными вызовами requireSecretObject.

Массив будет настроен как

pulumi config set --secret someName '["someSecureValue", "someOtherSecureValue"]'
person Mikhail Shilkov    schedule 01.07.2019
comment
В вашем примере показано someName с массивом секретов, но мне нужно несколько someName:someValue1 и someName:someValue2, каждый со значением для сопоставления. Не уверен, что ваш пример это иллюстрирует, иначе мне это не хватает. - person sh on; 02.07.2019
comment
@shon Отредактировал его, чтобы использовать объект вместо массива - person Mikhail Shilkov; 02.07.2019
comment
Спасибо за обновление, после предоставленной вами ссылки на документ она указала мне в правильном направлении, и теперь, когда вы обновили ответ, я буду голосовать за этот. Спасибо. - person sh on; 02.07.2019