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
Themen
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
Games
Tabelle, 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:
-
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. -
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. -
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. -
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 demGameId
-Partitionsschlüssel, des Typs Zeichenfolge, besteht. -
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.
-
Wechseln Sie zu dem Ordner, in den Sie die Tic-Tac-Toe Anwendung heruntergeladen haben.
-
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. -
Zippen Sie den Inhalt des Stammordners der Anwendung (einschließlich der
beanstalk.config
-Datei) – zum BeispielTicTacToe.zip
. -
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.
-
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.microWeitere 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.
-
-
Wählen Sie in der Elastic Beanstalk-Konsole Review and Launch (Überprüfen und starten) und anschließend Launch (Starten) aus.
-
Notieren Sie sich das URL zum future Nachschlagen. Dadurch URL wird die Startseite Ihrer Tic-Tac-Toe Anwendung geöffnet.
-
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.
-
Wählen Sie das Zahnradsymbol neben Software Configuration (Softwarekonfiguration) aus, wie in folgendem Screenshot gezeigt.
-
Geben Sie am Ende des Abschnitts Environment Properties (Umgebungseigenschaften)
CONFIG_FILE
und dafür den Wertbeanstalk.config
ein, und wählen Sie anschließend Save (Speichern) aus.Es kann ein paar Minuten dauern, bis die Aktualisierung der Umgebung abgeschlossen ist.
Nachdem die Aktualisierung abgeschlossen ist, können Sie das Spiel spielen.
-
-
Geben Sie im Browser den Code ein, den URL Sie im vorherigen Schritt kopiert haben, wie im folgenden Beispiel gezeigt.
http://
<pen-name>
.elasticbeanstalk.comDadurch wird die Startseite der Anwendung geöffnet.
-
Loggen Sie sich als Testuser1 ein und wählen Sie, ob Sie ein neues tic-tac-toe Spiel starten CREATEmöchten.
-
Geben Sie
testuser2
in das Feld Choose an Opponent (Gegner wählen) ein. -
Ö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.
-
Geben Sie dasselbe einURL, um die Startseite der Anwendung zu öffnen, wie im folgenden Beispiel gezeigt.
http://
<env-name>
.elasticbeanstalk.com -
Melden Sie sich als Testbenutzer2 an.
-
Wählen Sie für die Einladung von Testbenutzer1 in der Liste der ausstehenden Einladungen accept (akzeptieren) aus.
-
Jetzt wird die Spielseite angezeigt..
Testbenutzer1 und Testbenutzer2 können das Spiel spielen. Die Anwendung speichert jeden Zug in dem entsprechenden Element in der
Games
-Tabelle.