

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.

# Veröffentlichen Sie Ihre Bewerbung mit dem AWS SAMCLI
<a name="serverless-sam-template-publishing-applications"></a>

Um Ihre AWS SAM Anwendung anderen Benutzern zum Suchen und Bereitstellen zur Verfügung AWS SAMCLI zu stellen, können Sie sie mit dem veröffentlichen AWS Serverless Application Repository. Um Ihre Anwendung mit dem zu veröffentlichen AWS SAMCLI, müssen Sie sie mithilfe einer AWS SAM Vorlage definieren. Sie müssen es auch lokal oder in der AWS Cloud getestet haben.

Folgen Sie den Anweisungen in diesem Thema, um eine neue Anwendung zu erstellen, eine neue Version einer vorhandenen Anwendung zu erstellen oder die Metadaten einer vorhandenen Anwendung zu aktualisieren. (Was Sie tun, hängt davon ab AWS Serverless Application Repository, ob die Anwendung bereits in der vorhanden ist und ob sich Anwendungsmetadaten ändern.) Weitere Informationen zu Anwendungsmetadaten finden Sie unter[AWS SAM Eigenschaften des Vorlagen-Metadatenabschnitts](serverless-sam-template-publishing-applications-metadata-properties.md).

## Voraussetzungen
<a name="serverless-sam-template-publishing-applications-prerequisites"></a>

Bevor Sie eine Anwendung AWS Serverless Application Repository unter Verwendung von veröffentlichen AWS SAMCLI, müssen Sie über Folgendes verfügen:
+ Das AWS SAMCLI ist installiert. Weitere Informationen finden Sie unter [Installieren Sie das AWS SAMCLI](install-sam-cli.md). Führen Sie den folgenden Befehl aus, um festzustellen, ob der installiert AWS SAMCLI ist:

  ```
  sam --version
  ```
+ Eine gültige AWS SAM Vorlage.
+ Ihr Anwendungscode und die Abhängigkeiten, auf die die AWS SAM Vorlage verweist.
+ Eine semantische Version, die nur erforderlich ist, um Ihre Anwendung öffentlich zu teilen. Dieser Wert kann so einfach wie 1,0 sein.
+ Eine URL, die auf den Quellcode Ihrer Anwendung verweist.
+ Die Datei `README.md`. In dieser Datei sollte beschrieben werden, wie Kunden Ihre Anwendung verwenden können und wie sie konfiguriert wird, bevor sie sie in ihren eigenen AWS Konten bereitstellen.
+ Eine `LICENSE.txt` Datei, die nur benötigt wird, um Ihre Anwendung öffentlich zu teilen.
+ Wenn Ihre Anwendung verschachtelte Anwendungen enthält, müssen Sie diese bereits in der AWS Serverless Application Repository veröffentlicht haben.
+ Eine gültige Bucket-Richtlinie von Amazon Simple Storage Service (Amazon S3), die dem Service Leseberechtigungen für Artefakte gewährt, die Sie beim Verpacken Ihrer Anwendung auf Amazon S3 hochladen. Gehen Sie wie folgt vor, um diese Richtlinie einzurichten:

  1. Öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

  1. Wählen Sie den Namen des Amazon S3 S3-Buckets, den Sie zum Verpacken Ihrer Anwendung verwendet haben.

  1. Wählen Sie **Berechtigungen**.

  1. Wählen Sie auf der Registerkarte **Berechtigungen** unter **Bucket-Richtlinie** die Option **Bearbeiten** aus.

  1. Fügen Sie auf der Seite **Bucket-Richtlinie bearbeiten** die folgende Richtlinienerklärung in den **Policy-Editor** ein. Stellen Sie sicher, dass Sie in der Richtlinienerklärung Ihren Bucket-Namen im `Resource` Element und Ihre AWS Konto-ID im `Condition` Element verwenden. Der Ausdruck im `Condition` Element stellt sicher, AWS Serverless Application Repository dass Sie nur über das angegebene AWS Konto auf Anwendungen zugreifen dürfen. Weitere Informationen zu Richtlinienerklärungen finden Sie in der [Referenz zu den IAM-JSON-Richtlinienelementen](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) im *IAM-Benutzerhandbuch*.

------
#### [ JSON ]

