Verwenden Sie bei Verteilungen verschiedene Ursprünge CloudFront - Amazon CloudFront

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden Sie bei Verteilungen verschiedene Ursprünge CloudFront

Wenn Sie eine Distribution erstellen, geben Sie den Ursprung an, von dem Anfragen für die Dateien CloudFront gesendet werden. Sie können mehrere verschiedene Arten von Ursprüngen mit verwenden CloudFront. Sie können beispielsweise einen Amazon S3 S3-Bucket, einen MediaStore Container, einen MediaPackage Channel, einen Application Load Balancer oder eine AWS Lambda Funktion URL verwenden.

Verwenden Sie einen Amazon S3 S3-Bucket

In den folgenden Themen werden die verschiedenen Möglichkeiten beschrieben, wie Sie einen Amazon S3 S3-Bucket als Ursprung für eine CloudFront Distribution verwenden können.

Verwenden Sie einen standardmäßigen Amazon S3 S3-Bucket

Wenn Sie Amazon S3 als Quelle für Ihre Distribution verwenden, platzieren Sie die Objekte, die Sie liefern CloudFront möchten, in einem Amazon S3 S3-Bucket. Sie können alle von Amazon S3 unterstützten Methoden zum Bereitstellen Ihrer Objekte in Amazon S3 verwenden. Sie können beispielsweise die Amazon S3 S3-Konsole oder API ein Drittanbieter-Tool verwenden. Sie können in Ihrem Bucket wie für jeden anderen standardmäßigen Amazon-S3-Bucket eine Hierarchie zum Speichern der Objekte erstellen.

Wenn Sie einen vorhandenen Amazon S3 S3-Bucket als Ihren CloudFront Ursprungsserver verwenden, ändert sich der Bucket in keiner Weise. Sie können ihn weiterhin wie gewohnt verwenden, um Amazon S3-Objekte zum Amazon S3-Standardpreis zu speichern und darauf zuzugreifen. Es fallen die regulären Amazon S3-Gebühren für die Speicherung der Objekte im Bucket an. Weitere Informationen zu den zu CloudFront verwendenden Gebühren finden Sie unter CloudFrontAmazon-Preise. Weitere Informationen zur Verwendung CloudFront mit einem vorhandenen S3-Bucket finden Sie unter CloudFront Zu einem vorhandenen Amazon S3 S3-Bucket hinzufügen.

Wichtig

Damit Ihr Bucket verwendet werden kann CloudFront, muss der Name den DNS Benennungsanforderungen entsprechen. Weitere Informationen finden Sie unter Benennungsregeln für Buckets im Benutzerhandbuch zu Amazon Simple Storage Service.

Wenn Sie einen Amazon S3 S3-Bucket als Ursprung für angeben CloudFront, empfehlen wir Ihnen, das folgende Format zu verwenden:

bucket-name.s3.region.amazonaws.com

Wenn Sie den Bucket-Namen in diesem Format angeben, können Sie die folgenden CloudFront Funktionen verwenden:

Verwenden Sie für die Angabe des Buckets nicht die folgenden Formate:

  • Den Amazon-S3-Pfadstil: s3.amazonaws.com/bucket-name

  • Der Amazon S3 CNAME

Verwenden Sie Amazon S3 Object Lambda

Wenn Sie einen Object-Lambda-Zugriffspunkt erstellen, generiert Amazon S3 automatisch ein eindeutiges Alias für Ihren Object-Lambda-Zugriffspunkt. Sie können diesen Alias anstelle eines Amazon S3 S3-Bucket-Namens als Ursprung für Ihre CloudFront Distribution verwenden.

Wenn Sie einen Object Lambda Access Point-Alias als Ursprung für verwenden CloudFront, empfehlen wir Ihnen, das folgende Format zu verwenden:

alias.s3.region.amazonaws.com

Weitere Informationen zum Finden des alias finden Sie unter Verwenden eines Alias im Bucket-Stil für Ihren Object-Lambda-Zugriffspunkt für S3-Buckets im Amazon-S3-Benutzerhandbuch.

Wichtig

