Como resolvo o erro “Uma ou mais de suas origens ou grupos de origem não existem” no AWS CloudFormation?
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
Conteúdo relevante
- AWS OFICIALAtualizada há 4 anos