

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

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

Crea una raccolta di risorse e metodi Amazon API Gateway che possono essere richiamati tramite endpoint HTTPS.

Non è necessario aggiungere esplicitamente una [AWS::Serverless::Api](#sam-resource-api) risorsa a un modello AWS Serverless Application Definition. Una risorsa di questo tipo viene creata implicitamente dall'unione di eventi Api definiti su [AWS::Serverless::Function](sam-resource-function.md) risorse definite nel modello che non fanno riferimento a una risorsa. [AWS::Serverless::Api](#sam-resource-api)

È necessario utilizzare una [AWS::Serverless::Api](#sam-resource-api) risorsa per definire e documentare l'utilizzo dell'API OpenApi, che offre una maggiore capacità di configurazione delle risorse Amazon API Gateway sottostanti.

Ti consigliamo di utilizzare CloudFormation hook o policy IAM per verificare che alle risorse API Gateway siano associate autorizzazioni per controllarne l'accesso.

Per ulteriori informazioni sull'uso degli CloudFormation hook, consulta [Registrazione degli hook](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/registering-hook-python.html) nella guida per l'*utente della CloudFormation CLI* e nel repository. [apigw-enforce-authorizer](https://github.com/aws-cloudformation/aws-cloudformation-samples/tree/main/hooks/python-hooks/apigw-enforce-authorizer/) GitHub 

Per ulteriori informazioni sull'utilizzo delle policy IAM, consulta [Require che le route API abbiano l'autorizzazione](https://docs.aws.amazon.com/apigateway/latest/developerguide/security_iam_id-based-policy-examples.html#security_iam_id-based-policy-examples-require-authorization) nella *API Gateway Developer Guide*.

**Nota**  
Quando esegui la distribuzione a AWS CloudFormation, AWS SAM trasforma le tue AWS SAM risorse in CloudFormation risorse. Per ulteriori informazioni, consulta [CloudFormation Risorse generate per AWS SAM](sam-specification-generated-resources.md).

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

Per dichiarare questa entità nel tuo modello AWS Serverless Application Model (AWS SAM), usa la seguente sintassi.

### 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
  [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
  [StageName](#sam-api-stagename): String
  [Tags](#sam-api-tags): Map
  [TracingEnabled](#sam-api-tracingenabled): Boolean
  [Variables](#sam-api-variables): Map
```

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

 `AccessLogSetting`   <a name="sam-api-accesslogsetting"></a>
Configura l'impostazione del registro di accesso per uno stage.  
*Tipo:* [AccessLogSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-accesslogsetting)  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[AccessLogSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-accesslogsetting)` proprietà di una `AWS::ApiGateway::Stage` risorsa.

 `AlwaysDeploy`   <a name="sam-api-alwaysdeploy"></a>
Implementa sempre l'API, anche quando non sono state rilevate modifiche all'API.  
*Tipo*: Booleano  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà è unica AWS SAM e non ha un CloudFormation equivalente.

 `ApiKeySourceType`   <a name="sam-api-apikeysourcetype"></a>
L'origine della chiave API per le richieste di misurazione in base a un piano di utilizzo. I valori validi sono `HEADER` e `AUTHORIZER`.  
▬*Tipo:* stringa  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[ApiKeySourceType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-apikeysourcetype)` proprietà di una `AWS::ApiGateway::RestApi` risorsa.

 `Auth`   <a name="sam-api-auth"></a>
Configura l'autorizzazione per controllare l'accesso alla tua API API Gateway.  
Per ulteriori informazioni sulla configurazione dell'accesso tramite, AWS SAM vedere[Controlla l'accesso alle API con il tuo AWS SAM modello](serverless-controlling-access-to-apis.md). Per un esempio che mostra come sovrascrivere un autorizzatore globale, vedi. [Sostituisci un autorizzatore globale per la tua API REST di Amazon API Gateway](sam-property-function-apifunctionauth.md#sam-property-function-apifunctionauth--examples--override)  
*Tipo:* [ApiAuth](sam-property-api-apiauth.md)  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà è unica AWS SAM e non ha un CloudFormation equivalente.

 `BinaryMediaTypes`   <a name="sam-api-binarymediatypes"></a>
Elenco dei tipi MIME che l'API potrebbe restituire. Usalo per abilitare il supporto binario perAPIs.  
Tipo: elenco  
*Obbligatorio:* no  
*CloudFormation compatibilità*: Questa proprietà è simile alla `[BinaryMediaTypes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-binarymediatypes)` proprietà di una `AWS::ApiGateway::RestApi` risorsa. L'elenco di BinaryMediaTypes viene aggiunto sia alla CloudFormation risorsa che al documento OpenAPI.

 `CacheClusterEnabled`   <a name="sam-api-cacheclusterenabled"></a>
Indica se la memorizzazione nella cache è abilitata per lo stage. Per memorizzare nella cache le risposte, è inoltre necessario `CachingEnabled` impostare su `true` under`MethodSettings`.  
*Tipo*: Booleano  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[CacheClusterEnabled](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclusterenabled)` proprietà di una `AWS::ApiGateway::Stage` risorsa.

 `CacheClusterSize`   <a name="sam-api-cacheclustersize"></a>
Le dimensioni del cluster di cache della fase.  
▬*Tipo:* stringa  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[CacheClusterSize](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclustersize)` proprietà di una `AWS::ApiGateway::Stage` risorsa.

 `CanarySetting`   <a name="sam-api-canarysetting"></a>
Configura un'impostazione Canary in una fase di distribuzione regolare.  
*Tipo:* [CanarySetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting)  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[CanarySetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting)` proprietà di una `AWS::ApiGateway::Stage` risorsa.

 `Cors`   <a name="sam-api-cors"></a>
Gestisci la condivisione delle risorse tra le origini (CORS) per tutti i tuoi API Gateway. APIs Specificate il dominio da consentire come stringa o specificate un dizionario con una configurazione Cors aggiuntiva.   
CORS richiede AWS SAM di modificare la definizione OpenAPI. Crea una definizione OpenAPI in linea per attivare `DefinitionBody` CORS.
Per ulteriori informazioni su CORS, consulta [Enable CORS for an API Gateway REST API Resource nella API](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html) *Gateway Developer Guide*.  
*Tipo: Stringa* \$1 [CorsConfiguration](sam-property-api-corsconfiguration.md)  
*Obbligatorio:* no  
*CloudFormation compatibilità*: Questa proprietà è unica AWS SAM e non ha un CloudFormation equivalente.

 `DefinitionBody`   <a name="sam-api-definitionbody"></a>
Specificazione OpenAPI che descrive la tua API. Se `DefinitionUri` nessuna delle due `DefinitionBody` viene specificata, SAM genererà una `DefinitionBody` per te in base alla configurazione del modello.  
Per fare riferimento a un OpenAPI file locale che definisce la tua API, usa la `AWS::Include` trasformazione. Per ulteriori informazioni, consulta [Come AWS SAM carica i file locali](deploy-upload-local-files.md).  
*Type*: JSON  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà è simile alla `[Body](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-body)` proprietà di una `AWS::ApiGateway::RestApi` risorsa. Se vengono fornite determinate proprietà, il contenuto può essere inserito o modificato nella DefinitionBody prima di essere passato a CloudFormation. Le proprietà includono `Auth``BinaryMediaTypes`,`Cors`,`GatewayResponses`,`Models`, e una `EventSource` di tipo Api per una corrispondente`AWS::Serverless::Function`.

 `DefinitionUri`   <a name="sam-api-definitionuri"></a>
Uri Amazon S3, percorso del file locale o oggetto posizione del documento OpenAPI che definisce l'API. L'oggetto Amazon S3 a cui fa riferimento questa proprietà deve essere un file OpenAPI valido. Se non viene specificato `DefinitionUri` nessuno `DefinitionBody` dei due, SAM genererà un file `DefinitionBody` per te in base alla configurazione del modello.  
Se viene fornito un percorso di file locale, il modello deve passare attraverso il flusso di lavoro che include il `sam package` comando `sam deploy` o, affinché la definizione venga trasformata correttamente.  
Le funzioni intrinseche non sono supportate nei OpenApi file esterni a cui fa riferimento. `DefinitionUri` Utilizzate invece la `DefinitionBody` proprietà con [Include Transform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html) per importare una OpenApi definizione nel modello.  
*Tipo*: String \$1 [ApiDefinition](sam-property-api-apidefinition.md)  
*Obbligatorio:* no  
*CloudFormation compatibilità*: Questa proprietà è simile alla `[BodyS3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-bodys3location)` proprietà di una `AWS::ApiGateway::RestApi` risorsa. Le proprietà annidate di Amazon S3 sono denominate in modo diverso.

 `Description`   <a name="sam-api-description"></a>
Una descrizione della risorsa Api.  
▬*Tipo:* stringa  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[Description](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-description)` proprietà di una `AWS::ApiGateway::RestApi` risorsa.

 `DisableExecuteApiEndpoint`   <a name="sam-api-disableexecuteapiendpoint"></a>
Specifica se i client possono richiamare l'API utilizzando l'endpoint `execute-api` predefinito. Per impostazione predefinita, i client possono richiamare la tua API con l'impostazione predefinita`https://{api_id}.execute-api.{region}.amazonaws.com`. Per richiedere che i client utilizzino un nome di dominio personalizzato per richiamare l'API, specifica `True`.  
*Tipo*: Booleano  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà è simile alla `[ DisableExecuteApiEndpoint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-disableexecuteapiendpoint)` proprietà di una `AWS::ApiGateway::RestApi` risorsa. Viene passato direttamente alla `disableExecuteApiEndpoint` proprietà di un'`[ x-amazon-apigateway-endpoint-configuration](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-endpoint-configuration.html)`estensione, che viene aggiunta alla ` [ Body](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-body)` proprietà di una `AWS::ApiGateway::RestApi` risorsa.

 `Domain`   <a name="sam-api-domain"></a>
Configura un dominio personalizzato per questa API API Gateway.  
*Tipo:* [DomainConfiguration](sam-property-api-domainconfiguration.md)  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà è unica AWS SAM e non ha un CloudFormation equivalente.

 `EndpointConfiguration`   <a name="sam-api-endpointconfiguration"></a>
Il tipo di endpoint di un'API REST.  
*Tipo:* [EndpointConfiguration](sam-property-api-endpointconfiguration.md)  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà è simile alla `[EndpointConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-endpointconfiguration)` proprietà di una `AWS::ApiGateway::RestApi` risorsa. Le proprietà di configurazione annidate sono denominate in modo diverso.

 `FailOnWarnings`   <a name="sam-api-failonwarnings"></a>
Speciifica se ripristinare la creazione dell'API (`true`) o meno (`false`) quando viene rilevato un avviso. Il valore predefinito è `false`.  
*Tipo*: Booleano  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[FailOnWarnings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-failonwarnings)` proprietà di una `AWS::ApiGateway::RestApi` risorsa.

 `GatewayResponses`   <a name="sam-api-gatewayresponses"></a>
Configura Gateway Responses per un'API. Le risposte Gateway sono risposte restituite da API Gateway, direttamente o tramite l'uso di Lambda Authorizers. Per ulteriori informazioni, consulta la documentazione dell'[ OpenApi estensione Api Gateway per Gateway Responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-gateway-responses.html).  
*Tipo*: Mappa  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà è unica AWS SAM e non ha un CloudFormation equivalente.

 `MergeDefinitions`   <a name="sam-api-mergedefinitions"></a>
AWS SAM genera una OpenAPI specifica dalla fonte dell'evento API. `true`Specificate di AWS SAM unirlo alla OpenAPI specifica in linea definita nella vostra `AWS::Serverless::Api` risorsa. `false`Specificare di non unire.  
`MergeDefinitions`richiede la definizione della `DefinitionBody` proprietà `AWS::Serverless::Api` per. `MergeDefinitions`non è compatibile con la `DefinitionUri` proprietà di`AWS::Serverless::Api`.  
*Valore predefinito*: `false`  
*Tipo*: Booleano  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà è unica AWS SAM e non ha un CloudFormation equivalente.

 `MethodSettings`   <a name="sam-api-methodsettings"></a>
Configura tutte le impostazioni per API Stage, tra cui Logging, Metrics, CacheTTL, Throttling.  
*Tipo*: elenco di [ MethodSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html)  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla proprietà di una risorsa. `[MethodSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-methodsettings)` `AWS::ApiGateway::Stage`

 `MinimumCompressionSize`   <a name="sam-api-minimumcompressionsize"></a>
Consenti la compressione dei corpi di risposta in base all'intestazione Accept-Encoding del client. La compressione viene attivata quando la dimensione del corpo di risposta è maggiore o uguale alla soglia configurata. La soglia di dimensione corporea massima è 10 MB (10.485.760 byte). - Sono supportati i seguenti tipi di compressione: gzip, deflate e identity.  
*Tipo*: integer  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[MinimumCompressionSize](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-minimumcompressionsize)` proprietà di una risorsa. `AWS::ApiGateway::RestApi`

 `Mode`   <a name="sam-api-mode"></a>
Questa proprietà si applica solo quando si utilizza OpenAPI per definire l'API REST. `Mode` determina il modo in cui Gateway API gestisce gli aggiornamenti delle risorse. Per ulteriori informazioni, vedere [la proprietà Mode](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-mode) del tipo di [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)risorsa.  
*Valori validi*: `overwrite` o `merge`  
▬*Tipo:* stringa  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[Mode](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-mode)` proprietà di una `AWS::ApiGateway::RestApi` risorsa.

 `Models`   <a name="sam-api-models"></a>
Gli schemi che devono essere utilizzati dai metodi API. Questi schemi possono essere descritti utilizzando JSON o YAML. Vedi la sezione Esempi in fondo a questa pagina per esempi di modelli.  
*Tipo*: Mappa  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà è unica AWS SAM e non ha un CloudFormation equivalente.

 `Name`   <a name="sam-api-name"></a>
Un nome per la RestApi risorsa API Gateway  
▬*Tipo:* stringa  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-name)` proprietà di una `AWS::ApiGateway::RestApi` risorsa.

 `OpenApiVersion`   <a name="sam-api-openapiversion"></a>
Versione di OpenApi da usare. Questo può riguardare `2.0` la specifica Swagger o una delle versioni OpenApi 3.0, ad esempio. `3.0.1` [Per ulteriori informazioni su OpenAPI, vedere la specifica OpenAPI.](https://swagger.io/specification/)  
 AWS SAM crea una fase chiamata di `Stage` default. L'impostazione di questa proprietà su qualsiasi valore valido impedirà la creazione dello stage`Stage`. 
▬*Tipo:* stringa  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà è unica AWS SAM e non ha un CloudFormation equivalente.

`PropagateTags`  <a name="sam-api-propagatetags"></a>
Indica se passare o meno i tag dalla `Tags` proprietà alle risorse [AWS::Serverless::Api](sam-specification-generated-resources-api.md) generate. `True`Specificate di propagare i tag nelle risorse generate.  
*Tipo*: Booleano  
*Obbligatorio:* no  
*Default*: `False`  
*CloudFormation compatibilità*: questa proprietà è unica AWS SAM e non ha un CloudFormation equivalente.

`Policy`  <a name="sam-api-policy"></a>
Un documento di policy che contiene le autorizzazioni per l'API. Per impostare l'ARN per la policy, utilizza la funzione intrinseca `!Join` con `""` come delimitatore e valori di `"execute-api:/"` e `"*"`.  
*Type*: JSON  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla proprietà [Policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-policy) di una `AWS::ApiGateway::RestApi` risorsa.

 `StageName`   <a name="sam-api-stagename"></a>
Il nome della fase, che API Gateway utilizza come primo segmento di percorso nell'URI (Uniform Resource Identifier) di invoke.  
Per fare riferimento alla risorsa dello stage, usa. `<api-logical-id>.Stage` Per ulteriori informazioni sul riferimento alle risorse generate quando viene specificata una [AWS::Serverless::Api](#sam-resource-api) risorsa, vedere[CloudFormation risorse generate quando AWS::Serverless::Api è specificato](sam-specification-generated-resources-api.md). Per informazioni generali sulle CloudFormation risorse generate, vedere[CloudFormation Risorse generate per AWS SAM](sam-specification-generated-resources.md).  
▬*Tipo:* stringa  
*Obbligatorio:* sì  
*CloudFormation compatibilità*: questa proprietà è simile alla `[StageName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-stagename)` proprietà di una `AWS::ApiGateway::Stage` risorsa. È richiesto in SAM, ma non richiesto in API Gateway  
*Note aggiuntive*: L'API Implicit ha il nome d'arte «Prod».

 `Tags`   <a name="sam-api-tags"></a>
Una mappa (da stringa a stringa) che specifica i tag da aggiungere a questa fase di API Gateway. Per informazioni dettagliate sulle chiavi e i valori validi per i tag, consulta [Resource tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) nella *Guida per l'AWS CloudFormation utente*.  
*Tipo*: Mappa  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà è simile alla `[Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-tags)` proprietà di una `AWS::ApiGateway::Stage` risorsa. La proprietà Tags in SAM è costituita da coppie Key:Value; in CloudFormation essa è costituita da un elenco di oggetti Tag.

 `TracingEnabled`   <a name="sam-api-tracingenabled"></a>
Indica se il tracciamento attivo con X-Ray è abilitato per lo stage. *Per ulteriori informazioni su X-Ray, consulta [Tracciare le richieste degli utenti su REST usando APIs X-Ray nella](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-xray.html) API Gateway Developer Guide.*  
*Tipo*: Booleano  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[TracingEnabled](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-tracingenabled)` proprietà di una risorsa. `AWS::ApiGateway::Stage`

 `Variables`   <a name="sam-api-variables"></a>
Una mappa (da stringa a stringa) che definisce le variabili dello stage, dove il nome della variabile è la chiave e il valore della variabile è il valore. I nomi della variabile sono limitati ai caratteri alfanumerici. I valori devono corrispondere alla seguente espressione regolare: `[A-Za-z0-9._~:/?#&=,-]+`.  
*Tipo*: Mappa  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[Variables](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-variables)` proprietà di una `AWS::ApiGateway::Stage` risorsa.

## Valori restituiti
<a name="sam-resource-api-return-values"></a>

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

Quando l'ID logico di questa risorsa viene fornito alla funzione `Ref` intrinseca, restituisce l'ID dell'API Gateway API sottostante.

Per ulteriori informazioni sull'utilizzo della `Ref` funzione, consulta [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)la Guida per l'*AWS CloudFormation utente*. 

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

`Fn::GetAtt` restituisce un valore per un attributo specificato di questo tipo. Di seguito sono riportati gli attributi disponibili e i valori restituiti di esempio. 

Per ulteriori informazioni sull'utilizzo`Fn::GetAtt`, consulta [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)la *Guida per l'AWS CloudFormation utente*. 

`RootResourceId`  <a name="RootResourceId-fn::getatt"></a>
L'ID della risorsa root per una risorsa `RestApi`, ad esempio `a0bc123d4e`.

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

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

Un file AWS SAM modello Hello World che contiene una funzione Lambda con un endpoint API. Si tratta di un file AWS SAM modello completo per un'applicazione serverless funzionante.

#### 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>

Un frammento di AWS SAM modello con un'API definita in un file Swagger esterno insieme a integrazioni Lambda e configurazioni CORS. Questa è solo una parte di un file modello che mostra una definizione. 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>

Un frammento di AWS SAM modello con un'API che utilizza Amazon Cognito per autorizzare le richieste contro l'API. Questa è solo una parte di un file AWS SAM modello che mostra una definizione. [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>

Un frammento di AWS SAM modello con un'API che include uno schema Models. Questa è solo una parte di un file AWS SAM modello, che mostra una [AWS::Serverless::Api](#sam-resource-api) definizione con due schemi di modello.

#### 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
```

### Esempio di caching
<a name="sam-resource-api--examples--caching-example"></a>

Un file AWS SAM modello Hello World che contiene una funzione Lambda con un endpoint API. L'API ha la memorizzazione nella cache abilitata per una risorsa e un metodo. Per ulteriori informazioni sulla memorizzazione nella cache, consulta [Enabling API caching to enhance responsiveness](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-caching.html) nella *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}
```

### Dominio personalizzato con un esempio di API privata
<a name="sam-resource-api--examples--custom-domain-example"></a>

Un file AWS SAM modello Hello World che contiene una funzione Lambda con un endpoint API mappato su un dominio privato. Il modello crea un'associazione di accesso al dominio tra un endpoint VPC e il dominio privato. Per ulteriori informazioni, consulta [Nomi di dominio personalizzati per uso privato 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
```