Wenn Sie einen Object Lambda Access Point als Ursprung für verwenden CloudFront, müssen Sie die Origin-Zugriffskontrolle verwenden.

Ein Beispiel für einen Anwendungsfall finden Sie unter Verwenden von Amazon S3 Object Lambda mit Amazon CloudFront zur Anpassung von Inhalten für Endbenutzer.

CloudFront behandelt einen Object Lambda Access Point-Ursprung genauso wie einen standardmäßigen Amazon S3 S3-Bucket-Ursprung.

Wenn Sie Amazon S3 Object Lambda als Quelle für Ihre Distribution verwenden, müssen Sie die folgenden vier Berechtigungen konfigurieren.

Object Lambda Access Point
So fügen Sie Berechtigungen für den Object Lambda Access Point hinzu
  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die Amazon S3 S3-Konsole unter https://console.aws.amazon.com/s3/.

  2. Wählen Sie im Navigationsbereich Object-Lambda-Zugriffspunkte aus.

  3. Wählen Sie den Object-Lambda-Zugriffspunkt aus, den Sie verwenden möchten.

  4. Wählen Sie die Registerkarte Berechtigungen.

  5. Wählen Sie im Abschnitt Object-Lambda-Zugriffspunktrichtlinie die Option Bearbeiten aus.

  6. Fügen Sie die folgende Richtlinie in das Feld Richtlinie ein.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "cloudfront.amazonaws.com" }, "Action": "s3-object-lambda:Get*", "Resource": "arn:aws:s3-object-lambda:region:AWS-account-ID:accesspoint/Object-Lambda-Access-Point-name", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudfront::AWS-account-ID:distribution/CloudFront-distribution-ID" } } } ] }
  7. Wählen Sie Änderungen speichern.

Amazon S3 Access Point
So fügen Sie Berechtigungen für den Amazon S3 Access Point hinzu
  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die Amazon S3 S3-Konsole unter https://console.aws.amazon.com/s3/.

  2. Wählen Sie im Navigationsbereich Zugriffspunkte aus.

  3. Wählen Sie den Amazon S3 Access Point aus, den Sie verwenden möchten.

  4. Wählen Sie die Registerkarte Berechtigungen.

  5. Wählen Sie im Abschnitt Zugriffspunktrichtlinie die Option Bearbeiten aus.

  6. Fügen Sie die folgende Richtlinie in das Feld Richtlinie ein.

    { "Version": "2012-10-17", "Id": "default", "Statement": [ { "Sid": "s3objlambda", "Effect": "Allow", "Principal": { "Service": "cloudfront.amazonaws.com" }, "Action": "s3:*", "Resource": [ "arn:aws:s3:region:AWS-account-ID:accesspoint/Access-Point-name", "arn:aws:s3:region:AWS-account-ID:accesspoint/Access-Point-name/object/*" ], "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia": "s3-object-lambda.amazonaws.com" } } } ] }
  7. Wählen Sie Save (Speichern) aus.

Amazon S3 bucket
So fügen Sie dem Amazon S3 S3-Bucket Berechtigungen hinzu
  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die Amazon S3 S3-Konsole unter https://console.aws.amazon.com/s3/.

  2. Wählen Sie im Navigationsbereich die Option Buckets aus.

  3. Wählen Sie den Amazon-S3-Bucket aus, den Sie verwenden möchten.

  4. Wählen Sie die Registerkarte Berechtigungen.

  5. Wählen Sie im Abschnitt Bucket-Richtlinie die Option Bearbeiten aus.

  6. Fügen Sie die folgende Richtlinie in das Feld Richtlinie ein.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "*", "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ], "Condition": { "StringEquals": { "s3:DataAccessPointAccount": "AWS-account-ID" } } } ] }
  7. Wählen Sie Änderungen speichern.

