Schritt 3: Bereitstellen in Produktion mit dem DynamoDB-Service - Amazon-DynamoDB

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Schritt 3: Bereitstellen in Produktion mit dem DynamoDB-Service

In den vorherigen Abschnitten haben Sie die Tic-Tac-Toe Anwendung mithilfe von DynamoDB local lokal auf Ihrem Computer bereitgestellt und getestet. Jetzt können Sie die Anwendung in der Produktion wie folgt bereitstellen:

  • Stellen Sie die Anwendung mithilfe AWS Elastic Beanstalk eines easy-to-use Dienstes für die Bereitstellung und Skalierung von Webanwendungen und -diensten bereit. Weitere Informationen finden Sie unter Bereitstellen einer Flask-Anwendung auf AWS Elastic Beanstalk.

    Elastic Beanstalk startet eine oder mehrere Amazon Elastic Compute Cloud (AmazonEC2) -Instances, die Sie über Elastic Beanstalk konfigurieren und auf denen Ihre Tic-Tac-Toe Anwendung ausgeführt wird.

  • Erstellen Sie mit dem Amazon-DynamoDB-Service eine GamesTabelle, die in AWS anstatt lokal auf Ihrem Computer existiert.

Außerdem müssen Sie auch Berechtigungen konfigurieren. Alle AWS Ressourcen, die Sie erstellen, wie z. B. die Games Tabelle in DynamoDB, sind standardmäßig privat. Nur der Besitzer der Ressource, d. h. das AWS Konto, das die Tabelle erstellt hat, kann auf diese Games Tabelle zugreifen. Daher kann Ihre Tic-Tac-Toe Anwendung die Games Tabelle standardmäßig nicht aktualisieren.

Um die erforderlichen Berechtigungen zu erteilen, erstellen Sie eine Rolle AWS Identity and Access Management (IAM) und gewähren dieser Rolle Berechtigungen für den Zugriff auf die Games Tabelle. Ihre EC2 Amazon-Instance übernimmt zunächst diese Rolle. Als Antwort werden temporäre Sicherheitsanmeldedaten AWS zurückgegeben, die die EC2 Amazon-Instance verwenden kann, um die Games Tabelle im Namen der Tic-Tac-Toe Anwendung zu aktualisieren. Wenn Sie Ihre Elastic Beanstalk Beanstalk-Anwendung konfigurieren, geben Sie die IAM Rolle an, die die EC2 Amazon-Instance oder -Instances übernehmen können. Weitere Informationen zu IAM Rollen finden Sie unter IAMRollen für Amazon EC2 im EC2Amazon-Benutzerhandbuch.

Anmerkung

Bevor Sie EC2 Amazon-Instances für die Tic-Tac-Toe Anwendung erstellen, müssen Sie zunächst die AWS Region festlegen, in der Elastic Beanstalk die Instances erstellen soll. Nachdem Sie die Elastic-Beanstalk-Anwendung erstellen, geben Sie denselben Regionsnamen und Endpunkt in einer Konfigurationsdatei an. Die Tic-Tac-Toe Anwendung verwendet die Informationen in dieser Datei, um die Games Tabelle zu erstellen und nachfolgende Anfragen in einer bestimmten AWS Region zu senden. Sowohl die Games DynamoDB-Tabelle als auch die EC2 Amazon-Instances, die Elastic Beanstalk startet, müssen sich in derselben Region befinden. Eine Liste von verfügbaren Regionen finden Sie unter Amazon DynamoDB in der Allgemeine Amazon Web Services-Referenz.

