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 Funktions-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-Konsole oder -API oder 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

  • Den 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 Amazon S3 S3-Konsole an AWS Management Console und öffnen Sie sie 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 aus.

Amazon S3 Access Point
So fügen Sie Berechtigungen für den Amazon S3 Access Point hinzu
  1. Melden Sie sich bei der Amazon S3 S3-Konsole an AWS Management Console und öffnen Sie sie 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 Speichern.

Amazon S3 bucket
So fügen Sie dem Amazon S3 S3-Bucket Berechtigungen hinzu
  1. Melden Sie sich bei der Amazon S3 S3-Konsole an AWS Management Console und öffnen Sie sie 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 aus.

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 Speichern.

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 Amazon S3 S3-Konsole an AWS Management Console und öffnen Sie sie 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 Speichern.

Amazon S3 bucket
So fügen Sie dem Amazon S3 S3-Bucket Berechtigungen hinzu
  1. Melden Sie sich bei der Amazon S3 S3-Konsole an AWS Management Console und öffnen Sie sie 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 aus.

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. (stellt CloudFront auch benutzerdefinierte Fehlerseiten bereit. 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 die CloudFront API verwenden, 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 der CloudFront API finden Sie CreateDistributionin der Amazon CloudFront API-Referenz.

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, indem Sie das CloudFront 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 einen CNAME mit Amazon S3 verwenden, geben Sie den CNAME für Ihre Verteilung ebenfalls 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 in den Objekt-URLs, https://d111111abcdef8.cloudfront.net/images/image.jpg z. B.

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

  3. Wenn Sie Amazon-S3-CNAMEs verwenden, verweist Ihre Anwendung mit dem Domänennamen (z. B. example.com) auf die Objekte in Ihrem Amazon-S3-Bucket, anstatt den Namen des Buckets (z. B. DOC-EXAMPLE-BUCKET.s3.amazonaws.com) zu verwenden. Wenn Sie weiterhin Ihren Domainnamen 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 korrekt funktionieren, muss Ihr DNS-Serviceanbieter über einen CNAME-Ressourcendatensatz für Ihre Domäne verfügen, der Abfragen für die Domäne 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-Ressourceneintrag für Ihre Domain zu aktualisieren. Dieser aktualisierte CNAME-Eintrag leitet DNS-Anfragen von Ihrer Domain an den CloudFront Domainnamen für Ihre Distribution weiter. Weitere Informationen finden Sie in der Dokumentation Ihres DNS-Serviceanbieters.

    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 Hinweise zur Verwendung von CNAMEs mit finden Sie CloudFront unter. Verwenden Sie benutzerdefinierte URLs, indem Sie alternative Domainnamen (CNAMes) hinzufügen

    Wenn Sie den CNAME-Ressourcendatensatz aktualisiert haben, kann es bis zu 72 Stunden dauern, bis die Änderungen im gesamten DNS-System übernommen werden, auch wenn das in der Regel schneller geschieht. 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 CloudFront Origin Access Identity (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 OAIs verwenden, CloudFront verwendet die Region (neben anderen Werten), um die Signatur zu berechnen, die verwendet wird, um Objekte aus Ihrem Bucket anzufordern. Weitere Informationen über OAIs finden Sie unter Verwenden 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 Amazon EC2 EC2-Instances gehostet werden, können Sie einen mit dem Internet verbundenen Application Load Balancer verwenden, um den Datenverkehr 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-Funktions-URL

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

Wenn Sie eine serverlose Webanwendung mithilfe von Lambda-Funktionen mit Funktions-URLs erstellen, können Sie sie hinzufügen, 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

  • Verschiedene URL-Pfade mithilfe von CloudFront Cache-Verhalten an verschiedene 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-Funktions-URL als Ursprung für eine CloudFront Distribution zu verwenden, geben Sie den vollständigen Domainnamen der Lambda-Funktions-URL als Ursprungsdomäne an. Ein Domänenname der Lambda-Funktions-URL weist das folgende Format auf:

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

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

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

  • Wenn Sie OAC nicht verwenden, können Sie den AuthType Parameter der Funktions-URL auf festlegen NONE und die lambda:InvokeFunctionUrl Erlaubnis 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 enthalten ist. Dadurch wird sichergestellt, dass Benutzer nur über die URL der Lambda-Funktion und nicht direkt über die CloudFront URL der Lambda-Funktion auf Ihre Webanwendung zugreifen können.

Weitere Informationen zu Lambda-Funktions-URLs finden Sie in den folgenden Themen im Entwicklerhandbuch zu AWS Lambda :

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 Amazon EC2 EC2-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 zusammen mit den HTTP- und HTTPS-Ports und dem 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 eine signierte URL verwenden, 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 Amazon EC2 EC2-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 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 Anforderungen von HTTP- und HTTPS-Ports, die Ihr benutzerdefinierter Ursprung überwacht.

  • Synchronisieren Sie die Uhrzeit von allen Servern in der Implementierung. Beachten Sie, dass für signierte URLs und signierte Cookies, für Protokolle und Berichte die koordinierte Weltzeit (UTC) CloudFront verwendet wird. Beachten Sie außerdem, dass bei der Überwachung von CloudFront Aktivitäten mithilfe von CloudWatch Messwerten CloudWatch auch UTC verwendet wird.

  • 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 zu Anfrage- und Antwortverhalten sowie zu unterstützten HTTP-Statuscodes finden Sie unter Verhalten von Anfragen und Antworten.

Wenn Sie für einen benutzerdefinierten Ursprung Amazon EC2 verwenden, sollten Sie wie folgt vorgehen:

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

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

  • Wenn Sie Ihre CloudFront Distribution erstellen, geben Sie die 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.