Como resolvo o erro “Falha interna” ao tentar criar ou atualizar uma pilha no CloudFormation?

5 minuto de leitura
0

Quero resolver o erro “Falha interna” no AWS CloudFormation.

Breve descrição

Se você estiver criando ou atualizando sua pilha do CloudFormation, poderá receber um erro “Falha interna” quando uma operação em um recurso falhar. Você também pode receber esse erro se sua pilha falhar na implantação.

Uma operação em um recurso pode falhar se:

  • Seus recursos ou propriedades estiverem definidos com valores incorretos. Para resolver esse problema, conclua as etapas na seção Implantar uma pilha de testes para encontrar os valores incorretos para seus recursos ou propriedades.
  • Houver falha em um fluxo de trabalho interno. Para resolver esse problema usando o AWS CloudTrail, conclua as etapas na seção Encontrar as operações de API que falharam em seus logs de eventos do CloudTrail.

Por fim, sua pilha pode falhar na implantação se você passar valores incorretos para a seção Saídas do seu modelo do CloudFormation. Para resolver esse erro, conclua as etapas na seção Verificar os valores na seção Saídas do seu modelo do CloudFormation.

Observação: As etapas a seguir se aplicam somente aos erros “Internal Failure” (Falha interna) que você recebe ao tentar criar ou atualizar uma pilha no CloudFormation.

Resolução

Implantar uma pilha de testes para encontrar os valores incorretos dos seus recursos ou propriedades

Para encontrar os valores incorretos das propriedades ou atributos do seu recurso, implante uma pilha de testes com um modelo do CloudFormation que inclua somente o recurso que falhou.

Se sua pilha de testes for implantada com sucesso, siga as etapas na seção Encontrar as operações de API que falharam nos logs de eventos do CloudTrail.

Se a implantação da pilha de testes falhar, continue removendo propriedades e atributos não necessários da pilha de testes até encontrar os valores incorretos.

No cenário de exemplo a seguir, você recebe um erro “Internal Failure” (Falha interna) quando o CloudFormation tenta criar um recurso AWS::Config::ConformancePack com o AWS Config. Você recebe um erro porque a propriedade DeliveryS3Bucket usa uma sintaxe incorreta. A propriedade DeliveryS3Bucket aceita somente um nome de bucket como valor (por exemplo: bucketname). Um caminho de arquivo que inclui o nome do bucket não é um valor aceitável (por exemplo: s3://bucketname).

AWSTemplateFormatVersion: 2010-09-09
Resources:
  CloudFormationCanaryPack:
    Type: AWS::Config::ConformancePack
    Properties:
      ConformancePackName: ConformancePackName
      DeliveryS3Bucket: s3://bucketname            # Incorrect value for DeliveryS3Bucket
      TemplateS3Uri: s3://bucketname/prefix

Encontrar as operações de API que falharam em seus registros de eventos do CloudTrail

1.    Abra o console do CloudTrail.

2.    No painel de navegação, selecione o Histórico de eventos.

3.    Em Intervalo de tempo, insira um intervalo de tempo para isolar a chamada de API que falhou e selecione Aplicar.

**Dica:**Em De, insira a hora em que o recurso entrou no status CREATE_IN_PROGRESS ou UPDATE_IN_PROGRESS em sua pilha do CloudFormation. Em A, insira a hora em que a chamada de API falhou.

4.    Para pesquisar além da exibição padrão de eventos no Histórico de eventos, use filtros de atributos.

Observação:Por padrão, oHistórico de eventos usa um filtro Somente leitura definido como falso. O resultado do filtro Somente leitura mostra somente eventos de gravação de atividades de API e exclui eventos do tipo “somente leitura” da lista de eventos exibidos.

Você pode usar EventName para filtrar pelo nome do evento retornado. Se você conhece a ação de API usada para criar ou atualizar um recurso, poderá usar um filtro EventName somente para chamadas de API específicas. Por exemplo, a pilha do CloudFormation usa a ação de API do AWS Config PutConformancePack ao criar um recurso AWS::Config::ConformancePack. Isso significa que você pode filtrar somente pela API PutConformancePack. Você pode usar o EventSource para filtrar pelo serviço da AWS que fez a solicitação da API. Isso significa que você pode percorrer uma lista de fontes de eventos e escolher o recurso apropriado usado em seu modelo do CloudFormation.

5.    Para identificar a causa raiz da falha, reveja a mensagem de erro do evento retornado.

Observação: Algumas falhas na operação da API exigem que você atualize seu modelo original do CloudFormation e depois realize uma implantação de teste para confirmar se o erro foi resolvido.

Verificar os valores na seção Saídas do seu modelo do CloudFormation

Em seu modelo do CloudFormation, confirme que os valores na seção Saídas não contêm erros de sintaxe. Por exemplo, remova todos os espaços à direita.

Se você recuperar atributos de recursos com referências dinâmicas, confirme se os atributos estão disponíveis durante a implantação da pilha. Para simular isso fora do CloudFormation, faça o seguinte:

1.    Faça uma chamada de API Create* ou Update* para o tipo de recurso com o atributo que falhou (para criar ou modificar).

2.    Faça uma chamada de API Describe* para recuperar os atributos atuais do recurso durante o processo de criação ou atualização da pilha.

O cenário de exemplo a seguir demonstra um erro interno retornado por uma pilha quando o atributo ReplicationInstancePrivateIpAddresses do recurso AWS::DMS::ReplicationInstance é passado para as Saídas.

No exemplo a seguir, o atributo IP privado da instância está disponível somente após o recurso ReplicationInstance mudar seu status para disponível. Se o recurso ReplicationInstance não estiver no status disponível no momento em que a pilha processa as Saídas, o CloudFormation não poderá recuperar o atributo IP privado. Sendo assim, a implantação falhará.

AWSTemplateFormatVersion: 2010-09-09
Resources:
  BasicReplicationInstance:
    Type: AWS::DMS::ReplicationInstance
    Properties:
      ReplicationInstanceClass: dms.t2.small
Outputs:
  DmsInstanceIP:
    Value: !GetAtt BasicReplicationInstance.ReplicationInstancePrivateIpAddresses

Informações relacionadas

Resolução de problemas do AWS CloudFormation

Visualização de eventos com o Histórico de eventos do CloudTrail

AWS OFICIAL
AWS OFICIALAtualizada há 3 anos