AWS Lambda function
So fügen Sie der Lambda-Funktion Berechtigungen hinzu
  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die AWS Lambda Konsole unter https://console.aws.amazon.com/lambda/.

  2. Wählen Sie im Navigationsbereich Funktionen aus.

  3. Wählen Sie die AWS Lambda Funktion aus, die Sie verwenden möchten.

  4. Wählen Sie die Registerkarte Konfiguration und dann Berechtigungen aus.

  5. Wählen Sie im Abschnitt Ressourcenbasierte Richtlinienanweisungen die Option Berechtigungen hinzufügen aus.

  6. Wählen Sie AWS-Konto.

  7. Geben Sie einen Namen für die Anweisungs-ID ein.

  8. Geben Sie cloudfront.amazonaws.com als Prinzipal ein.

  9. Wählen Sie lambda:InvokeFunction im Drop-down-Menü Aktion aus:

  10. Wählen Sie Save (Speichern) aus.

Verwenden Sie Amazon S3 Access Point

Wenn Sie einen S3 Access Point verwenden, generiert Amazon S3 automatisch einen eindeutigen Alias für Sie. Sie können diesen Alias anstelle eines Amazon S3 S3-Bucket-Namens als Ursprung für Ihre CloudFront Distribution verwenden.

Wenn Sie einen Amazon S3 Access Point-Alias als Ursprung für verwenden CloudFront, empfehlen wir Ihnen, das folgende Format zu verwenden:

alias.s3.region.amazonaws.com

Weitere Informationen zum Auffinden alias von finden Sie unter Verwenden eines Alias im Bucket-Stil für Ihren S3-Bucket-Zugriffspunkt im Amazon S3 S3-Benutzerhandbuch.

Wichtig

Wenn Sie einen Amazon S3 Access Point als Ausgangspunkt für verwenden CloudFront, müssen Sie die Origin-Zugriffskontrolle verwenden.

CloudFront behandelt einen Amazon S3 Access Point-Ursprung genauso wie einen standardmäßigen Amazon S3 S3-Bucket-Ursprung.

Wenn Sie Amazon S3 Object Lambda als Quelle für Ihre Distribution verwenden, müssen Sie die folgenden beiden Berechtigungen konfigurieren.

Amazon S3 Access Point
So fügen Sie Berechtigungen für den Amazon S3 Access Point hinzu
  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die Amazon S3 S3-Konsole unter https://console.aws.amazon.com/s3/.

  2. Wählen Sie im Navigationsbereich Zugriffspunkte aus.

  3. Wählen Sie den Amazon S3 Access Point aus, den Sie verwenden möchten.

  4. Wählen Sie die Registerkarte Berechtigungen.

  5. Wählen Sie im Abschnitt Zugriffspunktrichtlinie die Option Bearbeiten aus.

  6. Fügen Sie die folgende Richtlinie in das Feld Richtlinie ein.

    { "Version": "2012-10-17", "Id": "default", "Statement": [ { "Sid": "s3objlambda", "Effect": "Allow", "Principal": {"Service": "cloudfront.amazonaws.com"}, "Action": "s3:*", "Resource": [ "arn:aws:s3:region:AWS-account-ID:accesspoint/Access-Point-name", "arn:aws:s3:region:AWS-account-ID:accesspoint/Access-Point-name/object/*" ], "Condition": { "StringEquals": {"aws:SourceArn": "arn:aws:cloudfront::AWS-account-ID:distribution/CloudFront-distribution-ID"} } } ] }
  7. Wählen Sie Save (Speichern) aus.

Amazon S3 bucket
So fügen Sie dem Amazon S3 S3-Bucket Berechtigungen hinzu
  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die Amazon S3 S3-Konsole unter https://console.aws.amazon.com/s3/.

  2. Wählen Sie im Navigationsbereich die Option Buckets aus.

  3. Wählen Sie den Amazon-S3-Bucket aus, den Sie verwenden möchten.

  4. Wählen Sie die Registerkarte Berechtigungen.

  5. Wählen Sie im Abschnitt Bucket-Richtlinie die Option Bearbeiten aus.

  6. Fügen Sie die folgende Richtlinie in das Feld Richtlinie ein.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "*", "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ], "Condition": { "StringEquals": { "s3:DataAccessPointAccount": "AWS-account-ID" } } } ] }
  7. Wählen Sie Änderungen speichern.

Verwenden Sie einen Amazon S3 S3-Bucket, der als Website-Endpunkt konfiguriert ist

