Creazione e aggiornamento di gruppi di ambienti Elastic Beanstalk - AWS Elastic Beanstalk

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Creazione e aggiornamento di gruppi di ambienti Elastic Beanstalk

Con l' AWS Elastic Beanstalk Compose EnvironmentsAPI, puoi creare e aggiornare gruppi di ambienti Elastic Beanstalk all'interno di una singola applicazione. Ogni ambiente del gruppo può eseguire un componente separato di un'applicazione con architettura orientata ai servizi. L'API Compose Environments utilizza un elenco di versioni dell'applicazione e un nome di gruppo opzionale. Elastic Beanstalk crea un ambiente per ciascuna versione dell'applicazione oppure, se gli ambienti esistono già, vi distribuisce le versioni delle applicazioni.

Crea i collegamenti tra gli ambienti Elastic Beanstalk per designare un ambiente come dipendenza di un altro. Quando si crea un gruppo di ambienti con l'API Compose Environments, Elastic Beanstalk crea ambienti dipendenti solo dopo che le rispettive dipendenze sono attive e in esecuzione. Per ulteriori informazioni sui collegamenti degli ambienti, consulta Creazione di collegamenti tra gli ambienti Elastic Beanstalk.

L'API Compose Environments utilizza un manifest di ambiente per archiviare i dettagli di configurazione che sono condivisi da gruppi di ambienti. Per ogni applicazione componente deve essere presente un file di configurazione env.yaml nel bundle di origine dell'applicazione che specifichi i parametri utilizzati per creare il rispettivo ambiente.

Compose Environments richiede che vengano specificati EnvironmentName e SolutionStack nel manifest dell'ambiente per ogni applicazione componente.

Puoi utilizzare l'Compose EnvironmentsAPI con l'interfaccia a riga di comando Elastic Beanstalk (EB CLI), o un SDK. AWS CLI Per istruzioni su CLI EB, vedi Gestione di più ambienti elastici Elastic Beanstalk come gruppo con la CLI EB.

Uso dell'API Compose Environments

Ad esempio, puoi creare un'applicazione denominata Media Library che consenta agli utenti di caricare e gestire immagini e video archiviati in Amazon Simple Storage Service (Amazon S3). L'applicazione ha un ambiente di front-end, front, che esegue un'applicazione Web che consente agli utenti di caricare e scaricare singoli file, visualizzare la libreria e avviare processi di elaborazione in batch.

Invece di elaborare i processi direttamente, l'applicazione front-end aggiunge un processo a una coda Amazon SQS. Il secondo ambiente, worker, preleva le attività dalla coda e le elabora. worker utilizza un tipo di istanza G2 che dispone di una GPU ad alte prestazioni, mentre front può essere eseguito su un tipo di istanza generico più conveniente.

È possibile organizzare la cartella del progetto, Media Library, in directory separate per ogni componente, con ciascuna directory contenente un file di definizione dell'ambiente (env.yaml), ognuno con il proprio codice sorgente:

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

I seguenti elenchi mostrano il file env.yaml per ogni applicazione componente.

~/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

Dopo aver creato una versione dell'applicazione per i componenti applicazione front-end (front-v1) e lavoratore (worker-v1), chiama l'API Compose Environments con i nomi di versione. In questo esempio, utilizziamo per chiamare l' AWS CLI API.

# Create application versions for each component: ~$ aws elasticbeanstalk create-application-version --application-name media-library --version-label front-v1 --process --source-bundle S3Bucket="DOC-EXAMPLE-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": "DOC-EXAMPLE-BUCKET", "S3Key": "front-v1.zip" } } } ~$ aws elasticbeanstalk create-application-version --application-name media-library --version-label worker-v1 --process --source-bundle S3Bucket="DOC-EXAMPLE-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": "DOC-EXAMPLE-BUCKET", "S3Key": "worker-v1.zip" } } } # Create environments: ~$ aws elasticbeanstalk compose-environments --application-name media-library --group-name dev --version-labels front-v1 worker-v1

La terza chiamata crea due ambienti, front-dev e worker-dev. L'API crea i nomi degli ambienti concatenando il nome EnvironmentName specificato nel file env.yaml con l'opzione group name specificata nella chiamata Compose Environments, separati da un trattino. La lunghezza totale di queste due opzioni e del trattino non deve superare la lunghezza massima consentita per i nomi di ambiente, ovvero 23 caratteri.

L'applicazione in esecuzione nell'ambiente front-dev può accedere al nome della coda Amazon SQS collegato all'ambiente worker-dev leggendo la variabile WORKERQUEUE. Per ulteriori informazioni sui collegamenti degli ambienti, consulta Creazione di collegamenti tra gli ambienti Elastic Beanstalk.