****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Effect": "Allow",
                 "Principal": {
                     "Service":  "serverlessrepo.amazonaws.com"
                 },
                 "Action": "s3:GetObject",
                 "Resource": "arn:aws:s3:::<your-bucket-name>/*",
                 "Condition" : {
                     "StringEquals": {
                         "aws:SourceAccount": "123456789012"
                     }
                 }
             }
         ]
     }
     ```

------

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

## Eine neue Anwendung veröffentlichen
<a name="serverless-sam-template-publishing-applications-new-app"></a>

### Schritt 1: Fügen Sie der AWS SAM Vorlage einen `Metadata` Abschnitt hinzu
<a name="serverless-sam-template-publishing-applications-step1"></a>

Fügen Sie Ihrer AWS SAM Vorlage zunächst einen `Metadata` Abschnitt hinzu. Geben Sie die Anwendungsinformationen an, die auf der veröffentlicht werden sollen AWS Serverless Application Repository.

Im Folgenden finden Sie einen `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

Resources:
  HelloWorldFunction:
    Type: AWS::Lambda::Function
      Properties:
        ...
        CodeUri: source-code1
        ...
```

Weitere Informationen zu `Metadata` diesem Abschnitt der AWS SAM Vorlage finden Sie unter[AWS SAM Eigenschaften des Vorlagen-Metadatenabschnitts](serverless-sam-template-publishing-applications-metadata-properties.md).

### Schritt 2: Verpacken Sie die Anwendung
<a name="serverless-sam-template-publishing-applications-step2"></a>

Führen Sie den folgenden AWS SAMCLI Befehl aus, der die Artefakte der Anwendung auf Amazon S3 hochlädt und eine neue Vorlagendatei mit dem Namen `packaged.yaml` ausgibt:

```
sam package --output-template-file packaged.yaml --s3-bucket <your-bucket-name>
```

Sie verwenden die `packaged.yaml` Vorlagendatei im nächsten Schritt, um die Anwendung auf dem AWS Serverless Application Repository zu veröffentlichen. Diese Datei ähnelt der ursprünglichen Vorlagendatei (`template.yaml`), weist jedoch einen wesentlichen Unterschied auf: Die `ReadmeUrl` Eigenschaften `CodeUri``LicenseUrl`, und verweisen auf den Amazon S3 S3-Bucket und Objekte, die die entsprechenden Artefakte enthalten.

Der folgende Ausschnitt aus einer `packaged.yaml`-Beispielvorlagendatei zeigt die `CodeUri`-Eigenschaft:

```
MySampleFunction:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: s3://bucketname/fbd77a3647a4f47a352fcObjectGUID