Sie können einen Amazon S3 S3-Bucket, der als Website-Endpunkt konfiguriert ist, als benutzerdefinierten Ursprung mit verwendenCloudFront. Wenn Sie Ihre CloudFront Distribution konfigurieren, geben Sie für den Ursprung den statischen Amazon S3 S3-Website-Hosting-Endpunkt für Ihren Bucket ein. Dieser Wert wird in der Amazon-S3-Konsole auf der Registerkarte Properties (Eigenschaften) im Bereich Static Website Hosting (Hosten statischer Websites) angezeigt. Beispiel:

http://bucket-name.s3-website-region.amazonaws.com

Weitere Informationen zur Angabe von Amazon-S3-Endpunkten für statische Websites finden Sie unter Website-Endpunkte im Benutzerhandbuch zu Amazon Simple Storage Service.

Wenn Sie den Bucket-Namen in diesem Format als Ursprung angeben, können Sie Amazon S3-Umleitungen und benutzerdefinierte Amazon S3-Fehlerdokumente verwenden. Weitere Informationen erhalten Sie unter Konfigurieren eines benutzerdefinierten Fehlerdokuments und unter Konfigurieren einer Umleitung im Benutzerhandbuch zu Amazon Simple Storage Service. (bietet CloudFront auch benutzerdefinierte Fehlerseiten. Weitere Informationen finden Sie unterErstellen Sie eine benutzerdefinierte Fehlerseite für bestimmte HTTP Statuscodes.)

Wenn Sie einen Amazon S3 S3-Bucket als Ihren CloudFront Ursprungsserver verwenden, ändert sich der Bucket in keiner Weise. Sie können ihn weiter wie normal zu den regulären Amazon S3-Gebühren verwenden. Weitere Informationen zu den zu CloudFront verwendenden Gebühren finden Sie unter CloudFront Amazon-Preise.

Anmerkung

Wenn Sie den verwenden CloudFront API, um Ihre Distribution mit einem Amazon S3 S3-Bucket zu erstellen, der als Website-Endpunkt konfiguriert ist, müssen Sie ihn mithilfe von konfigurierenCustomOriginConfig, obwohl die Website in einem Amazon S3 S3-Bucket gehostet wird. Weitere Informationen zum Erstellen von Verteilungen mithilfe von finden Sie CreateDistributionin der CloudFront APIAmazon-Referenz. CloudFront API

CloudFront Zu einem vorhandenen Amazon S3 S3-Bucket hinzufügen

Wenn Sie Ihre Objekte in einem Amazon S3 S3-Bucket speichern, können Sie entweder festlegen, dass Benutzer Ihre Objekte direkt von S3 abrufen, oder Sie können so konfigurieren, CloudFront dass Ihre Objekte von S3 abgerufen und dann an Ihre Benutzer verteilt werden. Die Verwendung CloudFront kann kostengünstiger sein, wenn Ihre Benutzer häufig auf Ihre Objekte zugreifen, da bei höherer Nutzung der Preis für die CloudFront Datenübertragung niedriger ist als der Preis für die Amazon S3 S3-Datenübertragung. Darüber hinaus sind Downloads mit Amazon S3 allein schneller CloudFront als mit Amazon S3 allein, da Ihre Objekte näher an Ihren Benutzern gespeichert werden.

Anmerkung

Wenn Sie CloudFront die ursprungsübergreifenden Amazon S3-Einstellungen für die gemeinsame Nutzung von Ressourcen respektieren möchten, konfigurieren Sie die Konfiguration so, CloudFront dass der Origin Header an Amazon S3 weitergeleitet wird. Weitere Informationen finden Sie unter Inhalt auf der Grundlage von Anforderungsheadern zwischenspeichern.

Wenn Sie derzeit Inhalte direkt aus Ihrem Amazon S3 S3-Bucket unter Verwendung Ihres eigenen Domainnamens (z. B. example.com) anstelle des Domainnamens Ihres Amazon S3 S3-Buckets (z. B. DOC - EXAMPLE -BUCKET. s3.us-west-2.amazonaws.com) verteilen, können Sie ohne Unterbrechung hinzufügen CloudFront, indem Sie das folgende Verfahren verwenden.

