Como resolvo o erro “Uma ou mais de suas origens ou grupos de origem não existem” no AWS CloudFormation?

3 minuto de leitura
0

Quando tento criar ou atualizar uma pilha do AWS CloudFormation que contém uma distribuição do Amazon CloudFront, recebo o seguinte erro: “Uma ou mais de suas origens ou grupos de origem não existem.”

Breve descrição

Esse erro ocorre quando a propriedade TargetOriginId de CacheBehavior ou DefaultCacheBehavior não corresponde a um ID de origem ou grupo de origem do CloudFront. Esse ID é uma string definida pelo usuário que identifica de forma exclusiva uma origem ou um grupo de origem. Você deve definir o grupo de origem no modelo e gerenciar seus recursos por meio do CloudFormation.

Dica: É uma prática recomendada evitar fazer alterações para empilhar recursos fora do CloudFormation. Isso pode criar uma incompatibilidade entre o modelo da pilha e o estado atual dos recursos da pilha. Quando você atualiza ou exclui a pilha, a incompatibilidade pode causar erros.

Resolução

1.    Confirme se o TargetOriginId corresponde ao ID de uma das origens ou grupos de origem definidos. Insira o ID de origem correto como parâmetro para DefaultCacheBehavior ou CacheBehavior.

No exemplo a seguir de trechos de modelos JSON e YAML, DefaultCacheBehavior define e consome uma distribuição do CloudFront com uma única origem. Além disso, a origem usa uma identidade de acesso de origem (OAI) para autenticação. Nos exemplos, o ID de origem é definido como my-s3-origin.

JSON:

{
  "AWSTemplateFormatVersion": "2010-09-09T00:00:00.000Z",
  "Resources": {
    "cloudfrontdistribution": {
      "Type": "AWS::CloudFront::Distribution",
      "Properties": {
        "DistributionConfig": {
          "DefaultCacheBehavior": {
            "ViewerProtocolPolicy": "https-only",
            "DefaultTTL": 3600,
            "ForwardedValues": {
              "Cookies": {
                "Forward": "none"
              },
              "QueryString": true
            },
            "TargetOriginId": "my-s3-origin"
          },
          "Enabled": true,
          "Origins": [
            {
              "DomainName": "my-s3-bucket.s3.amazonaws.com",
              "Id": "my-s3-origin",
              "S3OriginConfig": {
                "OriginAccessIdentity": {
                  "Fn::Sub": "origin-access-identity/cloudfront/${CloudFrontOriginAccessIdentity}"
                }
              },
              "OriginPath": "/my-content"
            }
          ]
        }
      }
    },
    "CloudFrontOriginAccessIdentity": {
      "Type": "AWS::CloudFront::CloudFrontOriginAccessIdentity",
      "Properties": {
        "CloudFrontOriginAccessIdentityConfig": {
          "Comment": {
            "Ref": "AWS::StackName"
          }
        }
      }
    }
  }
}

Observação: Substitua my-s3-origin pelo seu ID de origem, my-s3-bucket.s3.amazonaws.com pelo seu nome de domínio e /my-content pelo caminho de origem.

YAML:

AWSTemplateFormatVersion: 2010-09-09
Resources:
  cloudfrontdistribution:
    Type: AWS::CloudFront::Distribution
    Properties:
      DistributionConfig:
        DefaultCacheBehavior:
          ViewerProtocolPolicy: https-only
          DefaultTTL: 3600
          ForwardedValues:
            Cookies:
              Forward: none
            QueryString: true
          TargetOriginId: my-s3-origin
        Enabled: true
        Origins:
          - DomainName: 'my-s3-bucket.s3.amazonaws.com'
            Id: my-s3-origin
            S3OriginConfig:
              OriginAccessIdentity: !Sub origin-access-identity/cloudfront/${CloudFrontOriginAccessIdentity}
            OriginPath: /my-content

  CloudFrontOriginAccessIdentity:
    Type: AWS::CloudFront::CloudFrontOriginAccessIdentity
    Properties:
      CloudFrontOriginAccessIdentityConfig:
        Comment: !Sub ${AWS::StackName}

2.    Teste sua distribuição do CloudFront para verificar se sua pilha do CloudFormation foi criada ou atualizada.


Informações relacionadas

Uso de várias origens com distribuições do CloudFront

Criação de uma pilha no console do AWS CloudFormation

Práticas recomendadas do AWS CloudFormation

AWS OFICIAL
AWS OFICIALAtualizada há 2 anos