Zusammenfassend gehen Sie wie folgt vor, um die Anwendung in der Tic-Tac-Toe Produktion bereitzustellen:

  1. Erstellen Sie mithilfe des IAM Dienstes eine IAM Rolle. Sie fügen dieser Rolle eine Richtlinie an, die Berechtigungen für DynamoDB-Aktionen erteilt, auf die Tabelle Games zuzugreifen.

  2. Bündeln Sie den Tic-Tac-Toe Anwendungscode und eine Konfigurationsdatei und erstellen Sie eine .zip Datei. Sie verwenden diese .zip Datei, um den Tic-Tac-Toe Anwendungscode an Elastic Beanstalk weiterzugeben, damit er ihn auf Ihren Servern platzieren kann. Weitere Informationen zur Erstellung eines Pakets finden Sie unter Erstellen eines Anwendungsquellenbündel im AWS Elastic Beanstalk -Entwicklerhandbuch.

    In der Konfigurationsdatei (beanstalk.config) geben Sie Informationen zu AWS -Regionen und -Endpunkten an. Die Tic-Tac-Toe Anwendung verwendet diese Informationen, um zu bestimmen, mit welcher DynamoDB-Region kommuniziert werden soll.

  3. Einrichten der Elastic Beanstalk-Umgebung. Elastic Beanstalk startet eine oder Amazon EC2 Amazon-Instances und stellt Ihr Tic-Tac-Toe Anwendungspaket darauf bereit. Nachdem die Elastic Beanstalk-Umgebung bereit ist, geben Sie den Konfigurationsdateinamen an, indem Sie die CONFIG_FILE-Umgebungsvariable hinzufügen.

  4. Erstellen einer DynamoDB-Tabelle. Mit dem Amazon DynamoDB-Service erstellen Sie die Games Tabelle nicht lokal AWS, sondern auf Ihrem Computer. Denken Sie daran, dass diese Tabelle einen einfachen Primärschlüssel hat, der aus dem GameId-Partitionsschlüssel, des Typs Zeichenfolge, besteht.

  5. Testen Sie das Spiel in der Produktion.

3.1: Eine IAM Rolle für Amazon erstellen EC2

Wenn Sie eine IAM Rolle vom EC2 Typ Amazon erstellen, kann die EC2 Amazon-Instance, auf der Ihre Tic-Tac-Toe Anwendung ausgeführt wird, die richtige Rolle übernehmen und Anwendungsanfragen für den Zugriff auf die Games Tabelle stellen. Wählen Sie beim Erstellen der Rolle die Option Custom Policy (Benutzerdefinierte Richtlinie) aus, kopieren Sie die folgende Richtlinie und fügen Sie sie ein.

{ "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/*" ] } ] }

Weitere Anweisungen finden Sie unter Eine Rolle für einen AWS Service erstellen (AWS Management Console) im IAMBenutzerhandbuch.

3.2: Erstellen der Spiele-Tabelle in Amazon DynamoDB

Die Games-Tabelle in DynamoDB speichert Spieldaten. Wenn die Tabelle nicht vorhanden ist, erstellt die Anwendung die Tabelle für Sie. Lassen Sie in diesem Fall die Anwendung die Games-Tabelle erstellen.

3.3: Den tic-tac-toe Anwendungscode bündeln und bereitstellen

Wenn Sie die Schritte dieses Beispiels befolgt haben, haben Sie die Tic-Tac-Toe Anwendung bereits heruntergeladen. Wenn nicht, laden sie die Anwendung herunter und entpacken Sie alle Dateien in einen Ordner auf Ihrem lokalen Computer. Detaillierte Anweisungen finden Sie unter Schritt 1: Lokales Bereitstellen und Testen.

