BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias Amazon anuncia extensibilidade para o AWS CloudFormation com macros do AWS Lambda Powered

Amazon anuncia extensibilidade para o AWS CloudFormation com macros do AWS Lambda Powered

Com o AWS CloudFormation, os desenvolvedores podem modelar e definir sua infraestrutura como codigo. Agora a Amazon anunciou um novo recurso da AWS CloudFormation chamada de Macros, que permite aos desenvolvedores estender a sintaxe nativa dos modelos do CloudFormation chamando as transformações ativadas pelo AWS Lambda.

O AWS CloudFormation é um bloco de construção essencial na plataforma da AWS, com muitos serviços dependendo dele. Desde o seu lançamento inicial em 2011, o CloudFormation evoluiu para o estado atual com a mais recente adição de Macros. Uma macro no AWS CloudFormation tem dois componentes: uma definição e uma implementação. Um desenvolvedor cria uma definição começando com o tipo de recurso do CloudFormation, AWS::CloudFormation::Macro, que descreve a função lambda a ser usada e como a macro deve ser chamada.

Type: "AWS::CloudFormation::Macro"
Properties:
  Description: String
  FunctionName: String
  LogGroupName: String
  LogRoleARN: String
  Name: String

Na definição, o Name deve ser exclusivo e a referência a função Lambda no FunctionName precisa estar na mesma região que a macro. Quando o desenvolvedor executa o modelo de macro, ele ficará disponível para outros modelos também. A implementação da macro é uma função do Lambda e espera uma carga útil do JSON.

{
    "region": "us-east-1",
    "accountId": "$ACCOUNT_ID",
    "fragment": { ... },
    "transformId": "$TRANSFORM_ID",
    "params": { ... },
    "requestId": "$REQUEST_ID",
    "templateParameterValues": { ... }
}

O fragmento na carga útil do JSON contém um modelo inteiro ou partes relevantes do modelo. Observe que o fragmento também será JSON, independentemente de o modelo ser YAML. Além disso, a função Lambda retorna uma resposta JSON contendo:

  • Um ID de requisição, o mesmo que ele recebe na requisição;
  • Um campo de status contendo sucesso ou outros valores que falharão no ChangeSet;
  • E um fragmento contendo o JSON do CloudFormation válido do modelo transformado.

Quando os desenvolvedores querem usar a macro, eles podem chamar Fn::Transform com os parâmetros necessários.

AWSTemplateFormatVersion: 2010-09-09
Resources:
  MyS3Bucket:
    Type: 'AWS::S3::Bucket'
    Fn::Transform:
      Name: EchoMacro
      Parameters:
        Key: Value

No caso de um desenvolvedor precisar analisar um modelo inteiro, ele poderá incluí-lo na lista de transformações no modelo. Ao executar esse modelo, as transformações serão coletadas em um conjunto de alterações, chamando a função especificada de cada macro e retornando o modelo final de acordo com a postagem do blog.

 
Fonte: https://aws.amazon.com/blogs/aws/cloudformation-macros/

Rendall Hunt, evangelista técnico sênior da AWS, disse na postagem sobre o anúncio de macros:

O poder real aqui é que você pode estender sua infraestrutura existente como código, com código. As possibilidades permitidas por essa nova funcionalidade são virtualmente ilimitadas.

Existem várias macros de referência, como ShortHand e String Functions, que os desenvolvedores podem explorar para se familiarizar com as macros. O novo recurso Macros no AWS CloudFormation está disponível em todas as regiões da AWS que fornecem o AWS Lambda. Além disso, não há cobrança adicional de CloudFormation para Macros, o que significa que os clientes só recebem cobranças da função padrão do AWS Lambda.

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT