Referindo-se a um recurso existente no Modelo CF

2

Temos vários scripts do CloudFormation para criar nossa pilha.

Agora, queremos escrever (automatizar) novos scripts que serão usados apenas para recursos específicos 1 atualizados (requisito comercial).

A coisa em que estou preso é como referir a um recurso existente no meu script de atualização? Eu sei que há REF função, mas eu acredito que isso é usado apenas para referenciar recursos no mesmo script. Existe algo que a AWS fornece para se referir a um recurso existente?

Eu li que podemos usar parameters , mas existe alguma outra opção?

    
por Em Ae 21.03.2017 / 19:44

2 respostas

0

Recentemente, tive que fazer isso para algumas implantações em camadas que faziam referência a serviços compartilhados. Além dos parâmetros, aqui estão algumas outras opções:

  1. Exportações nomeadas : essa é uma É uma boa opção se você tiver alguns recursos criados por uma pilha separada do CloudFormation e desejar apenas referenciá-los (por exemplo, um administrador de infraestrutura configura a parte de nível inferior para a implantação da equipe do aplicativo).

  2. Substituição : em muitos casos, você pode precisar para fazer referência a um nome conhecido que é constante, mas o ARN varia dependendo do ID da conta da AWS. Você pode usar Fn::Sub para expandir alguns “pseudo-parâmetros” como o ID da conta ou região:

    "TaskRoleArn": { "Fn::Sub": "arn:aws:iam::${AWS::AccountId}:role/YourSharedServiceTaskRole" }

  3. Parâmetros do SSM : você pode ter uma referência dinâmica que recupera um SSM propriedade. Isso é útil para ser completamente abstraído da fonte desse valor - ele poderia ser criado pelo CloudFormation, mas poderia literalmente ser alguém executando um script de linha de comando único e ele suporta armazenamento seguro de senhas e outros segredos que podem ser configurados para evitar recuperação por qualquer pessoa que não seja o serviço de destino (por exemplo, uma função de instância do EC2 / ECS IAM) - por exemplo, usei isso para armazenar credenciais do SES:

    aws ssm put-parameter --type String --name "/project/mail/EmailHost" --value email-smtp.us-east-1.amazonaws.com aws ssm put-parameter --type String --name "/project/mail/EmailUser" --value <SES_ACCESS_KEY> aws ssm put-parameter --type SecureString --key-id alias/your-well-known-iam-kms-alias --name "/project/mail/EmailPassword" --value <SES PASSWORD>'

  4. Macros : isso foi anunciado recentemente e é muito poderoso mecanismo onde você pode ter uma função Lambda que retorna JSON arbitrário para inclusão no template. Isso poderia fazer quase qualquer coisa desde o provisionamento de recursos extras que o criador da pilha do CloudFormation não tem permissão direta para criar para procurar valores em um banco de dados e retornar um modelo configurado com, por exemplo, alocações VPC CIDR de um pool de reserva maior que é gerenciado pela organização pai.

por 13.09.2018 / 15:50
-1

A AWS usa ARNs (nome de recurso da AWS) para referenciar recursos. Aqui está a formatação geral:

arn: partição: serviço: região: conta-id: recurso arn: partição: service: region: account-id: resourcetype / resource arn: partição: serviço: region: account-id: resourcetype: resource

Você pode pesquisar mais informações link

Além disso, você pode pesquisar o ARN específico usado pelos recursos que você deseja referenciar nas páginas de documentação do serviço

    
por 22.03.2017 / 00:10