Я использовал 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? или будет...?
Привет, в настоящее время у нас нет планов по поддержке 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
pip install cfn_flip
cat <(cfn-flip parameters.yaml)
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. Зачем заставлять кого-то смешивать наценки?
Самый полезный комментарий
Я поддержу этот запрос функции.