Um hinzuzufügen CloudFront , wenn Sie Ihre Inhalte bereits über Amazon S3 verteilen
  1. Erstellen Sie eine CloudFront Distribution. Weitere Informationen finden Sie unter Eine Verteilung erstellen.

    Wenn Sie die Verteilung erstellen, geben Sie den Namen Ihres Amazon S3-Buckets als Ursprungs-Server an.

    Wichtig

    Damit Ihr Bucket verwendet werden kann CloudFront, muss der Name den DNS Benennungsanforderungen entsprechen. Weitere Informationen finden Sie unter Benennungsregeln für Buckets im Benutzerhandbuch zu Amazon Simple Storage Service.

    Wenn Sie a CNAME mit Amazon S3 verwenden, geben Sie das auch CNAME für Ihre Distribution an.

  2. Erstellen Sie eine Testwebseite mit Links, die auf öffentlich verfügbare Objekte in Ihrem Amazon S3-Bucket verweisen, und testen Sie diese Links. Verwenden Sie für diesen ersten Test den CloudFront Domainnamen Ihrer Distribution im ObjektURLs, zum Beispielhttps://d111111abcdef8.cloudfront.net/images/image.jpg.

    Weitere Hinweise zum Format von CloudFront URLs finden Sie unterPassen Sie das URL Format für Dateien an CloudFront.

  3. Wenn Sie Amazon S3 verwendenCNAMEs, verwendet Ihre Anwendung Ihren Domainnamen (z. B. example.com), um auf die Objekte in Ihrem Amazon S3 S3-Bucket zu verweisen, anstatt den Namen Ihres Buckets zu verwenden (z. B. DOC - EXAMPLE - BUCKET .s3.amazonaws.com). Wenn Sie Ihren Domainnamen weiterhin verwenden möchten, um auf Objekte zu verweisen, anstatt den CloudFront Domainnamen für Ihre Distribution zu verwenden (z. B. d111111abcdef8.cloudfront.net), müssen Sie Ihre Einstellungen bei Ihrem DNS Dienstanbieter aktualisieren.

    Damit Amazon S3 CNAMEs funktioniert, muss Ihr DNS Dienstanbieter einen CNAME Ressourceneintrag für Ihre Domain eingerichtet haben, der derzeit Abfragen für die Domain an Ihren Amazon S3-Bucket weiterleitet. Wenn ein Benutzer z. B. dieses Objekt anfordert:

    https://example.com/images/image.jpg

    Die Anfrage wird automatisch umgeleitet und dem Benutzer wird dieses Objekt angezeigt:

    https://DOC-EXAMPLE-BUCKET.s3.amazonaws.com/images/image.jpg

    Um Anfragen an Ihre CloudFront Distribution und nicht an Ihren Amazon S3 S3-Bucket weiterzuleiten, müssen Sie die von Ihrem DNS Dienstanbieter bereitgestellte Methode verwenden, um den CNAME Ressourcendatensatz für Ihre Domain zu aktualisieren. Dieser aktualisierte CNAME Datensatz leitet DNS Anfragen von Ihrer Domain an den CloudFront Domainnamen für Ihren Vertrieb weiter. Weitere Informationen finden Sie in der von Ihrem DNS Dienstanbieter bereitgestellten Dokumentation.

    Anmerkung

    Wenn Sie Route 53 als DNS Service verwenden, können Sie entweder einen CNAME Ressourcendatensatz oder einen Alias-Ressourcendatensatz verwenden. Informationen zum Bearbeiten von Ressourceneintragssätzen finden Sie unter Bearbeiten von Datensätzen. Informationen zu Alias-Ressourceneintragssätzen finden Sie unter Wählen zwischen Alias- und Nicht-Alias-Datensätzen. Beide Themen finden Sie im Amazon Route 53-Entwicklerhandbuch.

    Weitere Informationen zur Verwendung von CNAMEs with CloudFront finden Sie unterVerwenden Sie benutzerdefiniert, URLs indem Sie alternative Domainnamen hinzufügen () CNAMEs.

    Nachdem Sie den CNAME Ressourcendatensatz aktualisiert haben, kann es bis zu 72 Stunden dauern, bis die Änderung im gesamten DNS System wirksam ist. In der Regel geschieht dies jedoch schneller. Während dieser Zeit werden einige Anfragen für Ihre Inhalte weiterhin an Ihren Amazon S3 S3-Bucket und andere an Ihren Amazon S3-Bucket weitergeleitet. CloudFront

