Aws-cli: Внешний файл параметров Cloudformation не поддерживает файл YAML

Созданный на 3 нояб. 2016  ·  143Комментарии  ·  Источник: aws/aws-cli

Я использовал aws-cli для обновления своих стеков и хочу использовать внешний файл yaml (dev.yaml) в качестве файла параметров, как показано ниже:

aws cloudformation update-stack --stack-name test --template-body file://./api-test.yaml --parameters file://./dev.yaml

В dev.yaml он имеет только:

---
- ParameterKey: APICacheClusterSize
  ParameterValue: '1.6'

Однако я получил это сообщение об ошибке, когда запускаю команду обновления выше:

Error parsing parameter '--parameters': Expected: '=', received: '-' for input:

---
- ParameterKey: APICacheClusterSize
^
  ParameterValue: '1.6'

Если я использую файл JSON с тем же контекстом, что и ниже, и использую его вместо dev.yaml , он работает нормально:

[
  {
    "ParameterKey": "APICacheClusterSize",
    "ParameterValue": "1.6"
  }
]

Итак, может ли файл внешних параметров для aws cloudformation быть файлом YAML? или будет...?

feature-request

Самый полезный комментарий

Я поддержу этот запрос функции.

Все 143 Комментарий

Привет, в настоящее время у нас нет планов по поддержке YAML как части аргументов командной строки. Я отмечу это как запрос функции, поскольку я вижу, как это может быть полезно для некоторых людей.

Содержимое файла, который вы предоставляете --parameters, загружается и выгружается прямо в качестве аргумента, поэтому содержимое файла может быть только в одном из двух форматов:
Сокращенный синтаксис:
ParameterKey=string,ParameterValue=string,UsePreviousValue=boolean
или синтаксис JSON:

[
    {
         "ParameterKey": "string",
         "ParameterValue": "string",
         "UsePreviousValue": true|false
     }
]

Я поддержу этот запрос функции.

я тоже поддержу

+1

Пожалуйста. Это критично для нас.

+1

абсолютно +1

+1 разрешать данные в формате YAML для --template-body , но не для --parameters , неудобно

👍

+1

+1

+1

поскольку вы можете предоставить шаблон в yaml, вы также сможете указать параметры в yaml
Я думаю, что эта функция обязательна

+1

+100

+1

+100

+1

https://gist.github.com/mbailey/2f7c878eed123cab6fb125117f35aecc
"
yamlise — смотрите YAML при редактировании файлов JSON в vim.
"
" Создано для людей с боязнью JSON.
"использовать только тогда, когда все попытки освоить JSON
" не удалось. http://www.json.org/
"
«Надеюсь, этим людям еще не поздно!
«Пожалуйста. Это очень важно для нас».
https://github.com/aws/aws-cli/issues/2275#issuecomment-277829948
"
" Установка
" =============
1. Установите cfn-flip https://github.com/awslabs/aws-cfn-template-flip
2. Включите этот файл в свой ~/.vimrc
3. vim cloudformation-params.json
"ТЕПЕРЬ ВЫ ДОЛЖНЫ УВИДЕТЬ ЯМЛ, КОТОРЫЙ ВАШ ЖЕЛАЕТ
" 4. :wq
" Теперь файл должен содержать JSON, который Amazon CLI ожидает
"
:augroup ямлиз
: автокмд!
: autocmd BufReadPost,FileReadPost *.json '[,']!cfn-flip
: autocmd BufWritePre,FileWritePre *.json '[,']!cfn-flip
: autocmd FileAppendPre *.json '[,']!cfn-flip
:augroup КОНЕЦ

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

+999

+1

+1

+1

+1

+2

+1

+1

+1

+1

+1

+1

+1

+10000000

+1

+Инф

+1

+1

+1

+1

+1

Вот простой обходной путь с использованием подстановки процесса Bash и cfn-flip :
aws cloudformation ... --parameters file://<(cfn-flip parameters.yml)

+1

+1

++

+0,5

+1

++

+1!

Не понимаю, зачем вам шаблон в YAML, а параметры в JSON. Кажется странным упущением, и я надеюсь, что AWS работает над .... пожалуйста?

+1

+1

Доброе утро!

Мы закрываем эту проблему здесь, на GitHub, в рамках нашего перехода на UserVoice для запросов функций, связанных с интерфейсом командной строки AWS.

Это позволит нам предоставить вам самые важные функции, упростив поиск и демонстрацию поддержки функций, которые вам больше всего нужны, не разбавляя разговор сообщениями об ошибках.

В качестве краткого примера UserVoice (если он еще не знаком): после публикации идеи люди могут проголосовать за нее, а команда разработчиков будет отвечать непосредственно на самые популярные предложения.

Мы импортировали существующие запросы функций из GitHub — найдите эту проблему там!

И не волнуйтесь, эта проблема останется на GitHub для потомков. Поскольку это только текстовый импорт исходного сообщения в UserVoice, мы по-прежнему будем учитывать комментарии и обсуждения, которые уже существуют здесь по проблеме GitHub.

