Come posso risolvere l'errore "Una o più delle tue origini o gruppi di origine non esistono" in AWS CloudFormation?

3 minuti di lettura
0

Quando provo a creare o aggiornare uno stack AWS CloudFormation che contiene una distribuzione Amazon CloudFront, ricevo il seguente errore: "Una o più delle tue origini o gruppi di origine non esistono."

Breve descrizione

Questo errore si verifica quando la proprietà TargetOriginId di CacheBehavior o DefaultCacheBehavior non corrisponde a un ID di origine o a un gruppo di origine CloudFront. Questo ID è una stringa definita dall'utente che identifica in modo univoco un'origine o un gruppo di origine. Devi definire il gruppo di origine nel modello e gestire le tue risorse tramite CloudFormation.

Suggerimento: è consigliabile evitare di apportare modifiche alle risorse dello stack esterne a CloudFormation. Ciò può creare una mancata corrispondenza tra il modello dello stack e lo stato attuale delle risorse dello stack. Quando aggiorni o elimini lo stack, la mancata corrispondenza può causare errori.

Risoluzione

1.    Verifica che TargetOriginId corrisponda all'ID di una delle origini o dei gruppi di origine definiti. Immetti l'ID di origine corretto come parametro per DefaultCacheBehavior o CacheBehavior.

Nel seguente esempio di frammenti del modello JSON e YAML, DefaultCacheBehavior definisce e utilizza una distribuzione CloudFront con un'unica origine. Inoltre, l'origine utilizza un'identità di accesso all'origine (OAI) per l'autenticazione. Negli esempi, l'ID di origine è impostato su 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"
          }
        }
      }
    }
  }
}

Nota: sostituisci my-s3-origin con il tuo ID di origine, my-s3-bucket.s3.amazonaws.com con il tuo nome di dominio e /my-content con il tuo percorso di origine.

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.    Prova la tua distribuzione CloudFront per verificare che lo stack CloudFormation sia stato creato o aggiornato.


Informazioni correlate

Utilizzo di origini diverse con le distribuzioni CloudFront

Creazione di uno stack nella console AWS CloudFormation

Migliori pratiche di AWS CloudFormation

AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa