

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.

# Tutorial: Erstellen Sie eine Pipeline, die Ihre serverlose Anwendung auf dem veröffentlicht AWS Serverless Application Repository
<a name="tutorials-serverlessrepo-auto-publish"></a>

Sie können AWS CodePipeline es verwenden, um Ihre AWS SAM serverlose Anwendung kontinuierlich an die bereitzustellen. AWS Serverless Application Repository

**Wichtig**  
Im Rahmen der Erstellung einer Pipeline wird ein vom Kunden bereitgestellter S3-Artefakt-Bucket von CodePipeline für Artefakte verwendet. (Dies unterscheidet sich von dem Bucket, der für eine S3-Quellaktion verwendet wird.) Wenn sich der S3-Artefakt-Bucket in einem anderen Konto befindet als das Konto für Ihre Pipeline, stellen Sie sicher, dass der S3-Artefakt-Bucket denjenigen gehört AWS-Konten , die sicher und zuverlässig sind.

Dieses Tutorial zeigt, wie Sie eine Pipeline erstellen und konfigurieren, um Ihre serverlose Anwendung zu erstellen, auf der gehostet wird, GitHub und sie automatisch auf der zu veröffentlichen. AWS Serverless Application Repository Die Pipeline wird GitHub als Quellanbieter und CodeBuild als Buildanbieter verwendet. Um Ihre serverlose Anwendung auf dem zu veröffentlichen AWS Serverless Application Repository, stellen Sie eine [Anwendung](https://serverlessrepo.aws.amazon.com/applications/arn:aws:serverlessrepo:us-east-1:077246666028:applications~aws-serverless-codepipeline-serverlessrepo-publish ) (von AWS Serverless Application Repository) bereit und ordnen die von dieser Anwendung erstellte Lambda-Funktion als Invoke-Aktionsanbieter in Ihrer Pipeline zu. Anschließend können Sie kontinuierlich Anwendungsupdates für die bereitstellen AWS Serverless Application Repository, ohne Code schreiben zu müssen.

**Wichtig**  
Viele der Aktionen, die Sie Ihrer Pipeline in diesem Verfahren hinzufügen, beinhalten AWS Ressourcen, die Sie erstellen müssen, bevor Sie die Pipeline erstellen. AWS Ressourcen für Ihre Quellaktionen müssen immer in derselben AWS Region erstellt werden, in der Sie Ihre Pipeline erstellen. Wenn Sie Ihre Pipeline beispielsweise in der Region USA Ost (Ohio) erstellen, muss sich Ihr CodeCommit Repository in der Region USA Ost (Ohio) befinden.   
Sie können beim Erstellen Ihrer Pipeline regionsübergreifende Aktionen hinzufügen. AWS Ressourcen für regionsübergreifende Aktionen müssen sich in derselben AWS Region befinden, in der Sie die Aktion ausführen möchten. Weitere Informationen finden Sie unter [Fügen Sie eine regionsübergreifende Aktion hinzu in CodePipeline](actions-create-cross-region.md).

## Bevor Sie beginnen
<a name="tutorials-serverlessrepo-auto-publish-prereq"></a>

In diesem Tutorial wird von Folgendem ausgegangen. 
+ Sie sind mit [AWS Serverless Application Model (AWS SAM)](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/) und dem [AWS Serverless Application Repository](https://docs.aws.amazon.com/serverlessrepo/latest/devguide/) vertraut.
+ Sie haben eine serverlose Anwendung gehostet GitHub , die Sie AWS Serverless Application Repository mithilfe der AWS SAM CLI auf der veröffentlicht haben. Informationen zum Veröffentlichen einer Beispielanwendung auf der AWS Serverless Application Repository finden Sie unter [Schnellstart: Veröffentlichen von Anwendungen](https://docs.aws.amazon.com/serverlessrepo/latest/devguide/serverlessrepo-quick-start.html) im *AWS Serverless Application Repository Entwicklerhandbuch*. Informationen zum Veröffentlichen Ihrer eigenen Anwendung auf dem AWS Serverless Application Repository finden Sie unter [Veröffentlichen von Anwendungen mit der AWS SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-template-publishing-applications.html) im *AWS Serverless Application Model Entwicklerhandbuch*.

## Schritt 1: Erstellen einer buildspec.yml-Datei
<a name="serverlessrepo-auto-publish-create-buildspec"></a>

Erstellen Sie eine `buildspec.yml` Datei mit dem folgenden Inhalt und fügen Sie sie dem GitHub Repository Ihrer serverlosen Anwendung hinzu. {{template.yml}}Ersetzen Sie sie durch die AWS SAM Vorlage Ihrer Anwendung und {{bucketname}} durch den S3-Bucket, in dem Ihre verpackte Anwendung gespeichert ist.

```
version: 0.2
phases:
  install:
    runtime-versions:
        python: 3.8
  build:
    commands:
      - sam package --template-file {{template.yml}} --s3-bucket {{bucketname}} --output-template-file packaged-template.yml
artifacts:
  files:
    - packaged-template.yml
```

## Schritt 2: Erstellen und Konfigurieren Ihrer Pipeline
<a name="serverlessrepo-auto-publish-create-pipeline"></a>

Gehen Sie wie folgt vor, um Ihre Pipeline dort zu erstellen AWS-Region , wo Sie Ihre serverlose Anwendung veröffentlichen möchten.

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die CodePipeline Konsole unter [https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/).

1. Wechseln Sie bei Bedarf zu dem AWS-Region Ort, an dem Sie Ihre serverlose Anwendung veröffentlichen möchten.

1. Wählen sie auf der Seite **Welcome (Willkommen)** die Option **Getting started (Erste Schritte)** aus, oder auf der Seite **Pipelines** die Option **Create pipeline (Pipeline erstellen)**.

1. Wählen Sie auf der Seite **Schritt 1: Erstellungsoption auswählen** unter **Erstellungsoptionen** die Option **Benutzerdefinierte Pipeline erstellen** aus. Wählen Sie **Weiter** aus.

1. Wählen Sie **Create pipeline (Pipeline erstellen)** aus. Geben Sie auf der Seite **Schritt 2: Pipeline-Einstellungen auswählen** im Feld **Pipeline-Name** den Namen für Ihre Pipeline ein.

1. Wählen Sie unter **Pipeline-Typ** die Option **V2** aus. Weitere Informationen finden Sie unter [Arten von Pipelines](pipeline-types.md). Wählen Sie **Weiter** aus.

1. Wählen Sie unter **Servicerolle** die Option **Neue Servicerolle** aus, um CodePipeline die Erstellung einer Servicerolle in IAM zu ermöglichen.

1. Belassen Sie die Einstellungen unter **Erweiterte Einstellungen** bei den Standardeinstellungen, und wählen Sie dann **Next (Weiter)** aus.

1. Wählen Sie auf der Seite **Schritt 3: Quellstufe hinzufügen** im Feld **Quellanbieter** die Option aus **GitHub**.

1. Wählen Sie unter **Verbindung** eine bestehende Verbindung aus, oder erstellen Sie eine neue. Informationen zum Erstellen oder Verwalten einer Verbindung für Ihre GitHub Quellaktion finden Sie unter[GitHub Verbindungen](connections-github.md).

1. Wählen Sie **unter Repository** Ihr GitHub Quell-Repository aus.

1. Wählen Sie **unter Branch** Ihren GitHub Branch aus.

1. Behalten Sie die übrigen Standardeinstellungen für die Quellaktion bei. Wählen Sie **Weiter** aus.

1. **Fügen Sie auf der Seite Schritt 4: Build-Phase** hinzufügen eine Build-Phase hinzu:

   1. Wählen Sie unter **Build provider (Build-Anbieter)** die Option **AWS CodeBuild** aus. Verwenden Sie als **Region** die Region der Pipeline.

   1. Wählen Sie **Create project** (Projekt erstellen) aus.

   1. Geben Sie unter **Project name (Projektname)** einen Namen für dieses Build-Projekt ein.

   1. Wählen Sie für **Environment image (Umgebungs-Image)** die Option **Managed image (Verwaltetes Image)** aus. Wählen Sie für **Operating system (Betriebssystem)** die Option **Ubuntu** aus.

   1. Wählen Sie für **Runtime (Laufzeit)** und **Runtime version (Laufzeitversion)** die erforderliche Laufzeit und die Version für Ihre serverlose Anwendung.

   1. Wählen Sie unter **Service role (Servicerolle)** die Option **New service role (Neue Servicerolle)** aus.

   1. Wählen Sie unter **Build specifications (Build-Spezifikationen)** die Option **Use a buildspec file (Eine buildspec-Datei verwenden)**.

   1. Wählen Sie **Weiter zu CodePipeline**. Dadurch wird die CodePipeline Konsole geöffnet und ein CodeBuild Projekt erstellt, das die `buildspec.yml` in Ihrem Repository für die Konfiguration verwendet. Das Build-Projekt verwendet eine Servicerolle zur Verwaltung von AWS-Service Berechtigungen. Dieser Vorgang kann einige Minuten dauern.

   1. Wählen Sie **Weiter** aus.

1. Wählen Sie in **Schritt 5: Testphase hinzufügen** die Option **Testphase überspringen** aus und akzeptieren Sie dann die Warnmeldung, indem Sie erneut **Überspringen** wählen. 

   Wählen Sie **Weiter** aus.

1. Wählen Sie auf der Seite **Schritt 6: Bereitstellungsphase hinzufügen** die Option **Bereitstellungsphase überspringen** aus und akzeptieren Sie dann die Warnmeldung, indem Sie erneut auf **Überspringen** klicken. Wählen Sie **Weiter** aus.

1. Wählen **Sie auf Schritt 7: Überprüfen** die Option **Pipeline erstellen** aus. Sie sollten ein Diagramm sehen, das die Phasen zeigt.

1. Erteilen Sie der CodeBuild Servicerolle die Berechtigung, auf den S3-Bucket zuzugreifen, in dem Ihre verpackte Anwendung gespeichert ist.

   1. Wählen Sie in der **Build**-Phase Ihrer neuen Pipeline **CodeBuild**.

   1. Wählen Sie die Registerkarte **Build details (Build-Details)** aus.

   1. Wählen Sie unter **Umgebung** die CodeBuild Servicerolle aus, um die IAM-Konsole zu öffnen.

   1. Erweitern Sie die Auswahl für `CodeBuildBasePolicy` und wählen Sie **Edit policy (Richtlinie bearbeiten)**.

   1. Wählen Sie **JSON**.

   1. Fügen Sie eine neue Richtlinienanweisung mit den folgenden Inhalten hinzu. Die Anweisung ermöglicht es CodeBuild , Objekte in den S3-Bucket zu legen, in dem Ihre verpackte Anwendung gespeichert ist. {{bucketname}}Ersetzen Sie es durch den Namen Ihres S3-Buckets.

      ```
              {
                  "Effect": "Allow",
                  "Resource": [
                      "arn:aws:s3:::{{bucketname}}/*"
                  ],
                  "Action": [
                      "s3:PutObject"
                  ]
              }
      ```

   1. Wählen Sie **Richtlinie prüfen**.

   1. Wählen Sie **Änderungen speichern ** aus.

## Schritt 3: Bereitstellen der Veröffentlichungsanwendung
<a name="serverlessrepo-auto-publish-deploy-app"></a>

Gehen Sie wie folgt vor, um die Anwendung bereitzustellen, die die Lambda-Funktion enthält, die die Veröffentlichung auf dem AWS Serverless Application Repository durchführt. Diese Anwendung ist **aws-serverless-codepipeline-serverlessrepo-publish**.

**Anmerkung**  
Sie müssen die Anwendung in derselben AWS-Region Pipeline bereitstellen.

1. Gehen Sie zur Seite der [Anwendung](https://serverlessrepo.aws.amazon.com/applications/arn:aws:serverlessrepo:us-east-1:077246666028:applications~aws-serverless-codepipeline-serverlessrepo-publish ) und wählen Sie **Deploy (Bereitstellen)**.

1. Wählen Sie **I acknowledge that this app creates custom IAM roles (Ich bestätige, dass diese Anwendung benutzerdefinierte IAM-Rollen erstellt)**. 

1. Wählen Sie **Bereitstellen**.

1. Wählen Sie **View CloudFormation Stack**, um die CloudFormation Konsole zu öffnen.

1. Erweitern Sie den Abschnitt **Resources (Ressourcen)**. Sie sehen **ServerlessRepoPublish**, welcher vom Typ ist **AWS::Lambda::Function**. Notieren Sie sich die physische ID dieser Ressource für den nächsten Schritt. Sie verwenden diese physische ID beim Erstellen der neuen Veröffentlichungsaktion in CodePipeline.

## Schritt 4: Erstellen der Veröffentlichungsaktion
<a name="serverlessrepo-auto-publish-create-action"></a>

Führen Sie die folgenden Schritte aus, um die Veröffentlichungsaktion in Ihrer Pipeline zu erstellen.

1. Öffnen Sie die CodePipeline Konsole unter [https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/).

1. Wählen Sie im linken Navigationsbereich die Pipeline aus, die Sie bearbeiten möchten.

1. Wählen Sie **Bearbeiten** aus.

1. Wählen Sie nach der letzten Phase Ihrer aktuellen Pipeline **\+ Add stage (Phase hinzufügen)**. Geben Sie unter **Stage name (Name der Phase)** einen Namen ein, etwa **Publish**, und wählen Sie **Add stage (Phase hinzufügen)**.

1. Wählen Sie in der neuen Phase **\+ Add action group (Aktionsgruppe hinzufügen)**.

1. Geben Sie einen Aktionsnamen ein. Wählen Sie unter **Action provider (Aktionsanbieter)** in **Invoke**, die Option **AWS Lambda**.

1. Wählen Sie **unter Eingabeartefakte** die Option **BuildArtifact**.

1. Wählen Sie **unter Funktionsname** die physische ID der Lambda-Funktion aus, die Sie im vorherigen Schritt notiert haben.

1. Wählen Sie für die Aktion **Save (Speichern)**.

1. Wählen Sie für die Phase **Done (Fertig)** aus.

1. Wählen Sie rechts oben **Save (Speichern)** aus.

1. Um Ihre Pipeline zu überprüfen, nehmen Sie eine Änderung an Ihrer Anwendung in GitHub vor. Ändern Sie beispielsweise die Beschreibung der Anwendung im `Metadata` Abschnitt Ihrer AWS SAM Vorlagendatei. Übernehmen Sie die Änderung und übertragen Sie sie an Ihre GitHub Filiale. Damit wird die Ausführung Ihrer Pipeline ausgelöst. Wenn die Pipeline fertiggestellt ist, prüfen Sie im [AWS Serverless Application Repository](https://console.aws.amazon.com/serverlessrepo/home), ob Ihre Anwendung mit Ihrer Änderung aktualisiert wurde.