Gruppen von Elastic Beanstalk Umgebungen erstellen oder aktualisieren - AWS Elastic Beanstalk

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.

Gruppen von Elastic Beanstalk Umgebungen erstellen oder aktualisieren

Mit dem AWS Elastic Beanstalk Compose Environments API können Sie Gruppen von Elastic Beanstalk Beanstalk-Umgebungen in einer einzigen Anwendung erstellen und aktualisieren. Jede Umgebung in der Gruppe kann eine separate Komponente einer serviceorientierten Architekturanwendung ausführen. Das Compose Environments API benötigt eine Liste von Anwendungsversionen und einen optionalen Gruppennamen. Elastic Beanstalk erstellt eine Umgebung für jede Anwendungsversion oder, wenn die Umgebungen bereits vorhanden ist, stellt die Anwendungsversionen darin bereit.

Erstellen Sie Links zwischen Elastic Beanstalk-Umgebungen zur Benennung einer Umgebung in Abhängigkeit von einer anderen. Wenn Sie eine Gruppe von Umgebungen mit dem erstellen Compose EnvironmentsAPI, erstellt Elastic Beanstalk abhängige Umgebungen erst, nachdem deren Abhängigkeiten aktiv sind. Weitere Informationen zu Umgebungs-Links finden Sie unter Verknüpfungen zwischen Elastic Beanstalk-Umgebungen erstellen.

The Compose Environments API verwendet ein Umgebungsmanifest, um Konfigurationsdetails zu speichern, die von Gruppen von Umgebungen gemeinsam genutzt werden. Jede Komponentenanwendung muss über eine env.yaml-Konfigurationsdatei im Quell-Bundle der Anwendung verfügen, in der die Parameter angegeben werden, mit denen die Umgebung erstellt wird.

Compose Environments erfordert, dass EnvironmentName und SolutionStack im Umgebungsmanifest für jede Komponentenanwendung angegeben werden.

Sie können das Compose Environments API mit der Elastic Beanstalk Beanstalk-Befehlszeilenschnittstelle (EBCLI) AWS CLI, das oder ein verwenden. SDK Anweisungen Verwalten mehrerer Elastic Beanstalk-Umgebungen als Gruppe mit der EB CLI für EB CLI finden Sie unter.

Unter Verwendung des Compose Environments API

Beispielsweise könnten Sie eine Anwendung namens Media Library erstellen, mit der Benutzer Bilder und Videos hochladen und verwalten können, die in Amazon Simple Storage Service (Amazon S3) gespeichert sind. Die Anwendung verfügt über eine Frontend-Umgebung, front, für die Ausführung einer Webanwendung, mit der Benutzer einzelne Dateien hoch- und herunterladen, ihre Bibliothek anzeigen Batch-Verarbeitungsjobs initiieren können.

Anstatt die Jobs direkt zu verarbeiten, fügt die Front-End-Anwendung Jobs zu einer SQS Amazon-Warteschlange hinzu. Die zweite Umgebung ruft worker Jobs aus der Warteschlange ab und verarbeitet sie. workerverwendet einen G2-Instanztyp, der eine hohe Leistung bietetGPU, während er auf einem kostengünstigeren generischen Instanztyp ausgeführt werden front kann.

Sie organisieren den Projektordner Media Library in separate Verzeichnisse für jede Komponente, wobei jedes Verzeichnis eine Umgebungs-Definitionsdatei (env.yaml) mit den Quellcode enthält:

~/workspace/media-library |-- front | `-- env.yaml `-- worker `-- env.yaml

Die folgenden Auflistung zeigt die env.yaml-Datei für jede Komponentenanwendung.

~/workspace/media-library/front/env.yaml

EnvironmentName: front+ EnvironmentLinks: "WORKERQUEUE" : "worker+" AWSConfigurationTemplateVersion: 1.1.0.0 EnvironmentTier: Name: WebServer Type: Standard SolutionStack: 64bit Amazon Linux 2015.09 v2.0.4 running Java 8 OptionSettings: aws:autoscaling:launchconfiguration: InstanceType: m4.large

~/workspace/media-library/worker/env.yaml

EnvironmentName: worker+ AWSConfigurationTemplateVersion: 1.1.0.0 EnvironmentTier: Name: Worker Type: SQS/HTTP SolutionStack: 64bit Amazon Linux 2015.09 v2.0.4 running Java 8 OptionSettings: aws:autoscaling:launchconfiguration: InstanceType: g2.2xlarge

Nachdem Sie eine Anwendungsversion für die Anwendungskomponenten Frontend (front-v1) und Worker (worker-v1) erstellt haben, rufen Sie die Compose Environments API mit den Versionsnamen auf. In diesem Beispiel verwenden wir den, AWS CLI um den API aufzurufen.

# Create application versions for each component: ~$ aws elasticbeanstalk create-application-version --application-name media-library --version-label front-v1 --process --source-bundle S3Bucket="amzn-s3-demo-bucket",S3Key="front-v1.zip" { "ApplicationVersion": { "ApplicationName": "media-library", "VersionLabel": "front-v1", "Description": "", "DateCreated": "2015-11-03T23:01:25.412Z", "DateUpdated": "2015-11-03T23:01:25.412Z", "SourceBundle": { "S3Bucket": "amzn-s3-demo-bucket", "S3Key": "front-v1.zip" } } } ~$ aws elasticbeanstalk create-application-version --application-name media-library --version-label worker-v1 --process --source-bundle S3Bucket="amzn-s3-demo-bucket",S3Key="worker-v1.zip" { "ApplicationVersion": { "ApplicationName": "media-library", "VersionLabel": "worker-v1", "Description": "", "DateCreated": "2015-11-03T23:01:48.151Z", "DateUpdated": "2015-11-03T23:01:48.151Z", "SourceBundle": { "S3Bucket": "amzn-s3-demo-bucket", "S3Key": "worker-v1.zip" } } } # Create environments: ~$ aws elasticbeanstalk compose-environments --application-name media-library --group-name dev --version-labels front-v1 worker-v1

Die dritte Anfrage erstellt zwei Umgebungen, front-dev und worker-dev. Das API erstellt die Namen der Umgebungen, indem es die in der env.yaml Datei EnvironmentName angegebenen Werte mit der im Compose Environments Aufruf angegebenen group name Option verkettet, getrennt durch einen Bindestrich. Die Gesamtlänge dieser beiden Optionen und der Bindestrich dürfen nicht größer als die maximal zulässige Umgebungsnamenlänge von 23 Zeichen.

Die in der front-dev Umgebung ausgeführte Anwendung kann auf den Namen der SQS Amazon-Warteschlange zugreifen, die an die worker-dev Umgebung angehängt ist, indem sie die WORKERQUEUE Variable liest. Weitere Informationen zu Umgebungs-Links finden Sie unter Verknüpfungen zwischen Elastic Beanstalk-Umgebungen erstellen.