GitHub останется каналом для сообщений об ошибках.

И снова эту проблему можно найти, выполнив поиск по названию на странице: https://aws.uservoice.com/forums/598381-aws-command-line-interface .

– Команда AWS SDK и инструментов

Эту запись можно найти на UserVoice по адресу: https://aws.uservoice.com/forums/598381-aws-command-line-interface/suggestions/33168310-cloudformation-external-parameter-file-do-not-supp .

+1

Основываясь на отзывах сообщества, мы решили вернуть запросы функций в задачи GitHub.

+1

+1

+1

+100

+1

+1

+1

+1
и +1000 для большей согласованности в целом, пожалуйста;)

+1

Этой проблеме 2 года ;_;

@matthewflannery нет, на самом деле всего 587 дней.

+1

@Yaowenjie 587/365 = 1,608 ~ 2 года

+1

еще 11!1!1один!!1!11

:+1:

:heavy_plus_sign: :100:

👍

+1

осталось два месяца до празднования второй годовщины этого выпуска, друзья! 👨‍👩‍👧‍👦🎉🎉🎊🎊👨‍👨‍👧‍👦

Поскольку моя команда привыкла к YAML (все наши шаблоны в YAML), у меня есть некоторая автоматизация оболочки, которая превращает файл YAML в файл json, а затем передает его в CF. Это показывает (по крайней мере для меня), насколько востребована эта функция — если клиенты создают собственную автоматизацию вокруг базовой функциональности, подобную этой, это не ответ.

Кроме того, мы должны отметить, что весь способ работы с параметрамиKey/ParamaterValue для CloudFormation глуп.

Можем ли мы иметь шаблон CloudFormation в YAML и предоставить файл параметров в JSON?

@Yashswarnkar Да, у вас может быть шаблон в YAML и параметры в JSON. Эта проблема связана с тем, что параметры могут быть только в формате JSON — файлы YAML не поддерживаются, несмотря на то, что шаблон находится в формате YAML.

+1 Очень хотелось бы иметь возможность добавлять комментарии к моим файлам параметров и запускать их из CLI. Есть ли планы добавить поддержку .yaml для команды CLI create-stack с --parameters для поддержки yaml?

Есть ETA для этой функции?

+1

Почти 2 года и до сих пор нет yaml для параметров... :(

+1

+1

+1

Теперь, когда SSM доступен с безопасными строками и способами их декодирования, я развлекаюсь идеей запуска скрипта для размещения переменных в учетной записи AWS, а затем для ссылки на них из шаблона cloudformation... У кого-нибудь есть другие идеи, такие как эта ?

Согласно комментариям выше, вы можете использовать cfn-flip
https://github.com/awslabs/aws-cfn-template-flip

В bash — отображать параметры.yaml в виде файла json с оператором <()

pip install cfn_flip

cat <(cfn-flip parameters.yaml)

Используйте с <() в команде cli

aws cloudformation update-stack --stack-name test --template-body file://./api-test.yaml --parameters file://<(cfn-flip parameters.yaml)

+100

Это, очевидно, функция, пользующаяся большим спросом — почему по этому поводу не было никаких движений, несмотря на то, что, похоже, сотни людей просили об этом?

+1
НАСТОЯЩИЙ вариант использования - это когда нужно указать JSON в параметре, и в этом случае JSON - это кошмар с необходимостью экранировать кавычки...

[
    {
        "ParameterKey": "DistributionJSON",
        "ParameterValue": "{\"Account_ID_1\":\"region_1,region_2\",\"Account_ID_2\":\"region_1\"}"
    }
]

В сравнении с:

- ParameterKey: DistributionJSON
  ParameterValue: '{"Account_ID_1":"region_1,region_2","Account_ID_2":"region_1"}'

Хорошо? Нет больше обновлений?

Хорошо? Нет больше обновлений?

Успокойтесь, это только январь 2019

Эй, как дела у этих ребят со слиянием в PR?

Я бы подумал о написании этого, если бы знал, что команда регулярно объединяется в PR от тех, кто не входит в их организацию.

Без понятия. Я полагаю, что на это есть достаточный спрос, в конечном итоге они это реализуют.

возможно, это должно оставаться открытым навсегда, и все, кто в нем участвует, могут дружить и каждый год проводить конференцию под названием «Пайаметр фам» (как в параметре ямл фам), где мы все собираемся вместе и обсуждаем нашу травму против ямла.

+1

👍

+1

+1

3 года, 90% API используют YAML, много надоедливых +1 и AWS чешет яйца...

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

+1

Сейчас июнь 2019 года, я не понимаю, почему AWS до сих пор не решает эту проблему. Они нанимают так много людей каждый год

Давай правда? Давайте двигаться

+1

+1

+1

+1

+1

+1

+1

жду... жду...

все еще жду!

Тем не менее параметры только Json?

Этот вопрос достаточно стар, чтобы начать дошкольное образование.

Я буду на re:Invent 2019, если кто-то хочет обсудить эту проблему и поговорить с Джеффом Барром и др. ал в твиттере.

это было бы прекрасно

+1

+1

+1

+1
просто нажмите на эту скалу, могу ли я получить поддержку параметров YAML, пожалуйста?
Мой текущий проект любит YAML (я не :))

