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
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 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 risorse definite nel modello che non fanno riferimento a una risorsa. AWS::Serverless::Api
È necessario utilizzare una AWS::Serverless::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 AWS 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 AWS CloudFormation hook, consulta Registrazione degli hook nella guida per l'utente della AWS CloudFormation CLI e nel repository. apigw-enforce-authorizer
Per ulteriori informazioni sull'utilizzo delle policy IAM, consulta Require che le route API abbiano l'autorizzazione nella API Gateway Developer Guide.
Nota
Quando esegui la distribuzione a AWS CloudFormation, AWS SAM trasforma le tue AWS SAM risorse in AWS CloudFormation risorse. Per ulteriori informazioni, consulta AWS CloudFormation Risorse generate per AWS SAM.
Sintassi
Per dichiarare questa entità nel tuo modello AWS Serverless Application Model (AWS SAM), usa la seguente sintassi.
YAML
Type: AWS::Serverless::Api Properties: AccessLogSetting:
AccessLogSetting
AlwaysDeploy:Boolean
ApiKeySourceType:String
Auth:ApiAuth
BinaryMediaTypes:List
CacheClusterEnabled:Boolean
CacheClusterSize:String
CanarySetting:CanarySetting
Cors:String | CorsConfiguration
DefinitionBody:JSON
DefinitionUri:String | ApiDefinition
Description:String
DisableExecuteApiEndpoint:Boolean
Domain:DomainConfiguration
EndpointConfiguration:EndpointConfiguration
FailOnWarnings:Boolean
GatewayResponses:Map
MergeDefinitions:Boolean
MethodSettings:MethodSettings
MinimumCompressionSize:Integer
Mode:String
Models:Map
Name:String
OpenApiVersion:String
PropagateTags:Boolean
StageName:String
Tags:Map
TracingEnabled:Boolean
Variables:Map
Proprietà
-
AccessLogSetting
-
Configura l'impostazione del registro di accesso per uno stage.
Tipo: AccessLogSetting
Required: No
AWS CloudFormation compatibilità: questa proprietà viene passata direttamente alla
AccessLogSetting
proprietà di unaAWS::ApiGateway::Stage
risorsa. -
AlwaysDeploy
-
Implementa sempre l'API, anche quando non sono state rilevate modifiche all'API.
Tipo: Booleano
Required: No
AWS CloudFormation compatibilità: questa proprietà è unica AWS SAM e non ha un AWS CloudFormation equivalente.
-
ApiKeySourceType
-
L'origine della chiave API per le richieste di misurazione in base a un piano di utilizzo. I valori validi sono
HEADER
eAUTHORIZER
.▬Tipo: stringa
Required: No
AWS CloudFormation compatibilità: questa proprietà viene passata direttamente alla
ApiKeySourceType
proprietà di unaAWS::ApiGateway::RestApi
risorsa. -
Auth
-
Configura l'autorizzazione per controllare l'accesso alla tua API API Gateway.
Per ulteriori informazioni sulla configurazione dell'accesso tramite, AWS SAM vedereControlla API l'accesso con il tuo AWS SAM modello.
Tipo: ApiAuth
Required: No
AWS CloudFormation compatibilità: questa proprietà è unica AWS SAM e non ha un AWS CloudFormation equivalente.
-
BinaryMediaTypes
-
Elenco dei tipi MIME che l'API potrebbe restituire. Usalo per abilitare il supporto binario per le API. Usa ~1 invece di/nei tipi mime.
Tipo: Elenco
Required: No
AWS CloudFormation compatibilità: questa proprietà è simile alla
BinaryMediaTypes
proprietà di unaAWS::ApiGateway::RestApi
risorsa. L'elenco di BinaryMediaTypes viene aggiunto sia alla AWS CloudFormation risorsa che al documento OpenAPI. -
CacheClusterEnabled
-
Indica se la memorizzazione nella cache è abilitata per lo stage. Per memorizzare nella cache le risposte, è inoltre necessario
CachingEnabled
impostare sutrue
underMethodSettings
.Tipo: Booleano
Required: No
AWS CloudFormation compatibilità: questa proprietà viene passata direttamente alla
CacheClusterEnabled
proprietà di unaAWS::ApiGateway::Stage
risorsa. -
CacheClusterSize
-
Le dimensioni del cluster di cache della fase.
▬Tipo: stringa
Required: No
AWS CloudFormation compatibilità: questa proprietà viene passata direttamente alla
CacheClusterSize
proprietà di unaAWS::ApiGateway::Stage
risorsa. -
CanarySetting
-
Configura un'impostazione Canary in una fase di distribuzione regolare.
Tipo: CanarySetting
Required: No
AWS CloudFormation compatibilità: questa proprietà viene passata direttamente alla
CanarySetting
proprietà di unaAWS::ApiGateway::Stage
risorsa. -
Cors
-
Gestisci la condivisione delle risorse tra le origini (CORS) per tutte le API API Gateway. Specificate il dominio da consentire come stringa o specificate un dizionario con una configurazione Cors aggiuntiva.
Nota
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 Gateway Developer Guide.
Tipo: Stringa | CorsConfiguration
Required: No
AWS CloudFormation compatibilità: Questa proprietà è unica AWS SAM e non ha un AWS CloudFormation equivalente.
-
DefinitionBody
-
Specificazione OpenAPI che descrive la tua API. Se
DefinitionUri
nessuna delle dueDefinitionBody
viene specificata, SAM genererà unaDefinitionBody
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 In che modo AWS SAM carica file locali.Type: JSON
Required: No
AWS CloudFormation compatibilità: questa proprietà è simile alla
Body
proprietà di unaAWS::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à includonoAuth
BinaryMediaTypes
,Cors
,GatewayResponses
,Models
, e unaEventSource
di tipo Api per una corrispondenteAWS::Serverless::Function
. -
DefinitionUri
-
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
nessunoDefinitionBody
dei due, SAM genererà un fileDefinitionBody
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
comandosam 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 laDefinitionBody
proprietà con Include Transform per importare una OpenApi definizione nel modello.Tipo: String | ApiDefinition
Required: No
AWS CloudFormation compatibilità: Questa proprietà è simile alla
BodyS3Location
proprietà di unaAWS::ApiGateway::RestApi
risorsa. Le proprietà annidate di Amazon S3 sono denominate in modo diverso. -
Description
-
Una descrizione della risorsa Api.
▬Tipo: stringa
Required: No
AWS CloudFormation compatibilità: questa proprietà viene passata direttamente alla
Description
proprietà di unaAWS::ApiGateway::RestApi
risorsa. -
DisableExecuteApiEndpoint
-
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 predefinitahttps://{api_id}.execute-api.{region}.amazonaws.com
. Per richiedere che i client utilizzino un nome di dominio personalizzato per richiamare l'API, specificaTrue
.Tipo: Booleano
Required: No
AWS CloudFormation compatibilità: questa proprietà è simile alla
DisableExecuteApiEndpoint
proprietà di unaAWS::ApiGateway::RestApi
risorsa. Viene passato direttamente alladisableExecuteApiEndpoint
proprietà di un'x-amazon-apigateway-endpoint-configuration
estensione, che viene aggiunta allaBody
proprietà di unaAWS::ApiGateway::RestApi
risorsa. -
Domain
-
Configura un dominio personalizzato per questa API API Gateway.
Tipo: DomainConfiguration
Required: No
AWS CloudFormation compatibilità: questa proprietà è unica AWS SAM e non ha un AWS CloudFormation equivalente.
-
EndpointConfiguration
-
Il tipo di endpoint di un'API REST.
Tipo: EndpointConfiguration
Required: No
AWS CloudFormation compatibilità: questa proprietà è simile alla
EndpointConfiguration
proprietà di unaAWS::ApiGateway::RestApi
risorsa. Le proprietà di configurazione annidate sono denominate in modo diverso. -
FailOnWarnings
-
Speciifica se ripristinare la creazione dell'API (
true
) o meno (false
) quando viene rilevato un avviso. Il valore predefinito èfalse
.Tipo: Booleano
Required: No
AWS CloudFormation compatibilità: questa proprietà viene passata direttamente alla
FailOnWarnings
proprietà di unaAWS::ApiGateway::RestApi
risorsa. -
GatewayResponses
-
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.
Tipo: Mappa
Required: No
AWS CloudFormation compatibilità: questa proprietà è unica AWS SAM e non ha un AWS CloudFormation equivalente.
-
MergeDefinitions
-
AWS SAM genera una OpenAPI specifica dalla fonte dell'evento API.
true
Specificate di AWS SAM unirlo alla OpenAPI specifica in linea definita nella vostraAWS::Serverless::Api
risorsa.false
Specificare di non unire.MergeDefinitions
richiede la definizione dellaDefinitionBody
proprietàAWS::Serverless::Api
per.MergeDefinitions
non è compatibile con laDefinitionUri
proprietà diAWS::Serverless::Api
.Valore predefinito:
false
Tipo: Booleano
Required: No
AWS CloudFormation compatibilità: questa proprietà è unica AWS SAM e non ha un AWS CloudFormation equivalente.
-
MethodSettings
-
Configura tutte le impostazioni per API Stage, tra cui Logging, Metrics, CacheTTL, Throttling.
Tipo: elenco di MethodSetting
Required: No
AWS CloudFormation compatibilità: questa proprietà viene passata direttamente alla proprietà di una risorsa.
MethodSettings
AWS::ApiGateway::Stage
-
MinimumCompressionSize
-
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
Required: No
AWS CloudFormation compatibilità: questa proprietà viene passata direttamente alla
MinimumCompressionSize
proprietà di una risorsa.AWS::ApiGateway::RestApi
-
Mode
-
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 del tipo di AWS::ApiGateway::RestApirisorsa.Valori validi:
overwrite
omerge
▬Tipo: stringa
Required: No
AWS CloudFormation compatibilità: questa proprietà viene passata direttamente alla
Mode
proprietà di unaAWS::ApiGateway::RestApi
risorsa. -
Models
-
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
Required: No
AWS CloudFormation compatibilità: questa proprietà è unica AWS SAM e non ha un AWS CloudFormation equivalente.
-
Name
-
Un nome per la RestApi risorsa API Gateway
▬Tipo: stringa
Required: No
AWS CloudFormation compatibilità: questa proprietà viene passata direttamente alla
Name
proprietà di unaAWS::ApiGateway::RestApi
risorsa. -
OpenApiVersion
-
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.Nota
AWS SAM crea una fase chiamata di
Stage
default. L'impostazione di questa proprietà su qualsiasi valore valido impedirà la creazione dello stageStage
.▬Tipo: stringa
Required: No
AWS CloudFormation compatibilità: questa proprietà è unica AWS SAM e non ha un AWS CloudFormation equivalente.
-
Indica se passare o meno i tag dalla
Tags
proprietà alle risorse AWS::Serverless::Api generate.True
Specificate di propagare i tag nelle risorse generate.Tipo: Booleano
Required: No
Default:
False
AWS CloudFormation compatibilità: questa proprietà è unica AWS SAM e non ha un AWS CloudFormation equivalente.
-
StageName
-
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.
Per ulteriori informazioni sul riferimento alle risorse generate quando viene specificata una AWS::Serverless::Api risorsa, vedereAWS CloudFormation risorse generate quando AWS::Serverless::Api è specificato. Per informazioni generali sulle AWS CloudFormation risorse generate, vedereAWS CloudFormation Risorse generate per AWS SAM.<api-logical-id>
.Stage▬Tipo: stringa
Campo obbligatorio: sì
AWS CloudFormation compatibilità: questa proprietà è simile alla
StageName
proprietà di unaAWS::ApiGateway::Stage
risorsa. È richiesto in SAM, ma non richiesto in API GatewayNote aggiuntive: L'API Implicit ha il nome d'arte «Prod».
-
Una mappa (da stringa a stringa) che specifica i tag da aggiungere a questa fase di API Gateway. Per dettagli sulle chiavi e i valori validi per i tag, consulta Resource tag nella Guida per l'AWS CloudFormation utente.
Tipo: Mappa
Required: No
AWS CloudFormation compatibilità: questa proprietà è simile alla
Tags
proprietà di unaAWS::ApiGateway::Stage
risorsa. La proprietà Tags in SAM è costituita da coppie Key:Value; in CloudFormation essa è costituita da un elenco di oggetti Tag. -
TracingEnabled
-
Indica se il tracciamento attivo con X-Ray è abilitato per lo stage. Per ulteriori informazioni su X-Ray, consulta Tracciare le richieste degli utenti sulle API REST utilizzando X-Ray nella Guida per sviluppatori di API Gateway.
Tipo: Booleano
Required: No
AWS CloudFormation compatibilità: questa proprietà viene passata direttamente alla
TracingEnabled
proprietà di una risorsa.AWS::ApiGateway::Stage
-
Variables
-
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
Required: No
AWS CloudFormation compatibilità: questa proprietà viene passata direttamente alla
Variables
proprietà di unaAWS::ApiGateway::Stage
risorsa.
Valori restituiti
Ref
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 Ref
la Guida per l'AWS CloudFormation utente.
Fn:: GetAtt
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'utilizzoFn::GetAtt
, consulta Fn::GetAtt
la Guida per l'AWS CloudFormation utente.
RootResourceId
-
L'ID della risorsa root per una risorsa
RestApi
, ad esempioa0bc123d4e
.
Esempi
SimpleApiExample
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
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
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
YAML
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
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
YAML
Resources: ApiGatewayApi: Type: AWS::Serverless::Api Properties: StageName: Prod Cors: "'*'" Auth: DefaultAuthorizer: MyCognitoAuthorizer Authorizers: MyCognitoAuthorizer: UserPoolArn: Fn::GetAtt: [MyCognitoUserPool, Arn]
ApiModelsExample
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 definizione con due schemi di modello.
YAML
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 memorizzazione nella cache
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 nella API Gateway Developer Guide.
YAML
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}