

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.

# Ändern Sie HTTP-Header, wenn Sie von F5 zu einem Application Load Balancer auf AWS migrieren
<a name="modify-http-headers-when-you-migrate-from-f5-to-an-application-load-balancer-on-aws"></a>

*Sachin Trivedi, Amazon Web Services*

## Zusammenfassung
<a name="modify-http-headers-when-you-migrate-from-f5-to-an-application-load-balancer-on-aws-summary"></a>

Wenn Sie eine Anwendung, die einen F5 Load Balancer verwendet, zu Amazon Web Services (AWS) migrieren und einen Application Load Balancer auf AWS verwenden möchten, ist die Migration von F5-Regeln für Header-Änderungen ein häufiges Problem. Ein Application Load Balancer unterstützt keine Header-Änderungen, aber Sie können Amazon CloudFront als Content Delivery Network (CDN) und Lambda @Edge verwenden, um Header zu ändern.

Dieses Muster beschreibt die erforderlichen Integrationen und bietet Beispielcode für die Header-Änderung mithilfe von AWS CloudFront und Lambda @Edge.

## Voraussetzungen und Einschränkungen
<a name="modify-http-headers-when-you-migrate-from-f5-to-an-application-load-balancer-on-aws-prereqs"></a>

**Voraussetzungen**
+ Eine lokale Anwendung, die einen F5-Load Balancer mit einer Konfiguration verwendet, die den HTTP-Header-Wert ersetzt durch `if, else` Weitere Informationen zu dieser Konfiguration finden Sie unter [HTTP: :header](https://clouddocs.f5.com/api/irules/HTTP__header.html) in der F5-Produktdokumentation. 

**Einschränkungen**
+ Dieses Muster gilt für die Anpassung des F5-Load Balancer-Headers. Informationen zur Unterstützung anderer Load Balancer von Drittanbietern finden Sie in der Load Balancer-Dokumentation.
+ Die Lambda-Funktionen, die Sie für Lambda @Edge verwenden, müssen sich in der Region USA Ost (Nord-Virginia) befinden.

## Architektur
<a name="modify-http-headers-when-you-migrate-from-f5-to-an-application-load-balancer-on-aws-architecture"></a>

Das folgende Diagramm zeigt die Architektur auf AWS, einschließlich des Integrationsflusses zwischen dem CDN und anderen AWS-Komponenten.

![Architektur für Header-Modifikation mithilfe von Amazon CloudFront und Lambda @Edge](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/00abbe3c-2453-4291-9b24-b488dced4868/images/4ee9a19e-6da2-4c5a-a8bc-19d3918a166e.png)


## Tools
<a name="modify-http-headers-when-you-migrate-from-f5-to-an-application-load-balancer-on-aws-tools"></a>

**AWS-Services**
+ [Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html) ─ Ein Application Load Balancer ist ein vollständig verwalteter AWS-Load-Balancing-Service, der auf der siebten Ebene des Open Systems Interconnection (OSI) -Modells funktioniert. Er verteilt den Datenverkehr auf mehrere Ziele und unterstützt erweiterte Routing-Anfragen, die auf HTTP-Headern und -Methoden, Abfragezeichenfolgen und host- oder pfadbasiertem Routing basieren.
+ [Amazon CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Introduction.html) — Amazon CloudFront ist ein Webservice, der die Verteilung Ihrer statischen und dynamischen Webinhalte wie .html-, .css-, .js- und Bilddateien an Ihre Benutzer beschleunigt. CloudFront stellt Ihre Inhalte über ein weltweites Netzwerk von Rechenzentren bereit, die als Edge-Standorte bezeichnet werden, um die Latenz zu verringern und die Leistung zu verbessern.
+ [Lambda @Edge](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-at-the-edge.html) ─ Lambda @Edge ist eine Erweiterung von AWS Lambda, mit der Sie Funktionen ausführen können, um den bereitgestellten Inhalt anzupassen. CloudFront Sie können Funktionen in der Region USA Ost (Nord-Virginia) erstellen und die Funktion dann einer CloudFront Distribution zuordnen, um Ihren Code automatisch auf der ganzen Welt zu replizieren, ohne Server bereitstellen oder verwalten zu müssen. Dies reduziert die Latenz und verbessert die Benutzererfahrung.

**Code**

Der folgende Beispielcode bietet einen Blueprint zum Ändern von CloudFront Antwort-Headern. Folgen Sie den Anweisungen im Abschnitt *Epics*, um den Code bereitzustellen.

```
exports.handler = async (event, context) => {
    const response = event.Records[0].cf.response;
    const headers = response.headers;


    const headerNameSrc = 'content-security-policy';
    const headerNameValue = '*.xyz.com';


    if (headers[headerNameSrc.toLowerCase()]) {
        headers[headerNameSrc.toLowerCase()] = [{
            key: headerNameSrc,
            value: headerNameValue,
        }];
        console.log(`Response header "${headerNameSrc}" was set to ` +
                    `"${headers[headerNameSrc.toLowerCase()][0].value}"`);
    }
    else {
            headers[headerNameSrc.toLowerCase()] = [{
            key: headerNameSrc,
            value: headerNameValue,
            }];
    }
    return response;
};
```

## Epen
<a name="modify-http-headers-when-you-migrate-from-f5-to-an-application-load-balancer-on-aws-epics"></a>

### Erstellen Sie eine CDN-Distribution
<a name="create-a-cdn-distribution"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine CloudFront Webdistribution.  | In diesem Schritt erstellen Sie eine CloudFront Verteilung, in der Sie angeben, von CloudFront wo aus Inhalte bereitgestellt werden sollen. Außerdem erfahren Sie, wie Sie die Inhaltsbereitstellung nachverfolgen und verwalten können.<br />Um eine Verteilung mithilfe der Konsole zu erstellen, melden Sie sich bei der AWS-Managementkonsole an, öffnen Sie die [CloudFront Konsole](https://console.aws.amazon.com/cloudfront/v3/home) und folgen Sie dann den Schritten in der [CloudFront Dokumentation](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-creating-console.html). | Cloud-Administrator | 

### Lambda @Edge -Funktion erstellen und bereitstellen
<a name="create-and-deploy-the-lambda-edge-function"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Lambda @Edge -Funktion und stellen Sie sie bereit. | Sie können eine Lambda @Edge -Funktion erstellen, indem Sie einen Blueprint zum Ändern von CloudFront Antwortheadern verwenden. (Andere BluePrints sind für verschiedene Anwendungsfälle verfügbar; weitere Informationen finden Sie in der CloudFront Dokumentation unter [Lambda @Edge -Beispielfunktionen](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-examples.html).) <br />Um eine Lambda @Edge -Funktion zu erstellen:[See the AWS documentation website for more details](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modify-http-headers-when-you-migrate-from-f5-to-an-application-load-balancer-on-aws.html) | AWS-Administrator | 
| Stellen Sie die Lambda @Edge -Funktion bereit. | Folgen Sie den Anweisungen in [Schritt 4](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-edge-how-it-works-tutorial.html#lambda-edge-how-it-works-tutorial-add-trigger) des *Tutorials: Erstellen einer einfachen Lambda @Edge -Funktion* in der CloudFront Amazon-Dokumentation, um den CloudFront Trigger zu konfigurieren und die Funktion bereitzustellen. | AWS-Administrator | 

## Zugehörige Ressourcen
<a name="modify-http-headers-when-you-migrate-from-f5-to-an-application-load-balancer-on-aws-resources"></a>

**CloudFront Dokumentation**
+ [Anfrage- und Antwortverhalten für benutzerdefinierte Ursprünge](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html) 
+ [Mit Distributionen arbeiten](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-working-with.html) 
+ [Lambda @Edge -Beispielfunktionen](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-examples.html) 
+ [Anpassung am Edge mit Lambda @Edge](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-at-the-edge.html)
+ [Tutorial: Eine einfache Lambda @Edge -Funktion erstellen](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-edge-how-it-works-tutorial.html)