Nachdem Sie alle Dateien extrahiert haben, verfügen Sie über einen code-Ordner. Um diesen Ordner an Elastic Beanstalk zu übergeben, bündeln Sie die Inhalte dieses Ordners als .zip-Datei. Zuerst müssen Sie diesem Ordner eine Konfigurationsdatei hinzufügen. Ihre Anwendung verwendet die Region- und Endpunktinformationen zum Erstellen einer DynamoDB-Tabelle in der angegebenen Region und führt nachfolgende Tabellenoperationsanforderungen mithilfe des angegebenen Endpunktes durch.

  1. Wechseln Sie zu dem Ordner, in den Sie die Tic-Tac-Toe Anwendung heruntergeladen haben.

  2. Erstellen Sie im Stammordner der Anwendung eine Textdatei mit dem Namen beanstalk.config mit folgendem Inhalt:

    [dynamodb] region=<AWS region> endpoint=<DynamoDB endpoint>

    Beispielsweise können Sie den folgenden Inhalt verwenden.

    [dynamodb] region=us-west-2 endpoint=dynamodb.us-west-2.amazonaws.com

    Eine Liste der verfügbaren Regionen finden Sie unter Amazon DynamoDB in der Allgemeinen Amazon-Web-Services-Referenz..

    Wichtig

    Die in der Konfigurationsdatei angegebene Region ist der Ort, an dem die Tic-Tac-Toe Anwendung die Games Tabelle in DynamoDB erstellt. Sie müssen die Elastic-Beanstalk-Anwendung, die im nächsten Abschnitt behandelt wird, in derselben Region erstellen.

    Anmerkung

    Wenn Sie die Elastic-Beanstalk-Anwendung erstellen, werden Sie den Start einer Umgebung anfordern, in der Sie den Umgebungstyp auswählen können. Um die Tic-Tac-Toe Beispielanwendung zu testen, können Sie den Umgebungstyp Single Instance wählen, den folgenden Vorgang überspringen und mit dem nächsten Schritt fortfahren.

    Beachten Sie jedoch, dass der Umgebungstyp Load balancing, autoscaling eine hoch verfügbare und skalierbare Umgebung bietet. Dies sollten Sie berücksichtigen, wenn Sie andere Anwendungen erstellen und bereitstellen. Wenn Sie diesen Umgebungstyp wählen, müssen Sie auch eine generieren UUID und sie der Konfigurationsdatei hinzufügen, wie im Folgenden gezeigt.

    [dynamodb] region=us-west-2 endpoint=dynamodb.us-west-2.amazonaws.com [flask] secret_key= 284e784d-1a25-4a19-92bf-8eeb7a9example

    Wenn der Server bei der Client-Server-Kommunikation eine Antwort sendet, verwendet er aus Sicherheitsgründen ein signiertes Cookie, das der Client in der nächsten Anforderung zurück an den Server sendet. Wenn nur ein Server vorhanden ist, kann dieser beim Start lokal einen Verschlüsselungsschlüssel generieren. Wenn viele Server vorhanden sind, müssen alle den gleichen Verschlüsselungsschlüssel kennen. Andernfalls sind sie nicht in der Lage, Cookies zu lesen, die von den Peerservern festgelegt werden. Durch das Hinzufügen von secret_key in die Konfigurationsdatei informieren Sie alle Server darüber, dass dieser Verschlüsselungsschlüssel verwendet werden soll.

  3. Zippen Sie den Inhalt des Stammordners der Anwendung (einschließlich der beanstalk.config-Datei) – zum Beispiel TicTacToe.zip.

  4. Laden Sie die .zip-Datei in einem Amazon-Simple-Storage-Service-(Amazon-S3)-Bucket hoch. Im nächsten Abschnitt stellen Sie diese .zip-Datei für Elastic Beanstalk bereit, um sie auf den oder die Server hochzuladen.

    Anleitungen zum Hochladen einer Datei in einen Amazon S3-Bucket finden Sie unter Erstellen eines Buckets und Hinzufügen eines Objekts zu einem Bucket im Amazon Simple Storage Service-Benutzerhandbuch.

3.4: Einrichten der AWS Elastic Beanstalk -Umgebung

