Utilizzo della piattaforma Python di 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à.

Utilizzo della piattaforma Python di Elastic Beanstalk

Questo argomento descrive come configurare, creare ed eseguire le applicazioni Python su Elastic Beanstalk.

AWS Elastic Beanstalk supporta una serie di rami di piattaforma per diverse versioni del linguaggio di programmazione Python. Vedi Python in AWS Elastic Beanstalk Documento sulle piattaforme per un elenco completo.

Le applicazioni web Python possono essere eseguite dietro un server proxy con. WSGI Elastic Beanstalk fornisce Gunicorn come server predefinito. WSGI

Puoi aggiungere un file Procfile al tuo pacchetto sorgente per specificare e configurare il server per la tua applicazione. WSGI Per informazioni dettagliate, consultare Configurazione del WSGI server con un Procfile su Elastic Beanstalk.

È possibile utilizzare i file Pipfile.lock e Pipfile creati da Pipenv per specificare le dipendenze dei pacchetti Python e altri requisiti. Per informazioni dettagliate sulla definizione delle dipendenze, consulta Specificazione delle dipendenze utilizzando un file dei requisiti su Elastic Beanstalk.

Elastic Beanstalk offre opzioni di configurazione che puoi utilizzare per personalizzare il software che viene eseguito EC2 sulle istanze nell'ambiente Elastic Beanstalk. Puoi configurare le variabili di ambiente necessarie per la tua applicazione, accedere alla rotazione dei log su Amazon S3 e mappare le cartelle nel codice sorgente dell'applicazione che contengono i file statici ai percorsi serviti dal server proxy.

Sono disponibili opzioni di configurazione specifiche della piattaforma nella console Elastic Beanstalk per la modifica della configurazione di un ambiente in esecuzione. Per conservare la configurazione dell'ambiente una volta terminata, puoi utilizzare configurazioni salvate per salvare le impostazioni e applicarle successivamente a un altro ambiente.

Per salvare le impostazioni nel codice sorgente, puoi includere i file di configurazione. Le impostazioni nei file di configurazione vengono applicate ogni volta che crei un ambiente o distribuisci l'applicazione. Puoi inoltre utilizzare i file di configurazione per installare pacchetti, eseguire script o altre operazioni di personalizzazione delle istanze durante le distribuzioni.

Le impostazioni applicate nella console Elastic Beanstalk sostituiscono le stesse impostazioni nei file di configurazione, se esistenti. Ciò ti consente di disporre di impostazioni predefinite nei file di configurazione, sostituibili con impostazioni specifiche per l'ambiente nella console. Per ulteriori informazioni sulla precedenza e altri metodi di modifica delle impostazioni, consulta Opzioni di configurazione.

Per i pacchetti Python disponibili in pip, puoi includere un file di requisiti nella radice del codice sorgente dell'applicazione. Elastic Beanstalk installa tutti i pacchetti delle dipendenze specificati in un file dei requisiti durante la distribuzione. Per informazioni dettagliate, consultare Specificazione delle dipendenze utilizzando un file dei requisiti su Elastic Beanstalk.

Per informazioni dettagliate sui vari modi in cui è possibile estendere una piattaforma Elastic Beanstalk basata su Linux, consulta Estensione delle piattaforme Elastic Beanstalk Linux.

Configurazione dell'ambiente Python

Le impostazioni della piattaforma Python ti consentono di ottimizzare il comportamento delle tue istanze Amazon. EC2 Puoi modificare la configurazione dell'istanza Amazon dell'ambiente Elastic Beanstalk utilizzando EC2 la console Elastic Beanstalk.

Usa la console Elastic Beanstalk per configurare le impostazioni del processo Python, abilita AWS X-Ray, abilita la rotazione dei log su Amazon S3 e configura le variabili che l'applicazione può leggere dall'ambiente.

Per configurare l'ambiente Python nella console Elastic Beanstalk
  1. Apri la console Elastic Beanstalk e, nell'elenco Regioni, seleziona la Regione AWS.

  2. Nel pannello di navigazione selezionare Environments (Ambienti), quindi selezionare il nome dell'ambiente dall'elenco.

    Nota

    Se si dispone di molti ambienti, utilizzare la barra di ricerca per filtrare l'elenco degli ambienti.

  3. Nel riquadro di navigazione, seleziona Configuration (Configurazione).

  4. Nella categoria di configurazione Monitoring  (Monitoraggio), scegli Edit (Modifica).

Impostazioni Python

  • Proxy server (Server proxy): il server proxy da utilizzare nelle istanze dell'ambiente. Per impostazione predefinita, viene utilizzato nginx.

  • WSGIPercorso: il nome o il percorso del file principale dell'applicazione. Ad esempio, application.py o django/wsgi.py.

  • NumProcesses— Il numero di processi da eseguire su ciascuna istanza dell'applicazione.

  • NumThreads— Il numero di thread da eseguire in ogni processo.

AWS X-Ray impostazioni

Opzioni di log