Verschieben Sie einen Amazon S3 S3-Bucket in einen anderen AWS-Region

Wenn Sie Amazon S3 als Ursprung für eine CloudFront Distribution verwenden und den Bucket in einen anderen verschieben AWS-Region, CloudFront kann es bis zu einer Stunde dauern, bis die Datensätze aktualisiert sind, sodass die neue Region verwendet wird, wenn beide der folgenden Bedingungen zutreffen:

  • Sie verwenden eine ursprüngliche CloudFront Zugriffsidentität (OAI), um den Zugriff auf den Bucket einzuschränken.

  • Sie verschieben den Bucket in eine Amazon S3-Region, die Signature Version 4 für die Authentifizierung erfordert.

Wenn Sie verwendenOAIs, CloudFront verwendet die Region (neben anderen Werten), um die Signatur zu berechnen, die verwendet wird, um Objekte aus Ihrem Bucket anzufordern. Weitere Informationen zu finden OAIs Sie unterVerwenden Sie eine ursprüngliche Zugriffsidentität (veraltet, nicht empfohlen). Eine Liste der AWS-Regionen unterstützten Signature Version 2 finden Sie unter Signaturprozess für Signature Version 2 in der Allgemeine Amazon Web Services-Referenz.

Um eine schnellere Aktualisierung CloudFront der Datensätze zu erzwingen, können Sie Ihre CloudFront Distribution aktualisieren, indem Sie beispielsweise das Feld Beschreibung auf der Registerkarte Allgemein in der CloudFront Konsole aktualisieren. Wenn Sie eine Distribution aktualisieren, wird CloudFront sofort die Region überprüft, in der sich Ihr Bucket befindet. Das Übertragen der Änderung auf alle Edge-Standorte sollte nur wenige Minuten in Anspruch nehmen.

Verwenden Sie einen MediaStore Container oder einen MediaPackage Channel

Um Videos zu streamen CloudFront, können Sie einen Amazon S3 S3-Bucket einrichten, der als MediaStore Container konfiguriert ist, oder einen Kanal und Endpunkte mit MediaPackage erstellen. Anschließend erstellen und konfigurieren Sie eine Distribution, um das Video CloudFront zu streamen.

Weitere Informationen und step-by-step Anweisungen finden Sie in den folgenden Themen:

Verwenden Sie einen Application Load Balancer

Wenn Ihr Ursprung ein oder mehrere HTTP (S) -Server (Webserver) sind, die auf einer oder mehreren EC2 Amazon-Instances gehostet werden, können Sie einen mit dem Internet verbundenen Application Load Balancer verwenden, um den Traffic auf die Instances zu verteilen. Ein mit dem Internet verbundener Load Balancer hat einen öffentlich auflösbaren DNS Namen und leitet Anfragen von Clients über das Internet an Ziele weiter.

Weitere Informationen zur Verwendung eines Application Load Balancers als Ausgangsbasis und dazu CloudFront, wie Sie sicherstellen können, dass Zuschauer nur über den Load Balancer auf Ihre Webserver zugreifen können CloudFront und nicht direkt auf den Load Balancer zugreifen können, finden Sie unter. Beschränken Sie den Zugriff auf Application Load Balancers

Verwenden Sie eine Lambda-Funktion URL

Eine Lambda-Funktion URL ist ein dedizierter HTTPS Endpunkt für eine Lambda-Funktion. Sie können eine Lambda-Funktion verwendenURL, um eine serverlose Webanwendung vollständig in Lambda zu erstellen. Sie können die Lambda-Webanwendung direkt über die Funktion aufrufenURL, ohne dass eine Integration mit API Gateway oder einem Application Load Balancer erforderlich ist.