In diesem Schritt erstellen Sie eine Elastic-Beanstalk-Anwendung, die aus einer Sammlung von Komponenten einschließlich Umgebungen besteht. In diesem Beispiel starten Sie eine EC2 Amazon-Instance, um Ihre Tic-Tac-Toe Anwendung bereitzustellen und auszuführen.

  1. Geben Sie den folgenden benutzerdefinierten Code einURL, um eine Elastic Beanstalk Beanstalk-Konsole für die Einrichtung der Umgebung einzurichten.

    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

    Weitere Informationen zu Custom URLs finden Sie unter Constructing a Launch Now URL im AWS Elastic Beanstalk Developer Guide. Beachten Sie in URL Bezug auf das Folgendes:

    • Sie müssen einen AWS Regionsnamen (derselbe, den Sie in der Konfigurationsdatei angegeben haben), einen Amazon S3 S3-Bucket-Namen und den Objektnamen angeben.

    • Zum Testen werden der URL SingleInstanceUmgebungstyp und t1.micro der Instanztyp angefordert.

    • Der Anwendungsname muss eindeutig sein. Aus diesem Grund empfehlen wir IhnenURL, Ihren Namen dem applicationName vorangestellt zu haben.

    Dies öffnet die Elastic-Beanstalk-Konsole. In einigen Fällen müssen Sie sich möglicherweise anmelden.

  2. Wählen Sie in der Elastic Beanstalk-Konsole Review and Launch (Überprüfen und starten) und anschließend Launch (Starten) aus.

  3. Notieren Sie sich das URL zum future Nachschlagen. Dadurch URL wird die Startseite Ihrer Tic-Tac-Toe Anwendung geöffnet.

    Screenshot der Anwendung mit der Nachricht „Umgebung wird erstellt“ auf der Homepage.
  4. Konfigurieren Sie die Tic-Tac-Toe Anwendung so, dass sie den Speicherort der Konfigurationsdatei kennt.

    Nachdem Elastic Beanstalk die Anwendung erstellt hat, wählen Sie Configuration (Konfiguration) aus.

    1. Wählen Sie das Zahnradsymbol neben Software Configuration (Softwarekonfiguration) aus, wie in folgendem Screenshot gezeigt.

      Tic-tac-toe Anwendungs-Screenshot mit dem Zahnradsymbol neben der Softwarekonfiguration.
    2. Geben Sie am Ende des Abschnitts Environment Properties (Umgebungseigenschaften) CONFIG_FILE und dafür den Wert beanstalk.config ein, und wählen Sie anschließend Save (Speichern) aus.

      Es kann ein paar Minuten dauern, bis die Aktualisierung der Umgebung abgeschlossen ist.

      Screenshot der Anwendung mit dem Abschnitt „Umgebungseigenschaften“.

    Nachdem die Aktualisierung abgeschlossen ist, können Sie das Spiel spielen.

  5. Geben Sie im Browser den Code ein, den URL Sie im vorherigen Schritt kopiert haben, wie im folgenden Beispiel gezeigt.

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

    Dadurch wird die Startseite der Anwendung geöffnet.

    Screenshot der Startseite der Anwendung mit den Schaltflächen zum Erstellen, Einladungen, laufenden Spielen und dem jüngsten Verlauf.
  6. Loggen Sie sich als Testuser1 ein und wählen Sie, ob Sie ein neues tic-tac-toe Spiel starten CREATEmöchten.

  7. Geben Sie testuser2 in das Feld Choose an Opponent (Gegner wählen) ein.

    Screenshot der Anwendung mit dem Feld für das Wählen eines Gegners.
  8. Öffnen Sie ein anderes Browserfenster.

    Stellen Sie sicher, dass Sie alle Cookies in Ihrem Browser-Fenster löschen, damit Sie nicht als identischer Benutzer angemeldet werden.

  9. Geben Sie dasselbe einURL, um die Startseite der Anwendung zu öffnen, wie im folgenden Beispiel gezeigt.

    http://<env-name>.elasticbeanstalk.com
  10. Melden Sie sich als Testbenutzer2 an.

  11. Wählen Sie für die Einladung von Testbenutzer1 in der Liste der ausstehenden Einladungen accept (akzeptieren) aus.

    Screenshot der Anwendung mit der Einladung testuser1 in der Einladungsliste.
  12. Jetzt wird die Spielseite angezeigt..

    Screenshot der Anwendung, der ein leeres tic-tac-toe Raster zeigt.

    Testbenutzer1 und Testbenutzer2 können das Spiel spielen. Die Anwendung speichert jeden Zug in dem entsprechenden Element in der Games-Tabelle.