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.
Quick Start: Veröffentlichen von Anwendungen
Dieser Leitfaden führt Sie durch die Schritte zum Herunterladen, Erstellen, Testen und Veröffentlichen einer serverlosen Beispielanwendung im AWS Serverless Application Repository mithilfe der AWS SAM-CLI. Sie können diese Beispielanwendung als Ausgangspunkt für die Entwicklung und Veröffentlichung Ihrer eigenen serverlosen Anwendung verwenden.
Übersicht
In den folgenden Schritten wird beschrieben, wie Sie eine serverlose Beispielanwendung herunterladen, erstellen und veröffentlichen:
-
Initialisieren. Laden Sie eine Beispielanwendung aus der Vorlage mithilfe von
sam init
herunter. -
Ausführen lokaler Tests. Testen Sie die Anwendung lokal mit
sam local invoke
und/odersam local start-api
. Beachten Sie, dass Ihre Lambda-Funktion mit diesen Befehlen zwar lokal aufgerufen wird, aber ausAWS Ressourcen in derAWS Cloud liest und in sie schreibt. -
Paket. Wenn Sie mit Ihrer Lambda-Funktion zufrieden sind, bündeln Sie die Lambda-Funktion, dieAWS SAM Vorlage und alle Abhängigkeiten in einemAWS CloudFormation Bereitstellungspaket mit
sam package
. In diesem Schritt fügen Sie auch Informationen über die Anwendung hinzu, die in das AWS Serverless Application Repository hochgeladen wird. -
Veröffentlichen. Veröffentlichen Sie die Anwendung im AWS Serverless Application Repository mithilfe von
sam publish
. Am Ende dieses Schritts können Sie Ihre Anwendung in derAWS Cloud anzeigenAWS Serverless Application Repository und sie mithilfe von verwendenAWS Serverless Application Repository.
Das Beispiel Hello World-Anwendung im nächsten Abschnitt führt Sie durch diese Schritte beim Erstellen und Veröffentlichen einer serverlosen Anwendung.
Hello World-Anwendung
In dieser Übung laden Sie eine serverlose Hello World-Anwendung, die ein einfaches API-Backend darstellt, herunter und testen Sie diese. Es hat einen Amazon-API-Gateway-Endpunkt, der eine GET-Operation und eine Lambda-Funktion unterstützt. Das heißt, wenn eine GET-Anfrage an den Endpunkt gesendet wird, ruft API Gateway die Lambda-Funktion auf. Dann führt AWS Lambda die Funktion aus, die einfach eine hello world
-Nachricht zurückgibt.
Die Anwendung besteht aus folgenden Komponenten:
-
EineAWS SAM Vorlage, die zweiAWS Ressourcen für die Hello World-Anwendung definiert: einen API-Gateway-Dienst mit einer GET-Operation und eine Lambda-Funktion. Die Vorlage definiert auch die Zuordnung zwischen dem API-Gateway-GET-Vorgang und der Lambda-Funktion.
-
Anwendungscode, der in Python geschrieben ist.
Bevor Sie beginnen
Stellen Sie sicher, dass Sie über die erforderliche Einrichtung für diese Übung verfügen:
-
Sie müssen einAWS Konto bei einem IAM-Benutzer Administratorberechtigungen haben Administratorberechtigungen besitzen. Siehe AWSKonto einrichten.
-
Sie müssen die AWS SAM-CLI (Command Line Interface, Befehlszeilenschnittstelle) installiert haben. Siehe Installieren der AWS SAM-CLI.
-
Sie müssen Version 1.16.77 oder höher der AWS CLI installiert haben. Siehe Installieren der AWS Command Line Interface.
Schritt 1: Initialisieren der Anwendung
In diesem Abschnitt laden Sie die Beispielanwendung herunter, die aus einer AWS SAM-Vorlage und einem Anwendungscode besteht.
So initialisieren Sie die Anwendung
-
Führen Sie den folgenden Befehl bei einer AWS SAM-CLI-Eingabeaufforderung aus.
sam init --runtime python3.6
-
Überprüfen Sie den Inhalt des Verzeichnisses, das der Befehl erstellt hat (
sam-app/
):-
template.yaml
— Definiert zweiAWS Ressourcen, die die Hello World-Anwendung benötigt: eine Lambda-Funktion und einen API-Gateway-Endpunkt, der eine GET-Operation unterstützt. Die Vorlage definiert auch die Zuweisung zwischen den beiden Ressourcen. -
Inhalt im Zusammenhang mit dem Hello World-Anwendungscode:
-
hello_world/
Verzeichnis — Enthält den Anwendungscode, der zurückgegeben wird,hello world
wenn Sie ihn ausführen.
-
Anmerkung
Für diese Übung wird der Anwendungscode in Python geschrieben und Sie geben die Laufzeit im Befehl
init
an. AWS Lambda unterstützt zusätzliche Sprachen zum Erstellen von Anwendungscode. Wenn Sie eine andere unterstützte Laufzeit angeben, enthält derinit
-Befehl den Hello World-Code in der angegebenen Sprache und eineREADME.md
-Datei, die Sie für diese Sprache befolgen können. Informationen zu unterstützten Laufzeiten finden Sie unter Lambda-Ausführungsumgebung und verfügbare Bibliotheken. -
Schritt 2: Lokales Testen der Anwendung
Nachdem Sie die AWS SAM-Anwendung nun auf Ihrem lokalen Computer installiert haben, führen Sie die folgenden Schritte aus, um sie lokal zu testen.
So testen Sie die Anwendung lokal
-
Starten Sie den API-Gateway-Endpunkt lokal. Sie müssen den folgenden Befehl aus dem Verzeichnis ausführen, das die
template.yaml
-Datei enthält.sam-app> sam local start-api --region us-east-1
Der Befehl gibt einen API-Gateway-Endpunkt zurück, an den Sie Anfragen für lokale Tests senden können.
-
Testen Sie die Anwendung. Kopieren Sie die API Gateway Gateway-Endpunkt-URL, fügen Sie sie in den Browser ein und wählen Sie Enter. Ein Beispiel für eine API-Gateway-Endpunkt-URL lautet
http://127.0.0.1:3000/hello
.API Gateway ruft lokal die Lambda-Funktion auf, der der Endpunkt zugeordnet ist. Die Lambda-Funktion wird im lokalen Docker-Container ausgeführt und kehrt zurück
hello world
. API Gateway gibt eine Antwort an den Browser zurück, die den Text enthält.
Übung: Ändern der Nachrichtenzeichenfolge
Nachdem Sie die Beispielanwendung erfolgreich getestet haben, können Sie mit einer einfachen Änderung experimentieren: Ändern Sie die zurückgegebene Nachrichtenzeichenfolge.
-
Bearbeiten Sie die
/hello_world/app.py
-Datei, um die Nachrichtenzeichenfolge von'hello world'
in'Hello World!'
zu ändern. -
Laden Sie die Test-URL in Ihrem Browser neu und beachten Sie die neue Zeichenfolge.
Sie werden feststellen, dass Ihr neuer Code dynamisch geladen wird, ohne dass Sie den Prozess sam local
neu starten müssen.
Schritt 3: Verpacken der Anwendung
Nachdem Sie Ihre Anwendung lokal getestet haben, verwenden Sie die AWS SAM-CLI, um ein Bereitstellungspaket und eine verpackte AWS SAM-Vorlage zu erstellen.
Anmerkung
In den folgenden Schritten erstellen Sie eine ZIP-Datei für den Inhalt des hello_world/
-Verzeichnisses, das den Anwendungscode enthält. Diese ZIP-Datei ist das Bereitstellungspaket für Ihre serverlose Anwendung. Weitere Informationen finden Sie unter Erstellen eines Deployment-Pakets (Python) im AWS LambdaEntwicklerhandbuch.
So erstellen Sie ein Lambda-Bereitstellungspaket
-
Fügen Sie Ihrer AWS SAM-Vorlagendatei einen
Metadata
-Abschnitt hinzu, der die erforderlichen Anwendungsinformationen enthält. Weitere Informationen zum AbschnittMetadata
der AWS SAM-Vorlagen finden Sie unter AWS SAM Template Metadata Section Properties im AWS Serverless Application Model-Entwicklerhandbuch.Hier ist ein
Metadata
-Beispielabschnitt:Metadata: AWS::ServerlessRepo::Application: Name:
my-app
Description:hello world
Author:user1
SpdxLicenseId: Apache-2.0 LicenseUrl:LICENSE.txt
ReadmeUrl:README.md
Labels:['tests']
HomePageUrl:https://github.com/user1/my-app-project
SemanticVersion:0.0.1
SourceCodeUrl:https://github.com/user1/my-app-project
Die
ReadmeUrl
EigenschaftenLicenseUrl
und können entweder Verweise auf lokale Dateien sein (wie im obigen Beispiel), oder sie können Links zu Amazon S3 S3-Buckets sein, die diese Artefakte bereits hosten. -
Erstellen Sie einen S3-Bucket an dem Speicherort, an dem Sie den verpackten Code speichern möchten. Wenn Sie einen vorhandenen S3-Bucket verwenden möchten, überspringen Sie diesen Schritt.
sam-app> aws s3 mb s3://
bucketname
-
Erstellen Sie das Bereitstellungspaket für Lambda-Funktionen, indem Sie den folgenden
package
AWS SAM CLI-Befehl ausführen.sam-app> sam package \ --template-file template.yaml \ --output-template-file packaged.yaml \ --s3-bucket
bucketname
Der Befehl hat folgende Auswirkungen:
-
Zippt den Inhalt des
aws-sam/hello_world/
Verzeichnisses und lädt ihn auf Amazon S3 hoch. -
Lädt das Bereitstellungspaket, die README-Datei und die LICENSE-Datei in den Amazon S3 S3-Bucket hoch, der durch die
--s3-bucket
Option angegeben wurde. -
Gibt eine neue Vorlagendatei mit dem Namen
packaged.yaml
aus, die Sie im nächsten Schritt zum Veröffentlichen der Anwendung im AWS Serverless Application Repository verwenden. Diepackaged.yaml
Vorlagendatei ähnelt der ursprünglichen Vorlagendatei (template.yaml
), weist jedoch einen wesentlichen Unterschied auf: Die EigenschaftenCodeUri
LicenseUrl
, und dieReadmeUrl
Eigenschaften verweisen auf den Amazon S3 S3-Bucket und die Objekte, die die entsprechenden Artefakte enthalten. Der folgende Ausschnitt aus einerpackaged.yaml
-Beispielvorlagendatei zeigt dieCodeUri
-Eigenschaft:HelloWorldFunction: Type: AWS::Serverless::Function # For more information about function resources, see https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction Properties: CodeUri: s3://
bucketname
/fbd77a3647a4f47a352fcObjectGUID
...
-
Schritt 4: Veröffentlichen der Anwendung
Nachdem Sie das Bereitstellungspaket erstellt haben, verwenden Sie es, um die Anwendung im AWS Serverless Application Repository zu veröffentlichen.
So veröffentlichen Sie die serverlose Anwendung auf dem AWS Serverless Application Repository
-
Führen Sie den folgenden Befehl aus, um die neue Anwendung mit der ersten Version in AWS Serverless Application Repository zu veröffentlichen, die als 0.0.1 erstellt wurde.
sam-app> sam publish \ --template packaged.yaml \ --region us-east-1
Anmerkung
Die Anwendung wird standardmäßig als privat erstellt. Sie müssen die Anwendung teilen, bevor andereAWS Konten Ihre Anwendung anzeigen und bereitstellen können. Weitere Informationen zum Freigeben Ihrer Anwendung finden Sie nachstehend in den nächsten Schritten.
Nächste Schritte
Nachdem Sie Ihre Beispielanwendung veröffentlicht haben, folgen einige Dinge, die Sie möglicherweise damit tun möchten.
-
Ihre Bewerbung anzeigen inAWS Serverless Application Repository — Die Ausgabe des
sam publish
Befehls enthält einen Link, derAWS Serverless Application Repository direkt zur Detailseite Ihrer Anwendung führt. Sie können auch zur AWS Serverless Application Repository-Landingpage gehen und nach Ihrer Anwendung suchen. -
Teilen Sie Ihre Anwendung — Da Ihre Anwendung standardmäßig auf privat gesetzt ist, ist sie für andereAWS Konten nicht sichtbar. Um Ihre Bewerbung mit anderen zu teilen, müssen Sie sie entweder veröffentlichen oder einer bestimmten Liste vonAWS Konten die Erlaubnis erteilen. Weitere Informationen zum Freigeben Ihrer Anwendung mithilfe der AWS CLI finden Sie unter AWS Serverless Application RepositoryBeispiele für Anwendungsrichtlinien. Informationen zum Freigeben Ihrer Anwendung über die Konsole finden Sie unter Freigeben einer Anwendung.
Weitere Informationen
Weitere Informationen zum Abschnitt Metadata
der AWS SAM-Vorlagen, die Befehle sam package
und sam publish
der AWS SAM-CLI finden Sie unter Veröffentlichen von Anwendungen mithilfe der AWS SAM-CLI im AWS Serverless Application Model-Entwicklerhandbuch.