La sezione Log Options (Opzioni di log) ha due impostazioni:

  • Instance profile (Profilo dell'istanza): specifica il profilo dell'istanza che dispone dell'autorizzazione ad accedere al bucket Amazon S3 associato all'applicazione.

  • Abilita la rotazione dei file di registro su Amazon S3: specifica se i file di log per le EC2 istanze Amazon dell'applicazione vengono copiati nel bucket Amazon S3 associato all'applicazione.

File statici

Per migliorare le prestazioni, puoi utilizzare la sezione File statici per configurare il server proxy in modo che serva file statici (ad esempio HTML o immagini) da un set di directory all'interno della tua applicazione web. Per ogni directory, è possibile impostare il percorso virtuale per la mappatura delle directory. Quando il server proxy riceve una richiesta da un file nel percorso specificato, questo serve il file direttamente anziché instradare la richiesta all'applicazione.

Per informazioni dettagliate sulla configurazione di file statici utilizzando file di configurazione o la console Elastic Beanstalk, consulta Fornire i file statici.

Per impostazione predefinita, il server proxy in un ambiente Python serve qualsiasi file in una cartella denominata static nel percorso /static. Ad esempio, se il codice sorgente dell'applicazione contiene un file con nome logo.png in una cartella chiamata static, il server proxy lo servirà agli utenti su subdomain.elasticbeanstalk.com/static/logo.png. È possibile configurare mappature aggiuntive come indicato in questa sezione.

Proprietà dell'ambiente

Puoi utilizzare le proprietà dell'ambiente per fornire informazioni alla tua applicazione e configurare variabili di ambiente. Ad esempio, puoi creare una proprietà di ambiente denominata CONNECTION_STRING che specifica una stringa di connessione che la tua applicazione può utilizzare per connettersi a un database.

All'interno dell'ambiente Python in esecuzione in Elastic Beanstalk, questi valori sono accessibili tramite il dizionario os.environ di Python. Per ulteriori informazioni, consulta http://docs.python.org/library/os.html.

Puoi utilizzare un codice simile al seguente per accedere alle chiavi e ai parametri:

import os endpoint = os.environ['API_ENDPOINT']

Le proprietà dell'ambiente sono inoltre in grado di fornire informazioni a un framework. Ad esempio, è possibile creare una proprietà denominata DJANGO_SETTINGS_MODULE per configurare Django in modo che utilizzi un modulo specifico di impostazioni. A seconda dell'ambiente, il valore potrebbe essere development.settings, production.settings e così via.

Per ulteriori informazioni, consultare Proprietà dell'ambiente e altre impostazioni software.

Spazio dei nomi di configurazione di Python

È possibile utilizzare un file di configurazione per impostare le opzioni di configurazione ed eseguire alte attività di configurazione delle istanze durante le distribuzioni. Le opzioni di configurazione possono essere specifiche della piattaforma o essere applicate a tutte le piattaforme del servizio Elastic Beanstalk nel suo complesso. Le opzioni di configurazione sono organizzate in namespace.

La piattaforma Python definisce le opzioni negli spazi dei nomi aws:elasticbeanstalk:environment:proxy, aws:elasticbeanstalk:environment:proxy:staticfiles e aws:elasticbeanstalk:container:python.

Il seguente file di configurazione di esempio specifica le impostazioni delle opzioni di configurazione per creare una proprietà di ambiente denominata DJANGO_SETTINGS_MODULE, scegliere il server proxy Apache, specificare due opzioni di file statici che mappano una directory denominata statichtml sul percorso /html e una directory denominata staticimages sul percorso /images e specificare le impostazioni aggiuntive nello spazio dei nomi aws:elasticbeanstalk:container:python. Questo spazio dei nomi contiene opzioni che consentono di specificare la posizione dello WSGI script nel codice sorgente e il numero di thread e processi in cui eseguire. WSGI

option_settings: aws:elasticbeanstalk:application:environment: DJANGO_SETTINGS_MODULE: production.settings aws:elasticbeanstalk:environment:proxy: ProxyServer: apache aws:elasticbeanstalk:environment:proxy:staticfiles: /html: statichtml /images: staticimages aws:elasticbeanstalk:container:python: WSGIPath: ebdjango.wsgi:application NumProcesses: 3 NumThreads: 20
Note
  • Se utilizzi una versione della piattaforma Amazon Linux AMI Python (precedente ad Amazon Linux 2), sostituisci il valore WSGIPath per con. ebdjango/wsgi.py Il valore nell'esempio funziona con il WSGI server Gunicorn, che non è supportato nelle versioni della AMI piattaforma Amazon Linux.

  • Inoltre, queste versioni della piattaforma precedenti utilizzano uno spazio dei nomi diverso per la configurazione dei file statici, ovvero aws:elasticbeanstalk:container:python:staticfiles. Ha gli stessi nomi di opzioni e semantica dello spazio dei nomi dei file statici standard.

I file di configurazione, supportano inoltre diverse chiavi per modificare ulteriormente il software delle istanze del tuo ambiente. Questo esempio utilizza la chiave pacchetti per installare Memcached con yum e i comandi dei container per eseguire comandi che consentono di configurare il server durante la distribuzione:

packages: yum: libmemcached-devel: '0.31' container_commands: collectstatic: command: "django-admin.py collectstatic --noinput" 01syncdb: command: "django-admin.py syncdb --noinput" leader_only: true 02migrate: command: "django-admin.py migrate" leader_only: true 03wsgipass: command: 'echo "WSGIPassAuthorization On" >> ../wsgi.conf' 99customize: command: "scripts/customize.sh"

In Elastic Beanstalk sono disponibili varie opzioni di configurazione per la personalizzazione dell'ambiente. Oltre ai file di configurazione, puoi anche impostare le opzioni di configurazione utilizzando la console, le configurazioni salvate, l'EB CLI o AWS CLI. Opzioni di configurazionePer ulteriori informazioni, vedere.