Quick Start: Veröffentlichen von Anwendungen - AWS Serverless Application Repository

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:

  1. Initialisieren. Laden Sie eine Beispielanwendung aus der Vorlage mithilfe von sam init herunter.

  2. Ausführen lokaler Tests. Testen Sie die Anwendung lokal mit sam local invoke und/oder sam 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.

  3. 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 mitsam package. In diesem Schritt fügen Sie auch Informationen über die Anwendung hinzu, die in das AWS Serverless Application Repository hochgeladen wird.

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

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
  1. Führen Sie den folgenden Befehl bei einer AWS SAM-CLI-Eingabeaufforderung aus.

    sam init --runtime python3.6
  2. Ü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 der init-Befehl den Hello World-Code in der angegebenen Sprache und eine README.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
  1. 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.

  2. 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 lautethttp://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ückhello 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.

  1. Bearbeiten Sie die /hello_world/app.py-Datei, um die Nachrichtenzeichenfolge von 'hello world' in 'Hello World!' zu ändern.

  2. 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
  1. Fügen Sie Ihrer AWS SAM-Vorlagendatei einen Metadata-Abschnitt hinzu, der die erforderlichen Anwendungsinformationen enthält. Weitere Informationen zum Abschnitt Metadata 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

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

  2. 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
  3. Erstellen Sie das Bereitstellungspaket für Lambda-Funktionen, indem Sie den folgendenpackageAWS 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 desaws-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 EigenschaftenCodeUriLicenseUrl, und dieReadmeUrl Eigenschaften verweisen auf den Amazon S3 S3-Bucket und die Objekte, die die entsprechenden Artefakte enthalten. Der folgende Ausschnitt aus einer packaged.yaml-Beispielvorlagendatei zeigt die CodeUri-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 dessam 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.