Wenn Sie eine serverlose Webanwendung mithilfe von Lambda-Funktionen mit Funktion erstellen, können Sie sie hinzufügenURLs, um die folgenden Vorteile CloudFront zu erhalten:

  • Beschleunigen Ihrer Anwendung, indem Sie Inhalte näher an den Viewern zwischenspeichern

  • Verwenden eines benutzerdefinierten Domänennamens für Ihre Webanwendung

  • Mithilfe von URL CloudFront Cache-Verhalten verschiedene Pfade zu verschiedenen Lambda-Funktionen weiterleiten

  • Blockieren Sie bestimmte Anfragen mithilfe CloudFront geografischer Einschränkungen oder AWS WAF (oder beidem)

  • Verwenden Sie AWS WAF with CloudFront , um Ihre Anwendung vor bösartigen Bots zu schützen, häufige Anwendungs-Exploits zu verhindern und den Schutz vor DDoS Angriffen zu verbessern

Um eine Lambda-Funktion URL als Ursprung für eine CloudFront Distribution zu verwenden, geben Sie den vollständigen Domainnamen der Lambda-Funktion URL als Ursprungsdomäne an. Ein URL Lambda-Funktionsdomänenname verwendet das folgende Format:

function-URL-ID.lambda-url.AWS-Region.on.aws

Wenn Sie eine Lambda-Funktion URL als Ursprung für eine CloudFront Distribution verwenden, URL muss die Funktion öffentlich zugänglich sein. Verwenden Sie dazu eine der folgenden Optionen:

  • Wenn Sie Origin Access Control (OAC) verwenden, URL muss der AuthType Parameter der Lambda-Funktion den AWS_IAM Wert verwenden und die lambda:InvokeFunctionUrl Erlaubnis in einer ressourcenbasierten Richtlinie zulassen. Weitere Hinweise zur Verwendung der Lambda-Funktion URLs für finden Sie OAC unterBeschränken Sie den Zugriff auf den URL-Ursprung einer AWS Lambda Funktion.

  • Wenn Sie die Funktion nicht verwendenOAC, können Sie den AuthType Parameter der Funktion URL auf festlegen NONE und die lambda:InvokeFunctionUrl Berechtigung in einer ressourcenbasierten Richtlinie gewähren.

Sie können den Anfragen, die an den Ursprung CloudFront gesendet werden, auch einen benutzerdefinierten Origin-Header hinzufügen und Funktionscode schreiben, um eine Fehlerantwort zurückzugeben, wenn der Header nicht in der Anfrage vorhanden ist. Dadurch wird sichergestellt, dass Benutzer nur über und nicht direkt über CloudFront die Lambda-Funktion URL auf Ihre Webanwendung zugreifen können.

Weitere Informationen zur Lambda-Funktion URLs finden Sie in den folgenden Themen im AWS Lambda Entwicklerhandbuch:

Verwenden Sie Amazon EC2 (oder einen anderen benutzerdefinierten Ursprung)

Ein benutzerdefinierter Ursprung ist ein HTTP (S) -Webserver mit einem öffentlich auflösbaren DNS Namen, der Anfragen von Clients über das Internet an Ziele weiterleitet. Der HTTP (S) -Server kann auf AWS— z. B. einer EC2 Amazon-Instance — oder an einem anderen Ort gehostet werden. Ein als Website-Endpunkt konfigurierter Amazon S3-Ursprung gilt ebenfalls als benutzerdefinierter Ursprung. Weitere Informationen finden Sie unter Verwenden Sie einen Amazon S3 S3-Bucket, der als Website-Endpunkt konfiguriert ist.

Wenn Sie Ihren eigenen HTTP Server als benutzerdefinierten Ursprung verwenden, geben Sie den DNS Namen des Servers sowie die HTTPS Ports HTTP und das Protokoll an, das Sie beim Abrufen von Objekten von Ihrem Ursprung verwenden CloudFront möchten.