...
```

### Schritt 3: Veröffentlichen Sie die Anwendung
<a name="serverless-sam-template-publishing-applications-step3"></a>

Führen Sie den folgenden AWS SAMCLI Befehl aus AWS Serverless Application Repository, um eine private Version Ihrer AWS SAM Anwendung auf dem zu veröffentlichen:

```
sam publish --template packaged.yaml --region us-east-1
```

Die Ausgabe des `sam publish` Befehls enthält einen Link zu Ihrer Anwendung auf der AWS Serverless Application Repository. Sie können auch direkt zur [AWS Serverless Application Repository Landingpage](https://serverlessrepo.aws.amazon.com/applications) gehen und nach Ihrer Anwendung suchen.

### Schritt 4: Teilen Sie die Anwendung (optional)
<a name="serverless-sam-template-publishing-applications-step4"></a>

Standardmäßig ist Ihre Anwendung auf privat eingestellt, sodass sie für andere AWS Konten nicht sichtbar ist. Um Ihre Anwendung mit anderen zu teilen, müssen Sie sie entweder öffentlich machen oder einer bestimmten Liste von AWS Konten die Erlaubnis erteilen.

Informationen zur gemeinsamen Nutzung Ihrer Anwendung mithilfe von finden Sie unter [Beispiele für AWS Serverless Application Repository ressourcenbasierte Richtlinien](https://docs.aws.amazon.com/serverlessrepo/latest/devguide/security_iam_resource-based-policy-examples.html) im *AWS Serverless Application Repository Entwicklerhandbuch*. AWS CLI Informationen zur gemeinsamen Nutzung Ihrer Anwendung mithilfe von finden Sie unter [Gemeinsame Nutzung einer Anwendung](https://docs.aws.amazon.com/serverlessrepo/latest/devguide/serverlessrepo-how-to-publish.html#share-application) im *AWS Serverless Application Repository Entwicklerhandbuch*. AWS-Managementkonsole

## Veröffentlichen einer neuen Version einer vorhandenen Anwendung
<a name="serverless-sam-template-publishing-applications-new-version"></a>

Nachdem Sie eine Anwendung auf dem veröffentlicht haben AWS Serverless Application Repository, möchten Sie möglicherweise eine neue Version davon veröffentlichen. Möglicherweise haben Sie Ihren Lambda-Funktionscode geändert oder Ihrer Anwendungsarchitektur eine neue Komponente hinzugefügt.

Um eine Anwendung zu aktualisieren, die Sie zuvor veröffentlicht haben, veröffentlichen Sie die Anwendung erneut, indem Sie denselben Vorgang verwenden, der zuvor beschrieben wurde. Geben Sie im `Metadata` Abschnitt der AWS SAM Vorlagendatei denselben Anwendungsnamen ein, mit dem Sie sie ursprünglich veröffentlicht haben, fügen Sie jedoch einen neuen `SemanticVersion` Wert hinzu.

Stellen Sie sich beispielsweise eine Anwendung vor, die mit dem Namen `SampleApp` und einem `SemanticVersion` von veröffentlicht wurde`1.0.0`. Um diese Anwendung zu aktualisieren, muss die AWS SAM Vorlage den Namen der Anwendung `SampleApp` und ein `SemanticVersion` von `1.0.1` (oder etwas anderes als`1.0.0`) enthalten.

## Weitere Themen
<a name="serverless-sam-template-publishing-applications-additional-topics"></a>
+ [AWS SAM Eigenschaften des Vorlagen-Metadatenabschnitts](serverless-sam-template-publishing-applications-metadata-properties.md)

# AWS SAM Eigenschaften des Vorlagen-Metadatenabschnitts
<a name="serverless-sam-template-publishing-applications-metadata-properties"></a>

`AWS::ServerlessRepo::Application`ist ein Metadatenschlüssel, mit dem Sie Anwendungsinformationen angeben können, die Sie in der veröffentlichen möchten AWS Serverless Application Repository.

**Anmerkung**  
CloudFormation [Systeminterne Funktionen](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference.html) werden vom `AWS::ServerlessRepo::Application` Metadatenschlüssel nicht unterstützt.

## Eigenschaften
<a name="serverless-sam-template-publishing-applications-metadata-properties-table"></a>

Diese Tabelle enthält Informationen zu den Eigenschaften des `Metadata` Abschnitts der AWS SAM Vorlage. Dieser Abschnitt ist erforderlich, um Anwendungen AWS Serverless Application Repository unter Verwendung von zu veröffentlichen AWS SAMCLI.


****  

| Eigenschaft | Typ | Erforderlich | Beschreibung | 
| --- | --- | --- | --- | 
| Name | Zeichenfolge | TRUE |  Der Name der Anwendung. Minimale Länge = 1. Maximale Länge = 140. Pattern: `"[a-zA-Z0-9\\-]+";`  | 
| Description | Zeichenfolge | TRUE |  Die Beschreibung der Anwendung. Minimale Länge = 1. Maximale Länge = 256.  | 
| Author | Zeichenfolge | TRUE |  Der Name des Autors, der die Anwendung veröffentlicht. Minimale Länge = 1. Maximale Länge = 127. Pattern: `"^[a-z0-9](([a-z0-9]\|-(?!-))*[a-z0-9])?$";`  | 
| SpdxLicenseId | Zeichenfolge | FALSE | Eine gültige Lizenz-ID. Eine Liste der gültigen Lizenzkennungen finden Sie in der [SPDX-Lizenzliste](https://spdx.org/licenses/) auf der Software Package Data Exchange (SPDX) -Website. | 
| LicenseUrl | Zeichenfolge | FALSE |  Der Verweis auf eine lokale Lizenzdatei oder ein Amazon S3 S3-Link zu einer Lizenzdatei, der dem spdxLicenseID-Wert Ihrer Anwendung entspricht. Eine AWS SAM Vorlagendatei, die nicht mit dem `sam package` Befehl gepackt wurde, kann einen Verweis auf eine lokale Datei für diese Eigenschaft enthalten. Damit eine Anwendung mit dem `sam publish` Befehl veröffentlicht werden kann, muss diese Eigenschaft jedoch ein Verweis auf einen Amazon S3 S3-Bucket sein. Maximale Größe: 5 MB. Sie müssen einen Wert für diese Eigenschaft angeben, um Ihre Anwendung öffentlich zu machen. Beachten Sie, dass Sie diese Eigenschaft nicht aktualisieren können, nachdem Ihre Anwendung veröffentlicht wurde. Um einer Anwendung eine Lizenz hinzuzufügen, müssen Sie sie entweder zuerst löschen oder eine neue Anwendung mit einem anderen Namen veröffentlichen.  | 
| ReadmeUrl | Zeichenfolge | FALSE |  Der Verweis auf eine lokale Readme-Datei oder ein Amazon S3 S3-Link zur Readme-Datei, die eine detailliertere Beschreibung der Anwendung und ihrer Funktionsweise enthält. Eine AWS SAM Vorlagendatei, die nicht mit dem `sam package` Befehl gepackt wurde, kann einen Verweis auf eine lokale Datei für diese Eigenschaft enthalten. Um mit dem `sam publish` Befehl veröffentlicht zu werden, muss diese Eigenschaft jedoch ein Verweis auf einen Amazon S3 S3-Bucket sein. Maximale Größe: 5 MB.  | 
| Labels | Zeichenfolge | FALSE |  Die Bezeichnungen, die das Auffinden von Anwendungen in den Suchergebnissen verbessern. Minimale Länge = 1. Maximale Länge = 127. Maximale Anzahl der Etiketten: 10. Pattern: `"^[a-zA-Z0-9+\\-_:\\/@]+$";`  | 
| HomePageUrl | Zeichenfolge | FALSE | Eine URL mit weiteren Informationen über die Anwendung, z. B. den Speicherort Ihres GitHub Repositorys für die Anwendung.  | 
| SemanticVersion | Zeichenfolge | FALSE |  Die semantische Version der Anwendung. [Die Semantic Versioning-Spezifikation finden Sie auf der Semantic Versioning-Website.](https://semver.org/) Sie müssen einen Wert für diese Eigenschaft angeben, um Ihre Anwendung öffentlich zu machen.  | 
| SourceCodeUrl | Zeichenfolge | FALSE | Ein Link zu einem öffentlichen Repository für den Quellcode Ihrer Anwendung. | 

## Anwendungsfälle
<a name="serverless-sam-template-publishing-applications-metadata-properties-cases"></a>

In diesem Abschnitt werden die Anwendungsfälle für die Veröffentlichung von Anwendungen zusammen mit den `Metadata` Eigenschaften aufgeführt, die für diesen Anwendungsfall verarbeitet werden. Eigenschaften, die für einen bestimmten Anwendungsfall *nicht* aufgeführt sind, werden ignoriert.
+ **Eine neue Anwendung erstellen** — Eine neue Anwendung wird erstellt, wenn in der keine Anwendung AWS Serverless Application Repository mit einem passenden Namen für ein Konto vorhanden ist.
  + `Name`
  + `SpdxLicenseId`
  + `LicenseUrl`
  + `Description`
  + `Author`
  + `ReadmeUrl`
  + `Labels`
  + `HomePageUrl`
  + `SourceCodeUrl`
  + `SemanticVersion`
  + Der Inhalt der AWS SAM Vorlage (z. B. alle Eventquellen, Ressourcen und Lambda-Funktionscode)

   
+ **Anwendungsversion erstellen** — Eine Anwendungsversion wird erstellt, wenn in der bereits eine Anwendung AWS Serverless Application Repository mit einem passenden Namen für ein Konto vorhanden SemanticVersion *ist* *und* diese sich ändert.
  + `Description`
  + `Author`
  + `ReadmeUrl`
  + `Labels`
  + `HomePageUrl`
  + `SourceCodeUrl`
  + `SemanticVersion`
  + Der Inhalt der AWS SAM Vorlage (z. B. alle Eventquellen, Ressourcen und Lambda-Funktionscode)

   
+ **Aktualisierung einer Anwendung** — Eine Anwendung wird aktualisiert, wenn in der bereits eine Anwendung AWS Serverless Application Repository mit einem passenden Namen für ein Konto vorhanden SemanticVersion *ist *und* die sich nicht* ändert.
  + `Description`
  + `Author`
  + `ReadmeUrl`
  + `Labels`
  + `HomePageUrl`

## Beispiel
<a name="serverless-sam-template-publishing-applications-metadata-properties-example"></a>

Im Folgenden finden Sie einen `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
```