Consultar saídas de recurso em outra pilha do CloudFormation - AWS CloudFormation

Consultar saídas de recurso em outra pilha do CloudFormation

Essa demonstração mostra como referenciar as saídas de uma pilha do CloudFormation em outra pilha para criar modelos mais modulares e reutilizáveis.

Em vez de incluir todos os recursos em uma única pilha, você cria recursos da AWS relacionados em pilhas separadas. Depois, você pode consultar as saídas de recursos necessárias de outras pilhas. Restringindo referências de pilha cruzada a saídas, você controla as partes de uma pilha referenciadas por outras pilhas.

Por exemplo, você pode ter uma pilha de rede com uma VPC, um grupo de segurança e uma sub-rede para aplicações web públicas e uma pilha de aplicações web públicas separadas. Para garantir que as aplicações Web usem o grupo de segurança e a sub-rede da pilha de rede, você cria uma referência de pilha cruzada que permite que a pilha de aplicações web referenciem saídas da pilha de rede. Com uma referência de pilha cruzada, os proprietários das pilhas de aplicações web não precisam criar nem manter regras ou ativos de rede.

Para criar uma referência de pilha cruzada, use o campo de saída Export a fim de sinalizar o valor de uma saída de recurso para exportação. Em seguida, use a função intrínseca Fn::ImportValue para importar o valor. Para obter mais informações, consulte Obter resultados exportados de uma pilha do CloudFormation implantada.

nota

O CloudFormation é um serviço gratuito. No entanto, você é cobrado pelos recursos da AWS incluídos nas pilhas segundo a taxa atual de cada um. Para obter mais informações sobre a definição de preço da AWS, consulte a página de detalhes de cada produto.

Etapa 1: Usar um modelo de exemplo para criar uma pilha de rede

Antes de iniciar este passo a passo, verifique se você tem permissões do IAM para usar todos os seguintes serviços: Amazon VPC, Amazon EC2 e CloudFormation.

A pilha de rede contém a VPC, o grupo de segurança e a sub-rede que você usará na pilha de aplicações web. Além desses recursos, a pilha de rede cria um gateway de Internet e tabelas de roteamento para permitir o acesso público.

Você deverá criar essa pilha antes de criar a pilha de aplicações web. Se você criar a pilha de aplicações web primeiro, ela não terá um grupo de segurança ou sub-rede.

O modelo da pilha está disponível no seguinte URL: https://s3.amazonaws.com/cloudformation-examples/user-guide/cross-stack/SampleNetworkCrossStack.template. Para ver os recursos que a pilha criará, escolha o link, que abre o modelo. Na seção Outputs, você pode ver os recursos de rede exportados pelo modelo de amostra. Os nomes dos recursos exportados são prefixados com o nome da pilha caso você exporte recursos de rede de outras pilhas. Quando importam recursos de rede, os usuários podem especificar de qual pilha os recursos são importados.

Para criar a pilha de rede
  1. Abra o console do CloudFormation e escolha Criar pilha.

  2. Escolha Template is ready (O modelo está pronto) e, na seção Specify template (Especificar modelo), selecione Amazon S3 URL (URL do Amazon S3).

  3. Copie e cole o seguinte URL na caixa de texto: https://s3.amazonaws.com/cloudformation-examples/user-guide/cross-stack/SampleNetworkCrossStack.template

  4. Escolha Próximo.

  5. Para Stack name (Nome da pilha), digite SampleNetworkCrossStack e selecione Next (Próximo).

    nota

    Registre o nome dessa pilha. Você precisará do nome da pilha quando ativar a pilha de aplicações web.

  6. Escolha Próximo. Para esta descrição, você não precisa adicionar tags nem especificar configurações avançadas.

  7. Verifique se o nome da pilha e o URL do modelo estão corretos e escolha Create stack (Criar pilha).

    Pode levar alguns minutos para que o CloudFormation crie a pilha. Aguarde até que todos os recursos tenham sido criados com êxito antes de continuar criando a pilha de aplicações web.

  8. Para monitorar o progresso, visualize os eventos da pilha. Para obter mais informações, consulte Monitorar o progresso da pilha.

Etapa 2: Usar um modelo de exemplo para criar uma pilha de aplicativos Web

A pilha de aplicações web cria uma instância EC2 que usa o grupo de segurança e a sub-rede da pilha de rede.

Você deve criar essa pilha na mesma Região da AWS que a pilha de rede.

O modelo da pilha está disponível no seguinte URL: https://s3.amazonaws.com/cloudformation-examples/user-guide/cross-stack/SampleWebAppCrossStack.template. Para ver os recursos que a pilha criará, escolha o link, que abrirá o modelo. Na seção Resources, visualize as propriedades da instância do EC2. Você pode ver como os recursos de rede são importados de outra pilha usando a função Fn::ImportValue.

Para criar a pilha de aplicações web
  1. Abra o console do CloudFormation e escolha Criar pilha.

  2. Escolha Template is ready (O modelo está pronto) e, na seção Specify template (Especificar modelo), selecione Amazon S3 URL (URL do Amazon S3).

  3. Copie e cole o seguinte URL na caixa de texto: https://s3.amazonaws.com/cloudformation-examples/user-guide/cross-stack/SampleWebAppCrossStack.template

  4. Escolha Próximo.

  5. Para Nome da pilha, digite SampleWebAppCrossStack. Na seção Parâmetros, use o valor padrão do parâmetro NetworkStackName e escolha Próximo.

    O modelo de amostra usa o valor do parâmetro para especificar de qual pilha importar valores.

  6. Escolha Próximo. Para esta descrição, você não precisa adicionar tags nem especificar configurações avançadas.

  7. Verifique se o nome da pilha e o URL do modelo estão corretos e escolha Create stack (Criar pilha).

    Pode levar alguns minutos para que o CloudFormation crie a pilha.

Etapa 3: verificar se a pilha funciona conforme o previsto

Após a criação da pilha, visualize os recursos e observe o ID da instância. Para obter mais informações sobre como visualizar recursos de pilha, consulte Visualizar informações da pilha no console do CloudFormation.

Para verificar o grupo de segurança da instância e a sub-rede, visualize as propriedades da instância no console do Amazon EC2. Caso a instância use o grupo de segurança e a sub-rede da pilha SampleNetworkCrossStack, você criou com êxito uma referência de pilha cruzada.

Use o console para visualizar as saídas da pilha e o URL do site de exemplo para verificar se a aplicação web está em execução. Para obter mais informações, consulte Visualizar informações da pilha no console do CloudFormation.

Etapa 4: limpar os recursos

Para se certificar de que você não seja cobrado por serviços indesejados, exclua as pilhas.

Para excluir as pilhas
  1. No console do CloudFormation, selecione a pilha SampleWebAppCrossStack.

  2. Escolha Actions (Ações) e selecione Delete stack (Excluir pilha).

  3. Na mensagem de confirmação, selecione Delete (Excluir).

  4. Depois que a pilha tiver sido excluída, repita as mesmas etapas para a pilha SampleNetworkCrossStack.

    nota

    Aguarde até o CloudFormation excluir por completo a pilha SampleWebAppCrossStack. Se a instância do EC2 ainda estiver em execução na VPC, o CloudFormation não excluirá a VPC na pilha SampleNetworkCrossStack.