Fase 3: distribuzione in produzione tramite il servizio DynamoDB - Amazon DynamoDB

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

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

  1. 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.

  2. 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.

  3. 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.

  4. 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 partizione GameId di tipo stringa.

  5. 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.

  1. Passa alla cartella in cui hai scaricato l' Tic-Tac-Toeapplicazione.

  2. 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.

  3. Comprimere il contenuto della cartella principale dell'applicazione (che include il file beanstalk.config), ad esempio TicTacToe.zip.

  4. 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.

  1. 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.micro

    Per 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.

  2. Nella console Elastic Beanstalk, scegli Verifica e avvia, quindi seleziona Avvia.

  3. Nota la nota URL per riferimenti futuri. URLVerrà aperta la home page Tic-Tac-Toe dell'applicazione.

    Screenshot dell'applicazione che mostra il messaggio che l'ambiente è in fase di creazione sulla home page.
  4. 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.

    1. Scegli l'icona di ingranaggio accanto a Software Configuration (Configurazione software), come illustrato nello screenshot seguente.

      Tic-tac-toe schermata dell'applicazione che mostra l'icona a forma di ingranaggio accanto alla configurazione del software.
    2. Alla fine della sezione Environment Properties (Proprietà ambiente) inserisci CONFIG_FILE e il relativo valore beanstalk.config e quindi scegli Save (Salva).

      Per il completamento dell'aggiornamento dell'ambiente potrebbero essere necessari alcuni minuti.

      Screenshot dell'applicazione che mostra la sezione delle proprietà ambiente.

    Una volta completato l'aggiornamento, puoi giocare.

  5. Nel browser, inserisci URL quello che hai copiato nel passaggio precedente, come mostrato nell'esempio seguente.

    http://<pen-name>.elasticbeanstalk.com

    In questo modo si apre la home page dell'applicazione.

    Screenshot della home page dell'applicazione che mostra il pulsante Crea, inviti, partite in corso e cronologia recente.
  6. Accedi come testuser1 e scegli di CREATEiniziare una nuova partita. tic-tac-toe

  7. Inserisci testuser2 nella casella Choose an Opponent (Scegli un avversario).

    Screenshot dell'applicazione che mostra la scelta di una casella avversaria.
  8. 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.

  9. Inserisci lo stesso URL per aprire la home page dell'applicazione, come mostrato nell'esempio seguente.

    http://<env-name>.elasticbeanstalk.com
  10. Accedi come testuser2.

  11. Scegli accept (accetta) per l'invito di testuser1 nell'elenco di inviti in attesa.

    Screenshot dell'applicazione che mostra l'invito testuser1 nell'elenco degli inviti.
  12. Verrà visualizzata la pagina del gioco.

    Schermata dell'applicazione che mostra una tic-tac-toe griglia vuota.

    Sia testuser1 che testuser2 possono giocare. Per ogni mossa, l'applicazione salva lo spostamento nell'elemento corrispondente nella tabella Games.