Bereitstellen von Serverless-Anwendungen - AWS Serverless Application Model

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.

Bereitstellen von Serverless-Anwendungen

AWS SAM verwendet AWS CloudFormation als zugrunde liegenden Bereitstellungsmechanismus. Weitere Informationen finden Sie unter Was ist AWS CloudFormation? im AWS CloudFormation-Benutzerhandbuch. Die Standardeingaben für die Bereitstellung von Serverless-Anwendungen sind die Build-Artefakte, die mit dem sam build Befehl erstellt wurden. Mehr über sam build erfahren Sie unter Erstellen von Serverless-Anwendungen.

Sie können Ihre Anwendung manuell mithilfe von AWS SAM Befehlszeilenschnittstellenbefehlen (CLI) bereitstellen. Sie können die Bereitstellungen Ihrer Anwendung auch mithilfe eines CI/CD-Systems (Continuous Integration and Continuous Deployment) automatisieren. Sie können viele gängige CI/CD-Systeme für die Bereitstellung von AWS SAM Anwendungen verwenden, darunter AWS CodePipeline, Jenkins , GitLab CI/CD und GitHub Aktionen .

Bereitstellen mit CI/CD-Systemen

AWS SAM hilft Organisationen dabei, Pipelines für ihre bevorzugten CI/CD-Systeme zu erstellen, damit sie die Vorteile von CI/CD mit minimalem Aufwand nutzen können, z. B. durch eine Beschleunigung der Bereitstellungshäufigkeit, eine Verkürzung der Vorlaufzeit für Änderungen und eine Reduzierung von Bereitstellungsfehlern.

AWS SAM vereinfacht CI/CD-Aufgaben für Serverless-Anwendungen mithilfe von Container-Images. Die von AWS SAM bereitgestellten Images enthalten die Build-Tools AWS SAMCLI und für eine Reihe unterstützter AWS Lambda Laufzeiten. Dies erleichtert das Erstellen und Verpacken von Serverless-Anwendungen mit der AWS SAMCLI. Diese Images machen es Teams auch überflüssig, ihre eigenen Images für CI/CD-Systeme zu erstellen und zu verwalten. Weitere Informationen zum AWS SAM Erstellen von Container-Images finden Sie unter Bild-Repositorien.

Mehrere CI/CD-Systeme unterstützen AWS SAM Build-Container-Images. Welches CI/CD-System Sie verwenden sollten, hängt von mehreren Faktoren ab. Dazu gehört, ob Ihre Anwendung eine einzelne Laufzeit oder mehrere Laufzeiten verwendet oder ob Sie Ihre Anwendung in einem Container-Image oder direkt auf einem Host-Computer erstellen möchten, entweder einer virtuellen Maschine (VM) oder einem Bare-Metal-Host.

AWS SAM bietet auch eine Reihe von Standard-Pipeline-Vorlagen für mehrere CI/CD-Systeme, die die bewährten Bereitstellungsmethoden von AWSkapseln. Diese Standard-Pipeline-Vorlagen verwenden Standard-JSON/YAML-Pipeline-Konfigurationsformate. Die integrierten bewährten Methoden helfen bei der Durchführung von Bereitstellungen mit mehreren Konten und Regionen und stellen sicher, dass Pipelines keine unbeabsichtigten Änderungen an der Infrastruktur vornehmen können.

Sie haben zwei Hauptoptionen für die Verwendung von AWS SAM zur Bereitstellung Ihrer Serverless-Anwendungen: 1) Ändern Sie Ihre vorhandene Pipeline-Konfiguration, um -AWS SAMCLIBefehle zu verwenden, oder 2) Generieren Sie eine CI/CD-Beispiel-Pipeline-Konfiguration, die Sie als Ausgangspunkt für Ihre eigene Anwendung verwenden können.

Weitere Informationen zu diesen Optionen finden Sie in den folgenden Themen:

Bereitstellen mit der AWS SAM CLI

Nachdem Sie Ihre Serverless-Anwendung lokal entwickelt und getestet haben, können Sie Ihre Anwendung mit dem sam deploy Befehl bereitstellen.

Um Sie durch die Bereitstellung mit Eingabeaufforderungen AWS SAM führen zu lassen, geben Sie das --guided Flag an. Wenn Sie dieses Flag angeben, komprimiert der sam deploy Befehl Ihre Anwendungsartefakte, lädt sie entweder in Amazon Simple Storage Service (Amazon S3) (für ZIP-Dateiarchive) oder in Amazon Elastic Container Registry (Amazon ECR) (für Container-Images) hoch. Der Befehl stellt dann Ihre Anwendung in der AWS Cloud bereit.

Beispiel:

# Deploy an application using prompts: sam deploy --guided

Fehlerbehebung bei Bereitstellungen mithilfe der AWS SAMCLI

AWS SAMCLI Fehler: „Sicherheitseinschränkungen nicht zufrieden“

Wenn Sie ausführensam deploy --guided, werden Sie zur Frage aufgefordertHelloWorldFunction may not have authorization defined, Is this okay? [y/N]. Wenn Sie auf diese Eingabeaufforderung mit N (Standardantwort) antworten, wird der folgende Fehler angezeigt:

 
Error: Security Constraints Not Satisfied
            

Die Eingabeaufforderung informiert Sie darüber, dass für die Anwendung, die Sie bereitstellen werden, möglicherweise eine Amazon API Gateway-API ohne Autorisierung konfiguriert ist. Wenn Sie N auf diese Eingabeaufforderung antworten, sagen Sie, dass dies nicht in Ordnung ist.

Um dies zu beheben, haben Sie die folgenden Optionen:

  • Konfigurieren Sie Ihre Anwendung mit -Autorisierung. Informationen zur Konfiguration der Autorisierung finden Sie unter Steuern des Zugriffs auf API Gateway Gateway-APIs.

  • Antworten Sie auf diese Frage mit , Y um anzuzeigen, dass Sie mit der Bereitstellung einer Anwendung in Ordnung sind, für die eine API Gateway-API ohne Autorisierung konfiguriert ist.

Schrittweise Bereitstellungen

Wenn Sie Ihre AWS SAM Anwendung schrittweise und nicht auf einmal bereitstellen möchten, können Sie Bereitstellungskonfigurationen angeben, die AWS CodeDeploy bereitstellt. Weitere Informationen finden Sie unter Arbeiten mit Bereitstellungskonfigurationen in CodeDeploy im AWS CodeDeploy -Benutzerhandbuch.

Informationen zur Konfiguration Ihrer AWS SAM Anwendung für die schrittweise Bereitstellung finden Sie unter Schrittweise Bereitstellung von Serverless-Anwendungen.

Weitere Informationen

Praktische Beispiele für die Bereitstellung von Serverless-Anwendungen finden Sie in den folgenden Abschnitten von Der vollständige AWS SAM Workshop:

  • Modul 3 – Manuelles Bereitstellen – Erfahren Sie, wie Sie eine Serverless-Anwendung mithilfe der erstellen, AWS SAMverpacken und bereitstellenCLI.

  • Modul 4 – CI/CD – Erfahren Sie, wie Sie die Build-, Paket- und Bereitstellungsphasen automatisieren können, indem Sie eine Pipeline für kontinuierliche Integration und Bereitstellung (CI/CD) erstellen.