Ich möchte zusätzliche Listener für AWS-Elastic-Beanstalk-Umgebungen erstellen, die einen gemeinsamen Load Balancer verwenden.
Kurzbeschreibung
Wenn Sie einen gemeinsam genutzten Load Balancer mit Elastic Beanstalk verwenden, können Sie mit der Optionseinstellung aws:elbv2:listener:listener_port oder der Elastic-Beanstalk-Konsole keine zusätzlichen Listener erstellen. Das liegt daran, dass Elastic Beanstalk den Load Balancer nicht verwaltet.
Sie können mit .ebextension benutzerdefinierte Ressourcen verwenden, um zusätzliche Listener für eine Elastic-Beanstalk-Umgebung mit einem gemeinsam genutzten Load Balancer zu erstellen.
**Hinweis:**Es hat sich bewährt, je nach dem Lebenszyklus der Umgebung zusätzliche Listener zuzuordnen und die Listener zu entfernen, wenn Sie die Umgebung beenden.
Lösung
-
Erstellen Sie einen Application Load Balancer, der einen Standard-Listener und eine Standard-Zielgruppe enthält.
-
Erstellen Sie eine YAML-Konfigurationsdatei mit dem Namen additional-listener.config:
Resources: AdditionalHttpListener:
Type: AWS::ElasticLoadBalancingV2::Listener
Properties:
LoadBalancerArn:
"Fn::GetOptionSetting":
Namespace: "aws:elbv2:loadbalancer"
OptionName: "SharedLoadBalancer"
DefaultActions:
- Type: forward
TargetGroupArn:
Ref: AWSEBV2LoadBalancerTargetGroup
Port: 8080
Protocol: HTTP
**Hinweis:**Die vorherige YAML-Konfigurationsdatei folgt der AWS-CloudFormation-Spezifikation für die Ressource AWS::ElasticLoadBalancingV2: :Listener.
- Fügen Sie die Konfigurationsdatei dem Ordner .ebextensions hinzu, der Teil des Anwendungsquellpakets ist.
4.Erstellen Sie eine ZIP-Datei des aktualisierten Anwendungsquellpakets.
- Verwenden Sie die ZIP-Datei, um eine neue Elastic-Beanstalk-Umgebung zu erstellen. Oder aktualisieren Sie eine bestehende Umgebung, die mit dem gemeinsam genutzten Load Balancer aus dem vorherigen Schritt konfiguriert wurde.
Die Konfigurationsdatei erstellt einen HTTP-Listener auf Port 8080 für den gemeinsam genutzten Load Balancer, der Ihrer Elastic-Beanstalk-Umgebung zugeordnet ist. Anschließend leitet der Listener den gesamten Datenverkehr an den Standardprozess weiter. Um dem Listener Regeln hinzuzufügen, verwenden Sie die Ressourcendefinition AWS::ElasticLoadBalancingV2::ListenerRule, um die Konfigurationsdatei zu erweitern. Da dieser Listener als zusätzliche Ressource als Teil der Elastic-Beanstalk-Umgebung erstellt wird, wird der Listener entfernt, wenn die Umgebung beendet wird. Weitere Informationen finden Sie unter Konfigurieren eines gemeinsam genutzten Application Load Balancers.