AWS Cloudformation: ferramenta CLI para renderizar modelo

1

Dado um modelo da AWS que contém chamadas para funções intrínsecas e possíveis referências a parâmetros, existe uma ferramenta da CLI que permite passar valores para os parâmetros e gerar o arquivo de modelo correspondente?

Por exemplo, de

{
  "Resource" : { "Fn::Join" : [ "", [ "xxx-" , { "Ref": "SomeParam" }, "-zzz" ] ] } 
}

Fornecendo que SomeParam tenha valor bar , você deve obter um arquivo de texto legível com:

{
 "Resource" : "xxx-bar-yyy"
}

Eu olhei os vários aws cloudformation subcomandos (eu tinha esperanças de verify-template , mas sem sucesso ...

(Justificativa: criar / atualizar pilha leva muito tempo, e eu não tenho a inteligência para obter um arquivo de formação em nuvem pela primeira vez. Ou o primeiro n vezes, por falar nisso, por um vergonhoso também alto valor de n .)

    
por phtrivier 12.04.2016 / 16:41

2 respostas

1

O próprio CloudFormation não possui o recurso que você descreve atualmente. A Amazon reconheceu que algo semelhante a um recurso --dry-run para o comando create-stack seria útil, por exemplo, esta discussão:

link

Soluções alternativas sugeridas:

  1. Dividir pilhas em partes menores (aninhamento) e, em seguida, executá-las independentemente para obter iterações de teste mais rápidas. Isso não funciona para todos os casos de uso e ainda está sujeito ao desempenho lento da API / mecanismo do CloudFormation.

  2. Experimente moto - uma biblioteca Python que imita a API da AWS especificamente para testes - parece que a API principal do CloudFormation foi implementada, embora eu não tenha realmente usado essa lib para CFN especificamente para YMMV.

    link

  3. Se você não fez checkout do Terraform, ele tem o conceito de planos de execução , através do comando terraform plan que basicamente faz o que você descreve, mas para as pilhas do Terraform.

    link

por 26.05.2016 / 23:06
0

create-change-set é provavelmente o mais próximo que você get: o problema é que funções como Ref e Fn::GetAttr podem ser chamadas em recursos que só existirão quando a pilha for executada (ou seja, como ela informa a ID da instância na qual ela criará sua instância?)

    
por 02.02.2017 / 04:14