Die meisten CloudFront Funktionen werden unterstützt, wenn Sie einen benutzerdefinierten Ursprung verwenden, mit Ausnahme von privaten Inhalten. Sie können zwar einen signierten Inhalt verwenden, URL um Inhalte von einem benutzerdefinierten Ursprung zu verteilen, aber CloudFront um auf den benutzerdefinierten Ursprung zugreifen zu können, muss der Ursprung öffentlich zugänglich bleiben. Weitere Informationen finden Sie unter Stellen Sie private Inhalte mit signierten URLs und signierten Cookies bereit.

Folgen Sie diesen Richtlinien für die Verwendung von EC2 Amazon-Instances und anderen benutzerdefinierten Ursprüngen mitCloudFront.

  • Hosten und bereitstellen Sie dieselben Inhalte auf allen Servern, die Inhalte für denselben CloudFront Ursprung bereitstellen. Weitere Informationen finden Sie unter Ursprungseinstellungen im Thema Referenz zu den Verteilungseinstellungen.

  • Protokollieren Sie die X-Amz-Cf-Id Header-Einträge auf allen Servern, falls Sie diesen Wert für CloudFront das Debuggen benötigen AWS Support oder verwenden möchten.

  • Beschränken Sie Anfragen auf die HTTPS Ports HTTP und Ports, auf denen Ihr benutzerdefinierter Origin lauscht.

  • Synchronisieren Sie die Uhrzeit von allen Servern in der Implementierung. Beachten Sie, dass Coordinated Universal Time (UTC) für signierte URLs und signierte Cookies, für Protokolle und Berichte CloudFront verwendet wird. Wenn Sie die CloudFront Aktivität mithilfe von CloudWatch Messwerten überwachen, beachten Sie außerdem, dass dies CloudWatch auch verwendet wirdUTC.

  • Verwenden Sie redundante Server für die Behandlung von Ausfällen.

  • Informationen zur Verwendung eines benutzerdefinierten Ursprungs für die Bereitstellung privater Inhalte finden Sie unter Beschränken Sie den Zugriff auf Dateien mit benutzerdefinierten Ursprüngen.

  • Informationen zum Anfragen- und Antwortverhalten und zu unterstützten HTTP Statuscodes finden Sie unterVerhalten von Anfragen und Antworten.

Wenn Sie Amazon EC2 für eine benutzerdefinierte Herkunft verwenden, empfehlen wir Ihnen, wie folgt vorzugehen:

  • Verwenden Sie ein Amazon Machine Image, das die Software für einen Webserver automatisch installiert. Weitere Informationen finden Sie in der EC2Amazon-Dokumentation.

  • Verwenden Sie einen Elastic Load Balancing Load Balancer, um den Datenverkehr zwischen mehreren EC2 Amazon-Instances zu verarbeiten und Ihre Anwendung von Änderungen an EC2 Amazon-Instances zu isolieren. Wenn Sie beispielsweise einen Load Balancer verwenden, können Sie EC2 Amazon-Instances hinzufügen und löschen, ohne Ihre Anwendung zu ändern. Weitere Informationen finden Sie im Elastic Load Balancing-Benutzerhandbuch.

  • Wenn Sie Ihre CloudFront Distribution erstellen, geben Sie den Namen URL des Load Balancers für den Domainnamen Ihres Ursprungsservers an. Weitere Informationen finden Sie unter Eine Verteilung erstellen.

Verwenden Sie CloudFront Ursprungsgruppen

Sie können eine Ursprungsgruppe für Ihren CloudFront Ursprung angeben, wenn Sie beispielsweise das Origin-Failover für Szenarien konfigurieren möchten, in denen Sie hohe Verfügbarkeit benötigen. Verwenden Sie das Origin-Failover, um einen primären Ursprung CloudFront sowie einen zweiten Ursprung festzulegen, der CloudFront automatisch zu diesem wechselt, wenn der primäre Ursprung bestimmte HTTP Statuscode-Fehlerantworten zurückgibt.

Weitere Informationen, einschließlich der Schritte für die Einrichtung einer Ursprungsgruppe, finden Sie unter Optimieren Sie die Hochverfügbarkeit mit CloudFront Origin Failover.