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 (EC2Amazon), che configuri tramite Elastic Beanstalk, su cui verrà eseguita l'applicazione. Tic-Tac-Toe
-
Usando il servizio Amazon DynamoDB, creare una tabella
Games
presente 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'AWSaccount che ha creato la Games
tabella, può accedere a questa 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. La tua EC2 istanza Amazon assume innanzitutto questo ruolo. In risposta, AWS restituisce credenziali di sicurezza temporanee che l'EC2istanza Amazon può utilizzare per aggiornare la Games
tabella per conto dell' Tic-Tac-Toeapplicazione. Quando configuri la tua applicazione Elastic Beanstalk, specifichi IAM il ruolo che l'istanza o le istanze EC2 Amazon possono assumere. Per ulteriori informazioni sui IAM ruoli, consulta IAMroles for amazon EC2 nella Amazon EC2 User Guide.
Nota
Prima di creare EC2 istanze Amazon 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 EC2 Amazon 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'applicazione in produzione, procedi come segue: Tic-Tac-Toe
-
Create un IAM ruolo utilizzando il IAM servizio. 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
.zip
file. Questo.zip
file 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 EC2 una o più istanze Tic-Tac-Toe Amazon e distribuisce su di esse il tuo pacchetto di applicazioni. 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
Games
la tabella AWS sul tuo computer anziché localmente. Tieni presente che questa tabella ha una chiave primaria semplice costituita dalla chiave di partizioneGameId
di tipo stringa. -
Test del gioco in produzione.
3.1: Creare un IAM ruolo per Amazon EC2
La creazione di un IAM ruolo di EC2 tipo Amazon consente all'EC2istanza Amazon che esegue l' Tic-Tac-Toeapplicazione di assumere il ruolo corretto ed effettuare richieste di accesso alla Games
tabella. Quando crei il ruolo, scegli l'opzione Custom Policy (Policy personalizzata) e copia e incolla la policy seguente.
{ "Version":"2012-10-17", "Statement":[ { "Action":[ "dynamodb:ListTables" ], "Effect":"Allow", "Resource":"*" }, { "Action":[ "dynamodb:*" ], "Effect":"Allow", "Resource":[ "arn:aws:dynamodb:us-west-2:922852403271:table/Games", "arn:aws:dynamodb:us-west-2:922852403271:table/Games/index/*" ] } ] }
Per ulteriori istruzioni, consulta Creating a role for an AWS service (AWS Management Console) nella Guida per l'IAMutente.
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' tic-tac-toeapplicazione
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.config
con 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
Per 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
Games
tabella 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, devi anche generarne uno 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-8eeb7a9example
Nella 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_key
al 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
.zip
in un bucket Amazon Simple Storage Service (Amazon S3). Nella sezione successiva devi fornire questo file.zip
a 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: Configurazione dell'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'EC2istanza Amazon per distribuire ed eseguire la tua Tic-Tac-Toe applicazione.
-
Inserisci il seguente codice personalizzato URL per configurare 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 personalizzazioneURLs, consulta Constructing a Launch Now URL nella Developer Guide.AWS Elastic Beanstalk Per ilURL, tenete 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, le URL richieste indicano il tipo di SingleInstanceambiente e il tipo
t1.micro
di istanza. -
Il nome dell'applicazione deve essere univoco. Pertanto, nella sezione precedenteURL, ti suggeriamo di anteporre il tuo nome a.
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.
-
Nota la nota URL per riferimenti futuri. URLVerrà aperta 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_FILE
e il relativo valorebeanstalk.config
e 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 URL quello che hai copiato nel passaggio precedente, come mostrato nell'esempio seguente.
http://
<pen-name>
.elasticbeanstalk.comIn questo modo si apre la home page dell'applicazione.
-
Accedi come testuser1 e scegli di CREATEiniziare una nuova partita. tic-tac-toe
-
Inserisci
testuser2
nella 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 mostrato 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
.