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à.
Fase 3: distribuzione in produzione tramite il servizio DynamoDB
Argomenti
Nelle sezioni precedenti, hai distribuito e testato l' Tic-Tac-Toeapplicazione localmente sul tuo computer utilizzando DynamoDB local. L'applicazione viene ora distribuita nell'ambiente di produzione come illustrato di seguito:
-
Implementate l'applicazione utilizzando AWS Elastic Beanstalk, un easy-to-use servizio per la distribuzione e la scalabilità di applicazioni e servizi Web. Per ulteriori informazioni, vedere Distribuzione di un'applicazione flask su. AWS Elastic Beanstalk
Elastic Beanstalk avvia una o più istanze Amazon Elastic Compute Cloud (Amazon EC2), che configuri tramite Elastic Beanstalk, su cui verrà eseguita l'applicazione. Tic-Tac-Toe
-
Usando il servizio Amazon DynamoDB, creare una tabella
Gamespresente in AWS e non in locale nel computer.
Devi inoltre configurare le autorizzazioni. Tutte AWS le risorse create, ad esempio la Games tabella in DynamoDB, sono private per impostazione predefinita. Solo il proprietario della risorsa, ovvero l'account AWS che ha creato la tabella Games, può accedere alla tabella. Pertanto, per impostazione predefinita, l' Tic-Tac-Toeapplicazione non può aggiornare la Games tabella.
Per concedere le autorizzazioni necessarie, crei un ruolo AWS Identity and Access Management (IAM) e concedi a questo ruolo le autorizzazioni per accedere alla Games tabella. L'istanza di Amazon EC2 assume questo ruolo. In risposta, AWS restituisce credenziali di sicurezza temporanee che l'istanza Amazon EC2 può utilizzare per aggiornare Games la tabella per conto dell' Tic-Tac-Toeapplicazione. Quando si configura l'applicazione Elastic Beanstalk, viene specificato il ruolo IAM che l'istanza o le istanze di Amazon EC2 possono assumere. Per ulteriori informazioni sui ruoli IAM, consulta Ruoli IAM per Amazon EC2 nella Guida per l’utente di Amazon EC2.
Nota
Prima di creare istanze Amazon EC2 per l' Tic-Tac-Toeapplicazione, devi prima decidere la AWS regione in cui desideri che Elastic Beanstalk crei le istanze. Dopo aver creato l'applicazione Elastic Beanstalk, specificare il nome della stessa regione e l'endpoint in un file di configurazione. L' Tic-Tac-Toeapplicazione utilizza le informazioni contenute in questo file per creare la Games tabella e inviare le richieste successive in una regione specifica. AWS
Sia la tabella Games DynamoDB che le istanze Amazon EC2 avviate da Elastic Beanstalk devono trovarsi nella stessa regione. Per un elenco delle regioni disponibili, vedi Amazon DynamoDB in Riferimenti generali di Amazon Web Services.
In sintesi, per distribuire l' Tic-Tac-Toeapplicazione in produzione, effettuate le seguenti operazioni:
-
Crea un ruolo o un utente IAM mediante il servizio IAM. Collegare una policy a questo ruolo per concedere le autorizzazioni per le operazioni di DynamoDB per l'accesso alla tabella
Games. -
Raggruppa il codice Tic-Tac-Toe dell'applicazione e un file di configurazione e crea un
.zipfile. Questo.zipfile viene utilizzato per fornire il codice dell' Tic-Tac-Toeapplicazione a Elastic Beanstalk da inserire nei server. Per ulteriori informazioni sulla creazione di un bundle, consulta Creazione di un bundle di origine dell'applicazione nella Guida per gli sviluppatori di AWS Elastic Beanstalk .Nel file di configurazione (
beanstalk.config) è necessario specificare le informazioni relative a regione AWS ed endpoint. L' Tic-Tac-Toeapplicazione utilizza queste informazioni per determinare con quale regione DynamoDB parlare. -
Configurare l'ambiente Elastic Beanstalk. Elastic Beanstalk avvia una o più istanze Amazon EC2 e distribuisce su di esse il tuo pacchetto di applicazioni. Tic-Tac-Toe Quando l'ambiente Elastic Beanstalk è pronto, sarà necessario specificare il nome del file di configurazione aggiungendo la variabile di ambiente
CONFIG_FILE. -
Crea la tabella DynamoDB. Utilizzando il servizio Amazon DynamoDB, crei
Gamesla tabella AWS sul tuo computer anziché localmente. Tieni presente che questa tabella ha una chiave primaria semplice costituita dalla chiave di partizioneGameIddi tipo stringa. -
Test del gioco in produzione.
3.1: Creazione di un ruolo IAM per Amazon EC2
La creazione di un ruolo IAM di tipo Amazon EC2 consente all'istanza Amazon EC2 che esegue l'applicazione di assumere Tic-Tac-Toe il ruolo corretto ed effettuare richieste applicative per accedere alla tabella. Games Quando crei il ruolo, scegli l'opzione Custom Policy (Policy personalizzata) e copia e incolla la policy seguente.
Per istruzioni dettagliate, consulta Creazione di un ruolo per un servizio AWS (Console di gestione AWS) nella Guida per l'utente di IAM.
3.2: Creazione della tabella Giochi in Amazon DynamoDB
La tabella Games memorizza i dati di gioco in DynamoDB. Se la tabella non esiste, viene creata dall'applicazione. In questo caso, lascia che l'applicazione crei la tabella Games.
3.3: Raggruppa e distribuisci il codice dell'applicazione tic-tac-toe
Se hai seguito i passaggi di questo esempio, hai già scaricato l' Tic-Tac-Toeapplicazione. In caso contrario, scarica l'applicazione ed estrai tutti i file in una cartella nel computer locale. Per istruzioni, consulta Fase 1: distribuzione e test in locale.
Dopo avere estratto tutti i file, sarà presente una cartella code. Per distribuire questa cartella su Elastic Beanstalk, puoi raggruppare il contenuto di questa cartella come un file .zip. Prima di tutto, devi aggiungere un file di configurazione nella cartella. L'applicazione userà le informazioni relative a regione ed endpoint per creare una tabella DynamoDB nella regione specificata ed eseguirà le richieste successive di operazioni sulla tabella usando l'endpoint specificato.
-
Passa alla cartella in cui hai scaricato l' Tic-Tac-Toeapplicazione.
-
Nella cartella root dell'applicazione crea un file di testo denominato
beanstalk.configcon il contenuto seguente.[dynamodb] region=<AWS region>endpoint=<DynamoDB endpoint>Puoi ad esempio usare questo contenuto.
[dynamodb] region=us-west-2 endpoint=dynamodb---us-west-2.amazonaws.com.rproxy.goskope.comPer un elenco delle regioni disponibili, consulta Amazon DynamoDB in Riferimenti generali di Amazon Web Services.
Importante
La regione specificata nel file di configurazione è la posizione in cui l' Tic-Tac-Toeapplicazione crea la
Gamestabella in DynamoDB. L'applicazione Elastic Beanstalk illustrata nella sezione successiva deve essere creata nella stessa regione.Nota
Quando viene creata l'applicazione Elastic Beanstalk, viene richiesto l'avvio di un ambiente in cui è possibile scegliere il tipo. Per testare l'applicazione di Tic-Tac-Toe esempio, puoi scegliere il tipo di ambiente Single Instance, saltare quanto segue e andare al passaggio successivo.
Tuttavia, il tipo di ambiente Load balancing, autoscaling (Bilanciamento del carico, dimensionamento automatico) offre livelli elevati di disponibilità e scalabilità e deve essere preso in considerazione quando crei e distribuisci altre applicazioni. Se scegli questo tipo di ambiente, dovrai generare anche un UUID e aggiungerlo al file di configurazione come illustrato di seguito.
[dynamodb] region=us-west-2 endpoint=dynamodb.us-west-2.amazonaws.com [flask] secret_key= 284e784d-1a25-4a19-92bf-8eeb7a9exampleNella comunicazione client-server, quando il server invia la risposta, per garantire la sicurezza invia un cookie firmato che il client rimanda al server nella richiesta successiva. Quando è presente un solo server, il server può generare in locale una chiave di crittografia all'avvio. Quando ci sono più server, devono conoscere tutti la stessa chiave di crittografia, altrimenti non potranno leggere i cookie impostati dai server peer. Aggiungendo
secret_keyal file di configurazione, indichi a tutti i server di usare questa chiave di crittografia. -
Comprimere il contenuto della cartella principale dell'applicazione (che include il file
beanstalk.config), ad esempioTicTacToe.zip. -
Caricare il file
.zipin un bucket Amazon Simple Storage Service (Amazon S3). Nella sezione successiva devi fornire questo file.zipa Elastic Beanstalk per il caricamento nei server.Per istruzioni su come caricare un file in un bucket Amazon S3, consulta Creazione di un bucket e Aggiunta di un oggetto a un bucket nella Guida per l'utente di Amazon Simple Storage Service.
3.4: Configura l'ambiente AWS Elastic Beanstalk
In questa fase viene creata un'applicazione Elastic Beanstalk, che è una raccolta di componenti che includono gli ambienti. Per questo esempio, lanci un'istanza Amazon EC2 per distribuire ed eseguire la tua applicazione. Tic-Tac-Toe
-
Immetti il seguente URL personalizzato per impostare una console Elastic Beanstalk per configurare l'ambiente.
https://console.aws.amazon.com/elasticbeanstalk/?region=<AWS-Region>#/newApplication ?applicationName=TicTacToeyour-name&solutionStackName=Python &sourceBundleUrl=https://s3.amazonaws.com/<bucket-name>/TicTacToe.zip&environmentType=SingleInstance &instanceType=t1.microPer ulteriori informazioni sulla personalizzazione URLs, consulta Constructing a Launch Now URL nella Developer Guide.AWS Elastic Beanstalk Per quanto riguarda l'URL, tieni presente quanto segue:
-
Devi fornire un nome di AWS regione (lo stesso che hai fornito nel file di configurazione), un nome di bucket Amazon S3 e il nome dell'oggetto.
-
Per il test, l'URL richiede il tipo di SingleInstanceambiente e il tipo
t1.microdi istanza. -
Il nome dell'applicazione deve essere univoco. Nell'URL precedente ti consigliamo quindi di aggiungere il tuo nome come prefisso di
applicationName.
Viene visualizzata la console Elastic Beanstalk. In alcuni casi, potrebbe essere necessario eseguire l'accesso.
-
-
Nella console Elastic Beanstalk, scegli Verifica e avvia, quindi seleziona Avvia.
-
Prendi nota dell'URL per riferimento futuro. Questo URL apre la home page Tic-Tac-Toe dell'applicazione.
-
Configura l' Tic-Tac-Toeapplicazione in modo che conosca la posizione del file di configurazione.
Dopo che Elastic Beanstalk ha creato l'applicazione, scegliere Configurazione.
-
Scegli l'icona di ingranaggio accanto a Software Configuration (Configurazione software), come illustrato nello screenshot seguente.
-
Alla fine della sezione Environment Properties (Proprietà ambiente) inserisci
CONFIG_FILEe il relativo valorebeanstalk.confige quindi scegli Save (Salva).Per il completamento dell'aggiornamento dell'ambiente potrebbero essere necessari alcuni minuti.
Una volta completato l'aggiornamento, puoi giocare.
-
-
Nel browser inserisci l'URL copiato nella fase precedente, come illustrato nell'esempio seguente.
http://<pen-name>.elasticbeanstalk.comIn questo modo si apre la home page dell'applicazione.
-
Accedi come testuser1 e scegli CREATE per iniziare una nuova partita. tic-tac-toe
-
Inserisci
testuser2nella casella Choose an Opponent (Scegli un avversario).
-
Apri un'altra finestra del browser.
Assicurati di cancellare tutti i cookie nella finestra del browser, per non eseguire l'accesso con lo stesso utente.
-
Inserisci lo stesso URL per aprire la home page dell'applicazione, come illustrato nell'esempio seguente.
http://<env-name>.elasticbeanstalk.com -
Accedi come testuser2.
-
Scegli accept (accetta) per l'invito di testuser1 nell'elenco di inviti in attesa.
-
Verrà visualizzata la pagina del gioco.
Sia testuser1 che testuser2 possono giocare. Per ogni mossa, l'applicazione salva lo spostamento nell'elemento corrispondente nella tabella
Games.