Eu usei aws-cli para atualizar minhas pilhas e quero usar um arquivo yaml externo (dev.yaml) como arquivo de parâmetros como abaixo:
aws cloudformation update-stack --stack-name test --template-body file://./api-test.yaml --parameters file://./dev.yaml
Em dev.yaml
, só tem:
---
- ParameterKey: APICacheClusterSize
ParameterValue: '1.6'
No entanto, recebi esta mensagem de erro quando executo o comando de atualização acima:
Error parsing parameter '--parameters': Expected: '=', received: '-' for input:
---
- ParameterKey: APICacheClusterSize
^
ParameterValue: '1.6'
Se eu usar o arquivo JSON com o mesmo contexto abaixo e usá-lo em vez de dev.yaml
, funcionará bem:
[
{
"ParameterKey": "APICacheClusterSize",
"ParameterValue": "1.6"
}
]
Então, o arquivo de parâmetros externos para aws cloudformation pode ser um arquivo YAML? ou será...?
Olá, atualmente não temos planos para oferecer suporte ao YAML como parte dos argumentos da linha de comando. Vou marcar isso como uma solicitação de recurso, pois posso ver como pode ser útil para algumas pessoas.
O conteúdo do arquivo que você fornece para --parameters é carregado e despejado diretamente como um argumento, então você só pode ter o conteúdo do arquivo em um dos dois formatos:
Sintaxe abreviada:
ParameterKey=string,ParameterValue=string,UsePreviousValue=boolean
ou sintaxe JSON:
[
{
"ParameterKey": "string",
"ParameterValue": "string",
"UsePreviousValue": true|false
}
]
Vou apoiar este pedido de recurso.
vou secundar também
+1
Por favor. Isso é crítico para nós.
+1
absolutamente +1
+1 permitir dados formatados em YAML para --template-body
mas não para --parameters
é estranho
👍
+1
+1
+1
como você pode fornecer um modelo em yaml, você também deve poder fornecer os parâmetros em yaml
eu acho que esse recurso é um must-have
+1
+100
+1
+100
+1
" https://gist.github.com/mbailey/2f7c878eed123cab6fb125117f35aecc
"
" yamlise - veja YAML ao editar arquivos JSON no vim.
"
" Criado para pessoas com fobia de JSON, isso deve
" só será usado quando todas as tentativas de dominar JSON
" falharam. http://www.json.org/
"
"Espero que não seja tarde demais para essas pessoas!
"'Por favor. Isso é fundamental para nós.'
" https://github.com/aws/aws-cli/issues/2275#issuecomment -277829948
"
"Instalação
" ============
" 1. Instale o cfn-flip https://github.com/awslabs/aws-cfn-template-flip
" 2. Inclua este arquivo em seu ~/.vimrc
" 3. vim cloudformation-params.json
"VOCÊ DEVE VER AGORA O YAML QUE DESEJA
" 4. :wq
" O arquivo agora deve conter o JSON que a Amazon CLI espera
"
:augroup yamlise
: autocmd!
: autocmd BufReadPost,FileReadPost *.json '[,']!cfn-flip
: autocmd BufWritePre,FileWritePre *.json '[,']!cfn-flip
: autocmd FileAppendPre *.json '[,']!cfn-flip
:augroup END
+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
+Inf
+1
+1
+1
+1
+1
Aqui está uma solução simples usando a substituição do processo Bash e cfn-flip :
aws cloudformation ... --parameters file://<(cfn-flip parameters.yml)
+1
+1
++
+0,5
+1
++
+1!
Não entendo por que você teria o modelo em YAML, mas os parâmetros em JSON. Parece uma omissão estranha e espero que a AWS esteja trabalhando... por favor?
+1
+1
Bom Dia!
Estamos encerrando este problema aqui no GitHub, como parte de nossa migração para UserVoice para solicitações de recursos envolvendo a AWS CLI.
Isso nos permitirá obter os recursos mais importantes para você, facilitando a pesquisa e a exibição de suporte para os recursos mais importantes para você, sem diluir a conversa com relatórios de bugs.
Como uma rápida cartilha do UserVoice (se ainda não estiver familiarizado): depois que uma ideia é postada, as pessoas podem votar nas ideias e a equipe do produto responderá diretamente às sugestões mais populares.
Importamos solicitações de recursos existentes do GitHub - Pesquise esse problema lá!
E não se preocupe, esse problema ainda existirá no GitHub para o bem da posteridade. Como é uma importação somente de texto da postagem original para o UserVoice, ainda teremos em mente os comentários e discussões que já existem aqui no problema do GitHub.
O GitHub continuará sendo o canal para relatar bugs.
Mais uma vez, esse problema agora pode ser encontrado pesquisando o título em: https://aws.uservoice.com/forums/598381-aws-command-line-interface
-A equipe de SDKs e ferramentas da AWS
Essa entrada pode ser encontrada especificamente no UserVoice em: https://aws.uservoice.com/forums/598381-aws-command-line-interface/suggestions/33168310-cloudformation-external-parameter-file-do-not-supp
+1
Com base no feedback da comunidade, decidimos retornar solicitações de recursos para problemas do GitHub.
+1
+1
+1
+100
+1
+1
+1
+1
e +1000 para mais consistência geral, por favor ;)
+1
Esta edição tem 2 anos ;_;
@matthewflannery não, na verdade são apenas 587 dias.
+1
@Yaowenjie 587/365 = 1,608 ~ 2 anos
+1
mais 11!1!1um!!1!11
:+1:
:heavy_plus_sign: :100:
👍
+1
faltam dois meses para a comemoração do segundo aniversário desta edição, pessoal! 👨👩👧👦🎉🎉🎊🎊👨👨👧👦
Como minha equipe está acostumada com YAML (todos os nossos modelos estão em YAML), tenho uma automação de shell que transforma um arquivo YAML em um arquivo json e passa isso para o CF. Isso mostra (pelo menos para mim) o quanto esse recurso é desejado - fazer com que os clientes criem sua própria automação em torno de funcionalidades básicas como essa não é uma resposta.
Além disso, devemos observar que toda a maneira parametersKey/ParamaterValue de trabalhar para o CloudFormation é estúpida.
Poderíamos ter o modelo do CloudFormation em YAML e fornecer o arquivo de parâmetros em JSON?
@Yashswarnkar Sim - você pode ter o modelo em YAML e os parâmetros em JSON. Esse problema ocorre porque os parâmetros só podem estar em JSON - os arquivos YAML não são compatíveis, apesar do modelo estar em YAML.
+1 Realmente gostaria de poder adicionar comentários aos meus arquivos de parâmetros e executá-los a partir da CLI. Algum plano ainda para adicionar suporte a .yaml para o comando create-stack da CLI com --parameters para oferecer suporte a yaml?
Algum ETA para este recurso?
+1
Quase 2 anos e ainda sem yaml para parâmetros... :(
+1
+1
+1
Com o SSM agora disponível com strings seguras e maneiras de decodificá-las, estou pensando em executar um script para colocar as variáveis na conta da AWS e, em seguida, referenciá-las a partir do modelo cloudformation ... Alguém tem outras idéias como esta ?
De acordo com os comentários acima, você pode usar 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
Este é obviamente um recurso em alta demanda - por que não houve nenhum movimento sobre isso, apesar do que parece ser centenas de pessoas solicitando?
+1
Caso de uso REAL, é ter que especificar JSON dentro de um parâmetro, caso em que JSON é um pesadelo com a necessidade de escapar de aspas ...
[
{
"ParameterKey": "DistributionJSON",
"ParameterValue": "{\"Account_ID_1\":\"region_1,region_2\",\"Account_ID_2\":\"region_1\"}"
}
]
Comparado com:
- ParameterKey: DistributionJSON
ParameterValue: '{"Account_ID_1":"region_1,region_2","Account_ID_2":"region_1"}'
Nós vamos? Não há mais atualizações?
Nós vamos? Não há mais atualizações?
Calma, é só janeiro de 2019
Ei, como estão esses caras com a fusão de PRs?
Eu consideraria escrever isso se soubesse que a equipe regularmente mesclava PRs de pessoas de fora de sua organização.
Nenhuma idéia. Eu acho que há demanda suficiente para isso, eles vão implementá-lo eventualmente.
isso talvez devesse ficar aberto para sempre e todos que estão nele podem ser amigos e ter uma conferência todos os anos chamada 'Payameter Fam' (como em yaml parameter fam) onde todos nos reunimos e discutimos nosso trauma anti-yaml.
+1
👍
+1
+1
3 anos, 90% das APIs usando YAML, muito +1 chato e AWS coçando as bolas...
Eu realmente gostaria que o yaml simplesmente usasse comentários para os arquivos de configuração/descomentar itens/etc
+1
É junho de 2019, não entendo por que a AWS ainda não está resolvendo esse problema. Eles estão contratando tantas pessoas todos os anos
Vamos Sério? Vamos colocar isso em movimento
+1
+1
+1
+1
+1
+1
+1
esperando, esperando...
ainda esperando!
Ainda os parâmetros são apenas Json?
Esta questão tem idade suficiente para iniciar a pré-escola.
Estarei no re:Invent 2019 se alguém quiser se relacionar com essa questão e falar merda com Jeff Barr, et. ai no twitter.
Isso seria adorável
+1
+1
+1
+1
acabei de bater nesta rocha, posso obter suporte aos parâmetros YAML, por favor?
Meu projeto atual ama YAML (não sou :))
Você pode adicionar suporte XML também? Não consigo enviar isso via SOAP. O suporte da AWS é essencial no Windows Forms.
+1
+1
Na quinta-feira, 31 de outubro de 2019 às 16h04 Bernie Durfee [email protected]
escrevi:
+1
—
Você está recebendo isso porque comentou.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/aws/aws-cli/issues/2275?email_source=notifications&email_token=AHCULG57Z7SJHTRO43JC6LLQRL6ZPA5CNFSM4CVAW4OKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOECYKMJY#issuecomment-4
ou cancelar
https://github.com/notifications/unsubscribe-auth/AHCULG3TRJ5FGXG3NOVORBTQRL6ZPANCNFSM4CVAW4OA
.
+1
+1
Alguma atualização :/ ?
+1
+1
id gostaria de poder comentar no meu arquivo de parâmetro dividindo os parâmetros atualizáveis da cloudformation e os não atualizáveis.
por exemplo. Eu tentei atualizar meu ID de instantâneo de um volume.
-> Propriedades de volume diferentes de AutoEnableIO, tipo, tamanho e IOPS não podem ser atualizadas. Altere as propriedades de volta para os valores anteriores e atualize a pilha novamente.
Estava tentando criar uma pilha com o seguinte comando: aws cloudformation create-stack --stack-name myfirsttest --region us-west-2 --template-body file://testcfn.yml
Mas deu a seguinte mensagem de erro:
Erro ao analisar o parâmetro '--template-body': Não é possível carregar o arquivo de parâmetro: testcfn.yml : [Errno 2] Arquivo ou diretório inexistente: 'testcfn.yml'
Meu arquivo testcfn.yml é o seguinte:
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.
Eba, suporte yaml!!!
› 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.
Isso ainda não é uma coisa?? Ou eu perdi que é em algum lugar?
Para qualquer pessoa interessada em usar .yaml em seus parâmetros, consulte este
https://github.com/realestate-com-au/stackup
Acho que a AWS deveria estar batendo na porta das imobiliárias para comprar esse código e movê-lo para o IP deles .....
+1
Não é um grande fã de maneiras hacky de resolver problemas, já que hacky se torna confuso muito rápido.
Mas para qualquer pessoa interessada em fazer isso com o arquivo params em seu ambiente de teste.
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
Corre :
aws cloudformation deploy --template-file ./s3template.yml --stack-name sample-testbucket --region us-east-1 --parameter-overrides $(cat s3template.params)
+1 para arquivos de parâmetros como YAML. Por que forçar alguém a misturar marcações?
Comentários muito úteis
Vou apoiar este pedido de recurso.