Не могли бы вы также добавить поддержку XML? Я не могу отправить это через SOAP. Поддержка AWS необходима в Windows Forms.

+1

+1

В четверг, 31 октября 2019 г., в 16:04 Берни Дерфи, [email protected]
написал:

+1


Вы получаете это, потому что вы прокомментировали.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/aws/aws-cli/issues/2275?email_source=notifications&email_token=AHCULG57Z7SJHTRO43JC6LLQRL6ZPA5CNFSM4CVAW4OKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOECYKMJ5,378#iss
или отписаться
https://github.com/notifications/unsubscribe-auth/AHCULG3TRJ5FGXG3NOVORBTQRL6ZPANCNFSM4CVAW4OA
.

+1

+1

Любые обновления :/ ?

+1

+1
id хотел бы иметь возможность комментировать мой файл параметров, разделяя обновляемые параметры cloudformation и необновляемые.
например. Я попытался обновить свой идентификатор моментального снимка тома.
-> Свойства тома, кроме AutoEnableIO, типа, размера и IOPS, не могут быть обновлены. Верните свойства к предыдущим значениям и снова обновите стек.

Пытался создать стек с помощью следующей команды: aws cloudformation create-stack --stack-name myfirsttest --region us-west-2 --template-body file://testcfn.yml
Но получил следующее сообщение об ошибке:
Ошибка синтаксического анализа параметра «--template-body»: невозможно загрузить файл параметров file://testcfn.yml : [Errno 2] Нет такого файла или каталога: «testcfn.yml»

Мой файл testcfn.yml выглядит следующим образом:
Description: > Vritika / Udacity project This template deploys a VPC Resources: UdacityVPC: Type: AWS::EC2::VPC Properties: CidrBlock: 10.0.0.0/16 EnableDnsHostnames: true

› aws ssm get-parameters-by-path help                                                                               

# ...

SYNOPSIS
            get-parameters-by-path
          --path <value>
          [--recursive | --no-recursive]
          [--parameter-filters <value>]
          [--with-decryption | --no-with-decryption]
          [--cli-input-json | --cli-input-yaml]
          [--starting-token <value>]
          [--page-size <value>]
          [--max-items <value>]
          [--generate-cli-skeleton <value>]
          [--cli-auto-prompt <value>]

# ...

       --generate-cli-skeleton  (string)  Prints  a  JSON skeleton to standard
       output without sending an API request. If provided with no value or the
       value input, prints a sample input JSON that can be used as an argument
       for --cli-input-json. Similarly, if provided yaml-input it will print a
       sample  input  YAML that can be used with --cli-input-yaml. If provided
       with the value output, it validates the command inputs  and  returns  a
       sample output JSON for that command.

Ура, ямл поддержу!!!

› aws ssm get-parameters-by-path --path "/foo/bar/" --recursive --generate-cli-skeleton yaml-input
Path: ''  # [REQUIRED] The hierarchy for the parameter.
Recursive: true # Retrieve all parameters within a hierarchy.
ParameterFilters: # Filters to limit the request results.
- Key: ''  # [REQUIRED] The name of the filter.
  Option: '' # For all filters used with DescribeParameters, valid options include Equals and BeginsWith.
  Values: # The value you want to search for.
  - ''
WithDecryption: true # Retrieve all parameters in a hierarchy with their value decrypted.
MaxResults: 0 # The maximum number of items to return for this call.
NextToken: '' # A token to start the list.

Это еще не дело?? Или я пропустил, что это где-то?

Для всех, кто заинтересован в использовании .yaml в своих параметрах, обратитесь к этому
https://github.com/realestate-com-au/stackup

Я думаю, что AWS должен постучаться в дверь недвижимости, чтобы купить этот код и перенести его на свою интеллектуальную собственность…

+1

Не большой поклонник хакерских способов решения проблем, так как хакерство довольно быстро становится грязным.
Но для всех, кто заинтересован в том, чтобы сделать это с файлом параметров в своей тестовой среде.

s3template.yml

AWSTemplateFormatVersion: '2010-09-09'
Description: create a single S3 bucket
Parameters: 
  BucketName:
    Description: Unique name for bucket.
    Type: String
  AccessControl:
    Description: Access Control of the bucket
    Type: String
    AllowedValues:
      - Private
      - PublicRead

Resources:
  SampleBucket:
    Type: AWS::S3::Bucket
    Properties:
      BucketName: !Ref BucketName
      AccessControl: !Ref AccessControl

s3template.params

BucketName=sample-unique-bucket-123456
AccessControl=Private

Бегать :
aws cloudformation deploy --template-file ./s3template.yml --stack-name sample-testbucket --region us-east-1 --parameter-overrides $(cat s3template.params)

+1 для файлов параметров в формате YAML. Зачем заставлять кого-то смешивать наценки?

Была ли эта страница полезной?
0 / 5 - 0 рейтинги