

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.

# AWS::Serverless::Api
<a name="sam-resource-api"></a>

Erstellt eine Sammlung von Amazon API Gateway Gateway-Ressourcen und -Methoden, die über HTTPS-Endpunkte aufgerufen werden können.

Eine [AWS::Serverless::Api](#sam-resource-api) Ressource muss nicht explizit zu einer Vorlage für AWS serverlose Anwendungsdefinitionen hinzugefügt werden. Eine Ressource dieses Typs wird implizit aus der Vereinigung von API-Ereignissen erstellt, die für [AWS::Serverless::Function](sam-resource-function.md) Ressourcen definiert sind, die in der Vorlage definiert sind und sich nicht auf eine [AWS::Serverless::Api](#sam-resource-api) Ressource beziehen.

Eine [AWS::Serverless::Api](#sam-resource-api) Ressource sollte verwendet werden, um die verwendete API zu definieren und zu dokumentieren OpenApi, was mehr Möglichkeiten bietet, die zugrunde liegenden Amazon API Gateway Gateway-Ressourcen zu konfigurieren.

Wir empfehlen, CloudFormation Hooks oder IAM-Richtlinien zu verwenden, um zu überprüfen, ob an API-Gateway-Ressourcen Autorisatoren angehängt sind, um den Zugriff darauf zu kontrollieren.

Weitere Informationen zur Verwendung von CloudFormation Hooks finden Sie unter [Hooks registrieren](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/registering-hook-python.html) im *CloudFormation CLI-Benutzerhandbuch* und im [apigw-enforce-authorizer](https://github.com/aws-cloudformation/aws-cloudformation-samples/tree/main/hooks/python-hooks/apigw-enforce-authorizer/) GitHub Repository.

Weitere Informationen zur Verwendung von IAM-Richtlinien finden Sie unter [Erfordern, dass API-Routen autorisiert sind](https://docs.aws.amazon.com/apigateway/latest/developerguide/security_iam_id-based-policy-examples.html#security_iam_id-based-policy-examples-require-authorization) im *API Gateway Developer Guide*.

**Anmerkung**  
Bei der Bereitstellung auf werden AWS CloudFormation Ihre AWS SAM Ressourcen in Ressourcen umgewandelt CloudFormation . AWS SAM Weitere Informationen finden Sie unter [Generierte CloudFormation Ressourcen für AWS SAM](sam-specification-generated-resources.md).

## Syntax
<a name="sam-resource-api-syntax"></a>

Verwenden Sie die folgende Syntax, um diese Entität in Ihrer AWS Serverless Application Model (AWS SAM) -Vorlage zu deklarieren.

### YAML
<a name="sam-resource-api-syntax.yaml"></a>

```
Type: AWS::Serverless::Api
Properties:
  [AccessLogSetting](#sam-api-accesslogsetting): {{[AccessLogSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-accesslogsetting)}}
  AlwaysDeploy: {{Boolean}}
  [ApiKeySourceType](#sam-api-apikeysourcetype): {{String}}
  [Auth](#sam-api-auth): {{ApiAuth}}
  [BinaryMediaTypes](#sam-api-binarymediatypes): {{List}}
  [CacheClusterEnabled](#sam-api-cacheclusterenabled): {{Boolean}}
  [CacheClusterSize](#sam-api-cacheclustersize): {{String}}
  [CanarySetting](#sam-api-canarysetting): {{[CanarySetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting)}}
  [Cors](#sam-api-cors): {{String | CorsConfiguration}}
  [DefinitionBody](#sam-api-definitionbody): {{JSON}}
  [DefinitionUri](#sam-api-definitionuri): {{String | ApiDefinition}}
  [Description](#sam-api-description): {{String}}
  [DisableExecuteApiEndpoint](#sam-api-disableexecuteapiendpoint): {{Boolean}}
  [Domain](#sam-api-domain): {{DomainConfiguration}}
  [EndpointAccessMode](#sam-api-endpointaccessmode): {{String}}
  [EndpointConfiguration](#sam-api-endpointconfiguration): {{EndpointConfiguration}}
  [FailOnWarnings](#sam-api-failonwarnings): {{Boolean}}
  [GatewayResponses](#sam-api-gatewayresponses): {{Map}}
  MergeDefinitions: {{Boolean}}
  [MethodSettings](#sam-api-methodsettings): {{MethodSettings}}
  [MinimumCompressionSize](#sam-api-minimumcompressionsize): {{Integer}}
  [Mode](#sam-api-mode): {{String}}
  [Models](#sam-api-models): {{Map}}
  [Name](#sam-api-name): {{String}}
  [OpenApiVersion](#sam-api-openapiversion): {{String}}
  PropagateTags: {{Boolean}}
  [Policy](#sam-api-policy): {{JSON}}
  [SecurityPolicy](#sam-api-securitypolicy): {{String}}
  [StageName](#sam-api-stagename): {{String}}
  [Tags](#sam-api-tags): {{Map}}
  [TracingEnabled](#sam-api-tracingenabled): {{Boolean}}
  [Variables](#sam-api-variables): {{Map}}
```

## Eigenschaften
<a name="sam-resource-api-properties"></a>

 `AccessLogSetting`   <a name="sam-api-accesslogsetting"></a>
Konfiguriert die Einstellung für das Zugriffsprotokoll für eine Phase.  
*Typ:* [AccessLogSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-accesslogsetting)  
*Required*: No  
*CloudFormation Kompatibilität*: Diese Eigenschaft wird direkt an die `[AccessLogSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-accesslogsetting)` Eigenschaft einer `AWS::ApiGateway::Stage` Ressource übergeben.

 `AlwaysDeploy`   <a name="sam-api-alwaysdeploy"></a>
Stellt die API immer bereit, auch wenn keine Änderungen an der API festgestellt wurden.  
*Typ*: Boolesch  
*Required*: No  
*CloudFormation Kompatibilität*: Diese Eigenschaft ist einzigartig für AWS SAM und hat kein CloudFormation Äquivalent.

 `ApiKeySourceType`   <a name="sam-api-apikeysourcetype"></a>
Die Quelle des API-Schlüssels für Messungsanforderungen nach einem Nutzungsplan. Gültige Werte sind `HEADER` und `AUTHORIZER`.  
*Typ:* Zeichenfolge  
*Required*: No  
*CloudFormation Kompatibilität*: Diese Eigenschaft wird direkt an die `[ApiKeySourceType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-apikeysourcetype)` Eigenschaft einer `AWS::ApiGateway::RestApi` Ressource übergeben.

 `Auth`   <a name="sam-api-auth"></a>
Konfigurieren Sie die Autorisierung, um den Zugriff auf Ihre API-Gateway-API zu kontrollieren.  
Weitere Informationen zur Konfiguration des Zugriffs mithilfe von AWS SAM finden Sie unter[Kontrollieren Sie den API-Zugriff mit Ihrer AWS SAM Vorlage](serverless-controlling-access-to-apis.md). Ein Beispiel, das zeigt, wie Sie einen globalen Autorisierer überschreiben können, finden Sie unter[Überschreiben Sie einen globalen Autorisierer für Ihre Amazon API Gateway Gateway-REST-API](sam-property-function-apifunctionauth.md#sam-property-function-apifunctionauth--examples--override).  
*Typ:* [ApiAuth](sam-property-api-apiauth.md)  
*Required*: No  
*CloudFormation Kompatibilität*: Diese Eigenschaft ist einzigartig für AWS SAM und hat kein CloudFormation Äquivalent.

 `BinaryMediaTypes`   <a name="sam-api-binarymediatypes"></a>
Liste der MIME-Typen, die Ihre API zurückgeben könnte. Verwenden Sie dies, um die Binärunterstützung für zu aktivierenAPIs.  
*Typ*: Liste  
*Required*: No  
*CloudFormation Kompatibilität*: Diese Eigenschaft ähnelt der `[BinaryMediaTypes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-binarymediatypes)` Eigenschaft einer `AWS::ApiGateway::RestApi` Ressource. Die Liste von BinaryMediaTypes wird sowohl der CloudFormation Ressource als auch dem OpenAPI-Dokument hinzugefügt.

 `CacheClusterEnabled`   <a name="sam-api-cacheclusterenabled"></a>
Gibt an, ob das Caching für die Phase aktiviert ist. Um Antworten zwischenzuspeichern, müssen Sie auch `CachingEnabled` auf `true` unter `MethodSettings` setzen.  
*Typ*: Boolesch  
*Required*: No  
*CloudFormation Kompatibilität*: Diese Eigenschaft wird direkt an die `[CacheClusterEnabled](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclusterenabled)` Eigenschaft einer `AWS::ApiGateway::Stage` Ressource übergeben.

 `CacheClusterSize`   <a name="sam-api-cacheclustersize"></a>
Die Cache-Cluster-Größe der Stufe.  
*Typ:* Zeichenfolge  
*Required*: No  
*CloudFormation Kompatibilität*: Diese Eigenschaft wird direkt an die `[CacheClusterSize](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclustersize)` Eigenschaft einer `AWS::ApiGateway::Stage` Ressource übergeben.

 `CanarySetting`   <a name="sam-api-canarysetting"></a>
Konfigurieren Sie eine Canary-Einstellung für eine Phase einer regulären Bereitstellung.  
*Typ:* [CanarySetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting)  
*Required*: No  
*CloudFormation Kompatibilität*: Diese Eigenschaft wird direkt an die `[CanarySetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting)` Eigenschaft einer `AWS::ApiGateway::Stage` Ressource übergeben.

 `Cors`   <a name="sam-api-cors"></a>
Verwalten Sie Cross-Origin Resource Sharing (CORS) für Ihr gesamtes API Gateway. APIs Geben Sie die Domäne, die zugelassen werden soll, als Zeichenfolge an oder geben Sie ein Wörterbuch mit zusätzlicher Cors-Konfiguration an.   
CORS erfordert eine AWS SAM Änderung Ihrer OpenAPI-Definition. Erstellen Sie eine Inline-OpenAPI-Definition in`DefinitionBody`, um CORS zu aktivieren.
Weitere Informationen zu CORS finden Sie unter [Aktivieren von CORS für eine API-Gateway-REST-API-Ressource](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html) im *API Gateway Developer Guide*.  
*Typ: Zeichenfolge* \| [CorsConfiguration](sam-property-api-corsconfiguration.md)  
*Required*: No  
*CloudFormation Kompatibilität*: Diese Eigenschaft ist einzigartig für AWS SAM und hat kein CloudFormation Äquivalent.

 `DefinitionBody`   <a name="sam-api-definitionbody"></a>
OpenAPI-Spezifikation, die Ihre API beschreibt. Wenn `DefinitionUri` weder noch angegeben `DefinitionBody` sind, generiert SAM auf der Grundlage Ihrer Vorlagenkonfiguration eine `DefinitionBody` für Sie.  
Verwenden Sie die `AWS::Include` Transformation, um auf eine lokale OpenAPI Datei zu verweisen, die Ihre API definiert. Weitere Informationen hierzu finden Sie unter [Wie werden AWS SAM lokale Dateien hochgeladen](deploy-upload-local-files.md).  
*Type*: JSON  
*Required*: No  
*CloudFormation Kompatibilität*: Diese Eigenschaft ähnelt der `[Body](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-body)` Eigenschaft einer `AWS::ApiGateway::RestApi` Ressource. Wenn bestimmte Eigenschaften bereitgestellt werden, können Inhalte in die eingefügt oder geändert werden, DefinitionBody bevor sie an sie übergeben werden CloudFormation. Zu den Eigenschaften gehören `Auth` `BinaryMediaTypes``Cors`,`GatewayResponses`,`Models`, und eine `EventSource` vom Typ Api für eine entsprechende`AWS::Serverless::Function`.

 `DefinitionUri`   <a name="sam-api-definitionuri"></a>
Amazon S3 S3-URI, lokaler Dateipfad oder Speicherortobjekt des OpenAPI-Dokuments, das die API definiert. Das Amazon S3 S3-Objekt, auf das diese Eigenschaft verweist, muss eine gültige OpenAPI-Datei sein. Wenn `DefinitionUri` weder noch angegeben `DefinitionBody` sind, generiert SAM auf der Grundlage Ihrer Vorlagenkonfiguration eine `DefinitionBody` für Sie.  
Wenn ein lokaler Dateipfad angegeben wird, muss die Vorlage den Workflow durchlaufen, der den `sam package` Befehl `sam deploy` oder enthält, damit die Definition ordnungsgemäß transformiert wird.  
Systeminterne Funktionen werden in externen OpenApi Dateien, auf die von verwiesen wird, nicht unterstützt. `DefinitionUri` Verwenden Sie stattdessen die `DefinitionBody` Eigenschaft mit der [Include-Transformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html), um eine OpenApi Definition in die Vorlage zu importieren.  
*Typ*: Zeichenfolge \| [ApiDefinition](sam-property-api-apidefinition.md)  
*Required*: No  
*CloudFormation Kompatibilität*: Diese Eigenschaft ähnelt der `[BodyS3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-bodys3location)` Eigenschaft einer `AWS::ApiGateway::RestApi` Ressource. Die verschachtelten Amazon S3 S3-Eigenschaften sind unterschiedlich benannt.

 `Description`   <a name="sam-api-description"></a>
Eine Beschreibung der Api-Ressource.  
*Typ:* Zeichenfolge  
*Required*: No  
*CloudFormation Kompatibilität*: Diese Eigenschaft wird direkt an die `[Description](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-description)` Eigenschaft einer `AWS::ApiGateway::RestApi` Ressource übergeben.

 `DisableExecuteApiEndpoint`   <a name="sam-api-disableexecuteapiendpoint"></a>
Gibt an, ob Clients Ihre API mithilfe des `execute-api`-Standardendpunkts aufrufen können. Standardmäßig können Clients Ihre API mit der Standardeinstellung `https://{api_id}.execute-api.{region}.amazonaws.com` aufrufen. Wenn Sie erzwingen möchten, dass Kunden einen benutzerdefinierten Domänennamen verwenden, um Ihre API aufzurufen, geben Sie a `True`.  
*Typ*: Boolesch  
*Required*: No  
*CloudFormation Kompatibilität*: Diese Eigenschaft ähnelt der `[ DisableExecuteApiEndpoint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-disableexecuteapiendpoint)` Eigenschaft einer `AWS::ApiGateway::RestApi` Ressource. Sie wird direkt an die `disableExecuteApiEndpoint` Eigenschaft einer `[ x-amazon-apigateway-endpoint-configuration](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-endpoint-configuration.html)` Erweiterung übergeben, die der ` [ Body](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-body)` Eigenschaft einer `AWS::ApiGateway::RestApi` Ressource hinzugefügt wird.

 `Domain`   <a name="sam-api-domain"></a>
Konfiguriert eine benutzerdefinierte Domain für diese API-Gateway-API.  
*Typ:* [DomainConfiguration](sam-property-api-domainconfiguration.md)  
*Required*: No  
*CloudFormation Kompatibilität*: Diese Eigenschaft ist einzigartig für AWS SAM und hat kein CloudFormation Äquivalent.

 `EndpointConfiguration`   <a name="sam-api-endpointconfiguration"></a>
Der Endpunkttyp einer REST-API.  
*Typ:* [EndpointConfiguration](sam-property-api-endpointconfiguration.md)  
*Required*: No  
*CloudFormation Kompatibilität*: Diese Eigenschaft ähnelt der `[EndpointConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-endpointconfiguration)` Eigenschaft einer `AWS::ApiGateway::RestApi` Ressource. Die verschachtelten Konfigurationseigenschaften sind unterschiedlich benannt.

 `EndpointAccessMode`   <a name="sam-api-endpointaccessmode"></a>
Der Zugriffsmodus für den REST-API-Endpunkt. Erforderlich, wenn erweiterte Sicherheitsrichtlinien (solche mit dem Präfix`SecurityPolicy_`) verwendet werden.  
*Zulässige Werte*: `STRICT` oder `BASIC`.  
*Typ:* Zeichenfolge  
*Required*: No  
*CloudFormation Kompatibilität*: Diese Eigenschaft wird direkt an die `[EndpointAccessMode](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-endpointaccessmode)` Eigenschaft einer `AWS::ApiGateway::RestApi` Ressource übergeben.

 `FailOnWarnings`   <a name="sam-api-failonwarnings"></a>
Gibt an, ob die API-Erstellung rückgängig gemacht werden soll (`true`) oder nicht (`false`), wenn eine Warnung auftritt. Der Standardwert ist `false`.  
*Typ*: Boolesch  
*Required*: No  
*CloudFormation Kompatibilität*: Diese Eigenschaft wird direkt an die `[FailOnWarnings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-failonwarnings)` Eigenschaft einer `AWS::ApiGateway::RestApi` Ressource übergeben.

 `GatewayResponses`   <a name="sam-api-gatewayresponses"></a>
Konfiguriert Gateway-Antworten für eine API. Gateway-Antworten sind Antworten, die von API Gateway entweder direkt oder mithilfe von Lambda-Autorisierern zurückgegeben werden. Weitere Informationen finden Sie in der Dokumentation zur [Api OpenApi Gateway-Erweiterung für Gateway Responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-gateway-responses.html).  
*Typ*: Karte  
*Required*: No  
*CloudFormation Kompatibilität*: Diese Eigenschaft ist einzigartig für AWS SAM und hat kein CloudFormation Äquivalent.

 `MergeDefinitions`   <a name="sam-api-mergedefinitions"></a>
AWS SAM generiert eine OpenAPI Spezifikation aus Ihrer API-Ereignisquelle. Geben Sie `true` an, dass dies mit der in Ihrer `AWS::Serverless::Api` Ressource definierten OpenAPI Inline-Spezifikation AWS SAM zusammengeführt werden soll. Geben Sie `false` an, dass nicht zusammengeführt werden soll.  
`MergeDefinitions`erfordert, dass die `DefinitionBody` Eigenschaft `AWS::Serverless::Api` für definiert wird. `MergeDefinitions`ist nicht kompatibel mit der `DefinitionUri` Eigenschaft für`AWS::Serverless::Api`.  
*Standardwert*: `false`  
*Typ*: Boolesch  
*Required*: No  
*CloudFormation Kompatibilität*: Diese Eigenschaft ist einzigartig für AWS SAM und hat kein CloudFormation Äquivalent.

 `MethodSettings`   <a name="sam-api-methodsettings"></a>
Konfiguriert alle Einstellungen für die API-Phase, einschließlich Logging, Metrics, CacheTTL und Throttling.  
*Typ*: Liste von [ MethodSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html)  
*Required*: No  
*CloudFormation Kompatibilität*: Diese Eigenschaft wird direkt an die `[MethodSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-methodsettings)` Eigenschaft einer Ressource übergeben. `AWS::ApiGateway::Stage`

 `MinimumCompressionSize`   <a name="sam-api-minimumcompressionsize"></a>
Erlaubt die Komprimierung von Antworttexten auf der Grundlage des Accept-Encoding-Headers des Clients. Die Komprimierung wird ausgelöst, wenn die Größe des Antworttextes größer oder gleich dem konfigurierten Schwellenwert ist. Der maximale Schwellenwert für die Körpergröße beträgt 10 MB (10.485.760 Byte). - Die folgenden Komprimierungstypen werden unterstützt: gzip, deflate und identity.  
*Typ*: Ganzzahl  
*Required*: No  
*CloudFormation Kompatibilität*: Diese Eigenschaft wird direkt an die `[MinimumCompressionSize](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-minimumcompressionsize)` Eigenschaft einer Ressource übergeben. `AWS::ApiGateway::RestApi`

 `Mode`   <a name="sam-api-mode"></a>
Diese Eigenschaft gilt nur, wenn Sie OpenAPI zur Definition Ihrer REST-API verwenden. Der `Mode` bestimmt, wie API Gateway mit Ressourcen-Updates umgeht. Weitere Informationen finden Sie unter [Mode-Eigenschaft](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-mode) des [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html)Ressourcentyps.  
*Zulässige Werte*: `overwrite` oder `merge`.  
*Typ:* Zeichenfolge  
*Required*: No  
*CloudFormation Kompatibilität*: Diese Eigenschaft wird direkt an die `[Mode](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-mode)` Eigenschaft einer `AWS::ApiGateway::RestApi` Ressource übergeben.

 `Models`   <a name="sam-api-models"></a>
Die Schemas, die von Ihren API-Methoden verwendet werden sollen. Diese Schemas können mit JSON oder YAML beschrieben werden. Im Abschnitt Beispiele unten auf dieser Seite finden Sie Beispielmodelle.  
*Typ*: Karte  
*Required*: No  
*CloudFormation Kompatibilität*: Diese Eigenschaft ist einzigartig für AWS SAM und hat kein CloudFormation Äquivalent.

 `Name`   <a name="sam-api-name"></a>
Ein Name für die RestApi API-Gateway-Ressource  
*Typ:* Zeichenfolge  
*Required*: No  
*CloudFormation Kompatibilität*: Diese Eigenschaft wird direkt an die `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-name)` Eigenschaft einer `AWS::ApiGateway::RestApi` Ressource übergeben.

 `OpenApiVersion`   <a name="sam-api-openapiversion"></a>
Version von OpenApi , die verwendet werden soll. Dies kann entweder `2.0` für die Swagger-Spezifikation oder für eine der OpenApi 3.0-Versionen sein. `3.0.1` Weitere Informationen zu OpenAPI finden Sie in der [OpenAPI-Spezifikation](https://swagger.io/specification/).  
 AWS SAM erstellt eine Stage, die `Stage` standardmäßig aufgerufen wird. Wenn Sie diese Eigenschaft auf einen beliebigen gültigen Wert setzen, wird die Erstellung der Phase verhindert`Stage`. 
*Typ:* Zeichenfolge  
*Required*: No  
*CloudFormation Kompatibilität*: Diese Eigenschaft ist einzigartig für AWS SAM und hat kein CloudFormation Äquivalent.

`PropagateTags`  <a name="sam-api-propagatetags"></a>
Geben Sie an, ob Tags von der `Tags` Eigenschaft an Ihre [AWS::Serverless::Api](sam-specification-generated-resources-api.md) generierten Ressourcen weitergegeben werden sollen oder nicht. Geben Sie `True` an, dass Tags in Ihren generierten Ressourcen verbreitet werden sollen.  
*Typ*: Boolesch  
*Required*: No  
*Standardwert*: `False`  
*CloudFormation Kompatibilität*: Diese Eigenschaft ist einzigartig für AWS SAM und hat kein CloudFormation Äquivalent.

`Policy`  <a name="sam-api-policy"></a>
Ein Richtliniendokument, das die Berechtigungen für die API enthält. Um den ARN für die Richtlinie festzulegen, verwenden Sie die intrinsische `!Join`-Funktion mit `""` als Trennzeichen und die Werte von `"execute-api:/"` und `"*"`.  
*Type*: JSON  
*Required*: No  
*CloudFormation Kompatibilität*: Diese Eigenschaft wird direkt an die [Policy-Eigenschaft](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-policy) einer `AWS::ApiGateway::RestApi` Ressource übergeben.

 `SecurityPolicy`   <a name="sam-api-securitypolicy"></a>
Die TLS-Version plus die Cipher Suite für die REST-API. Wenn Sie erweiterte Sicherheitsrichtlinien (solche mit dem Präfix`SecurityPolicy>`) verwenden, müssen Sie auch die festlegen. `EndpointAccessMode`  
*Typ:* Zeichenfolge  
*Required*: No  
*CloudFormation Kompatibilität*: Diese Eigenschaft wird direkt an die `[SecurityPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-securitypolicy)` Eigenschaft einer `AWS::ApiGateway::RestApi` Ressource übergeben.

 `StageName`   <a name="sam-api-stagename"></a>
Der Name der Stufe, die API Gateway als erstes Pfadsegment im Aufruf-URI (Uniform Resource Identifier) verwendet.  
Um auf die Staging-Ressource zu verweisen, verwenden Sie`{{<api-logical-id>}}.Stage`. Weitere Hinweise zum Verweisen auf Ressourcen, die bei der Angabe einer [AWS::Serverless::Api](#sam-resource-api) Ressource generiert werden, finden Sie unter[CloudFormation Ressourcen, die generiert werdenAWS::Serverless::Api, wenn angegeben](sam-specification-generated-resources-api.md). Allgemeine Informationen zu generierten CloudFormation Ressourcen finden Sie unter[Generierte CloudFormation Ressourcen für AWS SAM](sam-specification-generated-resources.md).  
*Typ:* Zeichenfolge  
*Erforderlich*: Ja  
*CloudFormation Kompatibilität*: Diese Eigenschaft ähnelt der `[StageName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-stagename)` Eigenschaft einer `AWS::ApiGateway::Stage` Ressource. Es ist in SAM erforderlich, aber nicht in API Gateway  
*Zusätzliche Hinweise*: Die implizite API hat den Stagennamen „Prod“.

 `Tags`   <a name="sam-api-tags"></a>
Eine Zuordnung (Zeichenfolge zu Zeichenfolge), die die Tags angibt, die zu diesem API-Gateway-Schritt hinzugefügt werden sollen. Einzelheiten zu gültigen Schlüsseln und Werten für Tags finden Sie unter [Resource-Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) im *AWS CloudFormation Benutzerhandbuch*.  
*Typ*: Karte  
*Required*: No  
*CloudFormation Kompatibilität*: Diese Eigenschaft ähnelt der `[Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-tags)` Eigenschaft einer `AWS::ApiGateway::Stage` Ressource. Die Tags-Eigenschaft in SAM besteht aus Key:Value-Paaren; darin besteht CloudFormation sie aus einer Liste von Tag-Objekten.

 `TracingEnabled`   <a name="sam-api-tracingenabled"></a>
Zeigt an, ob aktives Tracing mit X-Ray für die Phase aktiviert ist. Weitere Informationen zu X-Ray finden Sie unter [Tracing user requests to REST APIs using X-Ray](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-xray.html) im *API Gateway Developer Guide*.  
*Typ*: Boolesch  
*Required*: No  
*CloudFormation Kompatibilität*: Diese Eigenschaft wird direkt an die `[TracingEnabled](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-tracingenabled)` Eigenschaft einer `AWS::ApiGateway::Stage` Ressource übergeben.

 `Variables`   <a name="sam-api-variables"></a>
Eine Zuordnung (Zeichenfolge zu Zeichenfolge), die die Stufenvariablen definiert, wobei der Variablenname der Schlüssel und der Variablenwert der Wert ist. Variablennamen sind auf alphanumerische Zeichen beschränkt. Werte müssen dem folgenden regulären Ausdruck entsprechen: `[A-Za-z0-9._~:/?#&=,-]+`.  
*Typ*: Karte  
*Required*: No  
*CloudFormation Kompatibilität*: Diese Eigenschaft wird direkt an die `[Variables](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-variables)` Eigenschaft einer `AWS::ApiGateway::Stage` Ressource übergeben.

## Rückgabewerte
<a name="sam-resource-api-return-values"></a>

### Punkt
<a name="sam-resource-api-return-values-ref"></a>

Wenn die logische ID dieser Ressource für die `Ref` intrinsische Funktion bereitgestellt wird, gibt sie die ID der zugrunde liegenden API-Gateway-API zurück.

Weitere Informationen zur Verwendung der `Ref` Funktion finden Sie [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)im *AWS CloudFormation Benutzerhandbuch*. 

### Fn:: GetAtt
<a name="sam-resource-api-return-values-fn--getatt"></a>

`Fn::GetAtt` gibt einen Wert für ein angegebenes Attribut dieses Typs zurück. Im Folgenden sehen Sie die verfügbaren Attribute und Beispielrückgabewerte. 

Weitere Informationen zur Verwendung `Fn::GetAtt` finden Sie [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getatt.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getatt.html)im *AWS CloudFormation Benutzerhandbuch*. 

`RootResourceId`  <a name="RootResourceId-fn::getatt"></a>
Die Stamm-Ressourcen-ID für eine `RestApi`-Ressource, z. B. `a0bc123d4e`.

## Beispiele
<a name="sam-resource-api--examples"></a>

### SimpleApiExample
<a name="sam-resource-api--examples--simpleapiexample"></a>

Eine Hello AWS SAM World-Vorlagendatei, die eine Lambda-Funktion mit einem API-Endpunkt enthält. Dies ist eine vollständige AWS SAM Vorlagendatei für eine funktionierende serverlose Anwendung.

#### YAML
<a name="sam-resource-api--examples--simpleapiexample--yaml"></a>

```
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: AWS SAM template with a simple API definition
Resources:
  ApiGatewayApi:
    Type: AWS::Serverless::Api
    Properties:
      StageName: prod
  ApiFunction: # Adds a GET method at the root resource via an Api event
    Type: AWS::Serverless::Function
    Properties:
      Events:
        ApiEvent:
          Type: Api
          Properties:
            Path: /
            Method: get
            RestApiId:
              Ref: ApiGatewayApi
      Runtime: python3.10
      Handler: index.handler
      InlineCode: |
        def handler(event, context):
            return {'body': 'Hello World!', 'statusCode': 200}
```

### ApiCorsExample
<a name="sam-resource-api--examples--apicorsexample"></a>

Ein AWS SAM Vorlagenausschnitt mit einer API, die in einer externen Swagger-Datei definiert ist, zusammen mit Lambda-Integrationen und CORS-Konfigurationen. Dies ist nur ein Teil einer Vorlagendatei, der eine Definition zeigt. AWS SAM [AWS::Serverless::Api](#sam-resource-api)

#### YAML
<a name="sam-resource-api--examples--apicorsexample--yaml"></a>

```
Resources:
  ApiGatewayApi:
    Type: AWS::Serverless::Api
    Properties:
      StageName: Prod
      # Allows www.example.com to call these APIs
      # SAM will automatically add AllowMethods with a list of methods for this API
      Cors: "'www.example.com'"
      DefinitionBody: # Pull in an OpenApi definition from S3
        'Fn::Transform':
          Name: 'AWS::Include'
          # Replace "bucket" with your bucket name
          Parameters:
            Location: s3://bucket/swagger.yaml
```

### ApiCognitoAuthExample
<a name="sam-resource-api--examples--apicognitoauthexample"></a>

Ein AWS SAM Vorlagenausschnitt mit einer API, die Amazon Cognito verwendet, um Anfragen an die API zu autorisieren. Dies ist nur ein Teil einer AWS SAM Vorlagendatei, die eine Definition enthält. [AWS::Serverless::Api](#sam-resource-api)

#### YAML
<a name="sam-resource-api--examples--apicognitoauthexample--yaml"></a>

```
Resources:
  ApiGatewayApi:
    Type: AWS::Serverless::Api
    Properties:
      StageName: Prod
      Cors: "'*'"
      Auth:
        DefaultAuthorizer: MyCognitoAuthorizer
        Authorizers:
          MyCognitoAuthorizer:
            UserPoolArn:
              Fn::GetAtt: [MyCognitoUserPool, Arn]
```

### ApiModelsExample
<a name="sam-resource-api--examples--apimodelsexample"></a>

Ein AWS SAM Vorlagenausschnitt mit einer API, die ein Models-Schema enthält. Dies ist nur ein Teil einer AWS SAM Vorlagendatei, die eine [AWS::Serverless::Api](#sam-resource-api) Definition mit zwei Modellschemas zeigt.

#### YAML
<a name="sam-resource-api--examples--apimodelsexample--yaml"></a>

```
Resources:
  ApiGatewayApi:
    Type: AWS::Serverless::Api
    Properties:
      StageName: Prod
      Models:
        User:
          type: object
          required:
            - username
            - employee_id
          properties:
            username:
              type: string
            employee_id:
              type: integer
            department:
              type: string
        Item:
          type: object
          properties:
            count:
              type: integer
            category:
              type: string
            price:
              type: integer
```

### Beispiel für Caching
<a name="sam-resource-api--examples--caching-example"></a>

Eine Hello AWS SAM World-Vorlagendatei, die eine Lambda-Funktion mit einem API-Endpunkt enthält. In der API ist das Caching für eine Ressource und Methode aktiviert. Weitere Informationen zum Caching finden Sie unter [Aktivieren von API-Caching zur Verbesserung der Reaktionsfähigkeit](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-caching.html) im *API Gateway* Developer Guide.

#### YAML
<a name="sam-resource-api--examples--caching-example--yaml"></a>

```
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: AWS SAM template with a simple API definition with caching turned on
Resources:
  ApiGatewayApi:
    Type: AWS::Serverless::Api
    Properties:
      StageName: prod
      CacheClusterEnabled: true
      CacheClusterSize: '0.5'
      MethodSettings:
        - ResourcePath: /
          HttpMethod: GET
          CachingEnabled: true
          CacheTtlInSeconds: 300
      Tags:
        CacheMethods: All 

  ApiFunction: # Adds a GET method at the root resource via an Api event
    Type: AWS::Serverless::Function
    Properties:
      Events:
        ApiEvent:
          Type: Api
          Properties:
            Path: /
            Method: get
            RestApiId:
              Ref: ApiGatewayApi
      Runtime: python3.10
      Handler: index.handler
      InlineCode: |
        def handler(event, context):
            return {'body': 'Hello World!', 'statusCode': 200}
```

### Beispiel für eine benutzerdefinierte Domain mit einer privaten API
<a name="sam-resource-api--examples--custom-domain-example"></a>

Eine Hello AWS SAM World-Vorlagendatei, die eine Lambda-Funktion mit einem API-Endpunkt enthält, der einer privaten Domain zugeordnet ist. Die Vorlage erstellt eine Domänenzugriffszuordnung zwischen einem VPC-Endpunkt und der privaten Domain. Weitere Informationen finden Sie unter [Benutzerdefinierte Domainnamen für private APIs in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-private-custom-domains.html).

#### YAML
<a name="sam-resource-api--examples--custom-domain-example--yaml"></a>

```
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: AWS SAM template configured with a custom domain using a private API

Parameters:
    DomainName:
      Type: String
      Default: mydomain.example.com
    CertificateArn:
      Type: String
    HostedZoneId:
      Type: String
    VpcEndpointId:
      Type: String
    VpcEndpointDomainName:
      Type: String
    VpcEndpointHostedZoneId:
      Type: String

Resources:
  MyFunction:
    Type: AWS::Serverless::Function
    Properties:
      InlineCode: |
        def handler(event, context):
            return {'body': 'Hello World!', 'statusCode': 200}
      Handler: index.handler
      Runtime: python3.13
      Events:
        Fetch:
          Type: Api
          Properties:
            RestApiId:
              Ref: MyApi
            Method: Get
            Path: /get
  MyApi:
    Type: AWS::Serverless::Api
    Properties:
      StageName: Prod
      EndpointConfiguration:
        Type: PRIVATE
        VPCEndpointIds:
        - !Ref VpcEndpointId
      Policy:
        Version: '2012-10-17		 	 	 '
        Statement:
        - Effect: Allow
          Principal: '*'
          Action: execute-api:Invoke
          Resource: execute-api:/*
        - Effect: Deny
          Principal: '*'
          Action: execute-api:Invoke
          Resource: execute-api:/*
          Condition:
            StringNotEquals:
              aws:SourceVpce: !Ref VpcEndpointId
      Domain:
        DomainName: !Ref DomainName
        CertificateArn: !Ref CertificateArn
        EndpointConfiguration: PRIVATE
        BasePath:
        - /
        Route53:
          HostedZoneId: !Ref HostedZoneId
          VpcEndpointDomainName: !Ref VpcEndpointDomainName
          VpcEndpointHostedZoneId: !Ref VpcEndpointHostedZoneId
        AccessAssociation:
          VpcEndpointId: !Ref VpcEndpointId
        Policy:
          Version: '2012-10-17		 	 	 '
          Statement:
          - Effect: Allow
            Principal: '*'
            Action: execute-api:Invoke
            Resource: execute-api:/*
          - Effect: Deny
            Principal: '*'
            Action: execute-api:Invoke
            Resource: execute-api:/*
            Condition:
              StringNotEquals:
                aws:SourceVpce: !Ref VpcEndpointId
```