View a markdown version of this page

AWS::Serverless::WebFunction - AWS Serverless Application Model

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::WebFunction

Crea una funzione AWS Lambda Web, che serve le richieste HTTP tramite un endpoint gestito. A differenza di una funzione evento Lambda, che viene eseguita in risposta a chiamate ed eventi, una funzione Web esegue il server Web e riceve direttamente le richieste HTTP. Da una singolaAWS::Serverless::WebFunction, AWS SAM genera la funzione Web, una revisione immutabile che contiene il codice e la configurazione e un endpoint che indirizza il traffico verso una o più revisioni.

Nota

Quando lo distribuisci su, trasforma le tue risorse in AWS CloudFormation risorse AWS SAM . AWS SAM CloudFormation Per ulteriori informazioni, consulta Generato CloudFormation risorse per AWS SAM.

Importante

Il codice della funzione deve eseguire un server HTTP che ascolti sull'host e sulla porta nella AWS_LAMBDA_HTTP_ENDPOINT variabile di ambiente. Il runtime non è impostatoPORT. Per impostazione predefinita, il runtime viene eseguito index.js nella radice del pacchetto di distribuzione. EntryPointDa utilizzare per eseguire un file diverso.

Importante

Il bucket Amazon S3 che contiene il pacchetto di distribuzione deve soddisfare i seguenti requisiti:

  • Il controllo delle versioni è abilitato.

  • Una policy bucket concede lambda.amazonaws.com le autorizzazioni and. s3:GetObject s3:GetObjectVersion Ti consigliamo, ad esempio, di definire l'ambito della policy con una ArnLike condizione aws:SourceArn che corrisponda alle revisioni della funzione. arn:aws:lambda:us-east-1:111122223333:web-function/my-function/revision/*

  • Se l'oggetto è crittografato con SSE-KMS, utilizza una chiave gestita dal cliente la cui politica di chiave consente di lambda.amazonaws.com effettuare chiamatekms:Decrypt. La chiave AWS gestita per Amazon S3 (aws/s3) non è supportata, perché non è possibile modificarne la politica chiave.

Per un esempio di bucket policy, consulta Bucket policy for Lambda nella Developer Guide.AWS Lambda

CodeUrideve fare riferimento a un oggetto in Amazon S3. I sam package comandi sam build and non supportano i percorsi locali per questa risorsa.

Sintassi

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

YAML

Type: AWS::Serverless::WebFunction Properties: AuthType: String AutoDeploymentMode: String CodeUri: String | CodeUri EgressNetworkConnectorArn: String EndpointDescription: String EndpointName: String EndpointType: String EntryPoint: String EnvironmentVariables: Map ExecutionRoleArn: String FunctionName: String InlineCode: String KmsKeyArn: String LoggingConfig: Map MaxConcurrencyPerEnvironment: Integer ReplicaRegions: List | ReplicaRegions RevisionDescription: String RevisionWeights: RevisionWeights Runtime: String ScalingConfig: Map Tags: Map ThrottleConfig: Map Timeout: Integer

Properties

AuthType

In che modo l'endpoint autorizza le richieste.

  • IamAuth: Lambda autorizza le richieste con Signature Version 4 e IAM. I chiamanti necessitano dell'lambda:InvokeWebFunctionEndpointautorizzazione, concessa tramite una politica basata sulle risorse sulla funzione.

  • ApplicationManaged: l'endpoint è pubblico. La tua funzione deve autorizzare ogni richiesta stessa.

Valori validi: IamAuth, ApplicationManaged

Tipo: stringa

Obbligatorio: sì

CloudFormation compatibilità: questa proprietà viene passata direttamente alla AuthType proprietà di una AWS::Lambda::WebFunctionEndpoint risorsa.

AutoDeploymentMode

In che modo l'endpoint indirizza il traffico tra le revisioni.

  • LatestRevision: invia il 100% del traffico alla revisione creata da questa distribuzione.

  • Disabled: indirizza il traffico in base a. RevisionWeights

I valori che RevisionWeights è possibile utilizzare e se sono obbligatori dipendono da EndpointType:

  • HomeRegion: usa uno dei due valori. ConDisabled, RevisionWeights è obbligatorio.

  • MultiRegionoppurePerRegion: usaDisabled. Se omettiRevisionWeights, l'endpoint indirizza il 100% del traffico verso la revisione creata nello stesso stack, in modo da poter creare l'endpoint in un'unica implementazione. Il traffico non passa alle revisioni create dalle implementazioni successive.

Il valore deve essere risolto quando si AWS SAM trasforma il modello. È supportato un parametro Ref da A a. Altre funzioni intrinseche non sono supportate.

Valori validi: LatestRevision, Disabled

▬Tipo: stringa

Obbligatorio: no

Default: LatestRevision

CloudFormation compatibilità: questa proprietà è unica AWS SAM e non ha un CloudFormation equivalente.

CodeUri

La posizione Amazon S3 del pacchetto di distribuzione. Specificare un s3://bucket/key URI o un oggetto con Bucket e Version chiavi opzionali. Key Per i requisiti del bucket, consulta la nota nella parte superiore di questa pagina.

Tipo: Stringa | CodeUri

Obbligatorio: sì

CloudFormation compatibilità: Questa proprietà è simile alla BuildConfig.CodeConfig.S3Object proprietà di una AWS::Lambda::WebFunctionRevision risorsa. AWS SAM converte un s3:// URI in BucketKey, eVersionId.

EgressNetworkConnectorArn

L'ARN con certificazione di versione di un connettore di rete che indirizza il traffico in uscita della funzione attraverso il tuo VPC. L'ARN deve terminare con un numero di versione, ad esempio. arn:aws:lambda:us-east-1:123456789012:network-connector:my-connector:1 Per utilizzare la versione più recente di un connettore nello stesso modello, specificare!GetAtt MyConnector.LatestVersionArn. I connettori ComputeTypesdevono essereWebFunction.

Se si specifica una stringa letterale, AWS SAM verifica che si tratti di un connettore di rete ARN con qualifica di versione. Le funzioni intrinseche vengono passate e convalidate dal servizio. La modifica di questo valore crea una nuova revisione.

▬Tipo: stringa

Obbligatorio: no

CloudFormation compatibilità: questa proprietà viene passata direttamente alla ServiceConfig.EgressNetworkConnectorArn proprietà di una AWS::Lambda::WebFunctionRevision risorsa.

EndpointDescription

Una descrizione dell'endpoint.

▬Tipo: stringa

Obbligatorio: no

CloudFormation compatibilità: questa proprietà viene passata direttamente alla Description proprietà di una AWS::Lambda::WebFunctionEndpoint risorsa.

EndpointName

Il nome dell'endpoint. La modifica del nome sostituisce l'endpoint. La modifica sostituisce EndpointType anche l'endpoint, quindi cambia EndpointName contemporaneamente. CloudFormation non può sostituire una risorsa con nome personalizzato senza un nuovo nome.

▬Tipo: stringa

Obbligatorio: no

Default: prod

CloudFormation compatibilità: questa proprietà viene passata direttamente alla EndpointName proprietà di una AWS::Lambda::WebFunctionEndpoint risorsa.

EndpointType

Dove l'endpoint serve il traffico.

  • HomeRegion: serve dalla regione dello stack.

  • MultiRegion: replica la funzione nelle regioni ReplicaRegionse indirizza ogni richiesta alla regione più vicina.

  • PerRegion: espone un endpoint separato in ogni regione di replica.

MultiRegione richiedono. PerRegion AutoDeploymentMode: Disabled

Valori validi:HomeRegion,MultiRegion, PerRegion

▬Tipo: stringa

Obbligatorio: no

Default: HomeRegion

CloudFormation compatibilità: questa proprietà viene passata direttamente alla EndpointType proprietà di una AWS::Lambda::WebFunctionEndpoint risorsa.

EntryPoint

Il file eseguito dal runtime, relativo alla radice del pacchetto di distribuzione. AWS SAM lo passa al runtime nella variabile di AWS_LAMBDA_NODEJS_ENTRYPOINT ambiente riservata.

Non è possibile utilizzare questa proprietà quando EnvironmentVariables è una funzione intrinseca.

▬Tipo: stringa

Obbligatorio: no

Default: index.js

CloudFormation compatibilità: questa proprietà è unica AWS SAM e non ha un CloudFormation equivalente.

EnvironmentVariables

Key-value coppie da impostare come variabili di ambiente per la revisione.

  • Le chiavi devono iniziare con una lettera e contenere solo lettere, numeri e caratteri di sottolineatura.

  • I valori non devono essere vuoti e contenere al massimo 4.096 caratteri.

  • AWS SAM converte numeri e valori booleani in stringhe.

Tipo: Mappa

Obbligatorio: no

CloudFormation compatibilità: questa proprietà viene passata direttamente alla ServiceConfig.EnvironmentVariables proprietà di una AWS::Lambda::WebFunctionRevision risorsa.

ExecutionRoleArn

L'ARN del ruolo IAM che la funzione assume durante l'esecuzione. Se non specifichi un ruolo, ne AWS SAM crea uno con la policy AWSLambdaBasicExecutionRole gestita e un ID logico di. <resource-logical-id>Role

▬Tipo: stringa

Obbligatorio: no

CloudFormation compatibilità: questa proprietà viene passata direttamente alla ServiceConfig.ExecutionRoleArn proprietà di una AWS::Lambda::WebFunctionRevision risorsa.

FunctionName

Il nome della funzione. I nomi delle funzioni devono essere univoci all'interno di un account in tutte le regioni. Se non si specifica un nome, ne AWS SAM genera uno dall'ID logico e dall'ID dello stack, con un massimo di 64 caratteri. La modifica del nome sostituisce la funzione, la sua revisione e il relativo endpoint.

▬Tipo: stringa

Obbligatorio: no

CloudFormation compatibilità: questa proprietà viene passata direttamente alla FunctionName proprietà delle risorse AWS::Lambda::WebFunctionAWS::Lambda::WebFunctionRevision, e. AWS::Lambda::WebFunctionEndpoint

InlineCode

Non supportata perAWS::Serverless::WebFunction. Utilizza CodeUri.

▬Tipo: stringa

Obbligatorio: no

CloudFormation compatibilità: questa proprietà è unica AWS SAM e non ha un CloudFormation equivalente.

KmsKeyArn

L'ARN della AWS KMS chiave utilizzata per crittografare le variabili di ambiente della revisione.

▬Tipo: stringa

Obbligatorio: no

CloudFormation compatibilità: questa proprietà viene passata direttamente alla KmsKeyArn proprietà di una risorsa. AWS::Lambda::WebFunctionRevision

LoggingConfig

La configurazione di registrazione per la revisione, ad esempio il gruppo di log e i livelli di registro.

Tipo: Mappa

Obbligatorio: no

CloudFormation compatibilità: questa proprietà viene passata direttamente alla ServiceConfig.TelemetryConfig.LoggingConfig proprietà di una AWS::Lambda::WebFunctionRevision risorsa.

MaxConcurrencyPerEnvironment

Il numero massimo di richieste simultanee gestite da ogni ambiente di esecuzione.

Tipo: integer

Obbligatorio: no

CloudFormation compatibilità: questa proprietà viene passata direttamente alla ServiceConfig.MaxConcurrencyPerEnvironment proprietà di una AWS::Lambda::WebFunctionRevision risorsa.

ReplicaRegions

Le regioni in cui replicare la funzione. Utilizzate questa proprietà con MultiRegion e gli PerRegion endpoint. Specificate un elenco di codici regionali e gruppi di regioni o un oggetto con un IncludeRegions ExcludeRegions facoltativo.

Tipo: Elenco | ReplicaRegions

Obbligatorio: no

CloudFormation compatibilità: Questa proprietà è simile alla Regions proprietà di una AWS::Lambda::WebFunctionEndpoint risorsa. AWS SAM espande i gruppi di regioni e si applica ExcludeRegions per produrre l'elenco delle regioni.

RevisionDescription

Una descrizione della revisione creata da questa distribuzione.

▬Tipo: stringa

Obbligatorio: no

CloudFormation compatibilità: questa proprietà viene passata direttamente alla Description proprietà di una AWS::Lambda::WebFunctionRevision risorsa.

RevisionWeights

Una mappa degli ID di revisione in base ai pesi del traffico. Usa questa proprietà quando èAutoDeploymentMode. Disabled Specificate fino a due revisioni. Ogni peso è un numero intero compreso tra 1 e 100 e la somma dei pesi deve essere 100.

Tipo: RevisionWeights

Obbligatorio: condizionale. Obbligatorio quando AutoDeploymentMode è Disabled ed è. EndpointType HomeRegion

CloudFormation compatibilità: questa proprietà è simile alla RevisionWeights proprietà di una AWS::Lambda::WebFunctionEndpoint risorsa. AWS SAM converte la mappa in un elenco di Weight oggetti RevisionId e.

Runtime

Il runtime della funzione, ad esempionodejs24.x.

Tipo: stringa

Obbligatorio: sì

CloudFormation compatibilità: questa proprietà viene passata direttamente alla BuildConfig.RuntimeConfig.Runtime proprietà di una AWS::Lambda::WebFunctionRevision risorsa.

ScalingConfig

La configurazione di scalabilità per l'endpoint, ad esempio il numero massimo di ambienti di esecuzione.

Tipo: Mappa

Obbligatorio: no

CloudFormation compatibilità: questa proprietà viene passata direttamente alla ScalingConfig proprietà di una AWS::Lambda::WebFunctionEndpoint risorsa.

Tags

Una mappa di coppie chiave-valore che specifica i tag aggiunti alla funzione e al ruolo di esecuzione che genera. AWS SAM

Tipo: Mappa

Obbligatorio: no

CloudFormation compatibilità: questa proprietà è simile alla Tags proprietà di una AWS::Lambda::WebFunction risorsa. La Tags proprietà in AWS SAM è costituita da coppie chiave-valore (mentre in CloudFormation questa proprietà è costituita da un elenco di Tag oggetti). Inoltre, aggiunge AWS SAM automaticamente un lambda:createdBy:SAM tag alla funzione e al ruolo predefinito generato per essa.

ThrottleConfig

La configurazione di limitazione per l'endpoint, ad esempio la frequenza massima di richieste.

Tipo: Mappa

Obbligatorio: no

CloudFormation compatibilità: questa proprietà viene passata direttamente alla ThrottleConfig proprietà di una AWS::Lambda::WebFunctionEndpoint risorsa.

Timeout

Il tempo massimo, in secondi, in cui la funzione può essere eseguita per richiesta. I valori validi sono compresi tra 3 e 900.

Tipo: integer

Obbligatorio: no

Default: 30

CloudFormation compatibilità: questa proprietà viene passata direttamente alla ServiceConfig.TimeoutSeconds proprietà di una AWS::Lambda::WebFunctionRevision risorsa.

Valori restituiti

Ref

Quando l'ID logico di questa risorsa viene fornito alla funzione Ref intrinseca, restituisce l'ARN della funzione Web. Se hai bisogno del nome della funzione, usa invece il valore di. FunctionName

Per ulteriori informazioni sull'uso della Ref funzione, Refconsultate la Guida AWS CloudFormation per l'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::GetAttla Guida per l'AWS CloudFormation utente.

FunctionArn

L'Amazon Resource Name (ARN) della funzione Web.

State

Lo stato attuale della funzione Web.

StateReason

Il motivo dello stato attuale della funzione Web.

CreatedAt

L'ora in cui è stata creata la funzione Web.

UpdatedAt

L'ora dell'ultimo aggiornamento della funzione Web.

Per fare riferimento alla revisione o all'endpoint che AWS SAM genera, usa i relativi ID logici e. <resource-logical-id>Revision <resource-logical-id>Endpoint Ad esempio, !GetAtt MyWebFunctionEndpoint.DomainName restituisce il nome di dominio dell'endpoint per una funzione Web con l'ID logico. MyWebFunction Per ulteriori informazioni, consulta CloudFormation risorse generate quando AWS::Serverless::WebFunction è specificato.

Esempi

Funzione Web di base

L'esempio seguente crea una funzione Web con un IAM-authorized endpoint nella regione dello stack. AWS SAM genera il ruolo di esecuzione e l'endpoint indirizza tutto il traffico verso la revisione creata da questa distribuzione.

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Resources: MyWebFunction: Type: AWS::Serverless::WebFunction Properties: Runtime: nodejs24.x AuthType: IamAuth CodeUri: Bucket: amzn-s3-demo-bucket Key: webfn.zip Version: object-version-id Timeout: 30 Outputs: EndpointUrl: Value: !Sub https://${MyWebFunctionEndpoint.DomainName}

Suddividi il traffico tra due revisioni

L'esempio seguente disattiva la distribuzione automatica e invia il 90% del traffico a una revisione esistente e il 10% a un'altra. Entrambe le revisioni devono già esistere.

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Resources: MyWebFunction: Type: AWS::Serverless::WebFunction Properties: Runtime: nodejs24.x AuthType: IamAuth CodeUri: s3://amzn-s3-demo-bucket/webfn-v2.zip AutoDeploymentMode: Disabled RevisionWeights: rev-abc123: 90 rev-def456: 10

Multi-Region Funzione Web

L'esempio seguente replica la funzione nelle regioni degli Stati Uniti ad eccezione delle regioni degli Stati Uniti us-west-1 e indirizza ogni richiesta alla regione più vicina. Poiché RevisionWeights è omesso, l'endpoint indirizza tutto il traffico verso la revisione creata in questo stack.

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Resources: MyWebFunction: Type: AWS::Serverless::WebFunction Properties: Runtime: nodejs24.x AuthType: IamAuth CodeUri: Bucket: amzn-s3-demo-bucket Key: webfn.zip Version: object-version-id EndpointName: prodmr EndpointType: MultiRegion AutoDeploymentMode: Disabled ReplicaRegions: IncludeRegions: - US ExcludeRegions: - us-west-1

Funzione Web con uscita VPC

L'esempio seguente crea un connettore di rete per Web Functions e indirizza il traffico in uscita della funzione attraverso le sottoreti e i gruppi di sicurezza del connettore.

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Resources: MyConnector: Type: AWS::Serverless::NetworkConnector Properties: ComputeTypes: - WebFunction VpcConfig: SubnetIds: - subnet-0abc123def4567890 - subnet-0def456abc7890123 SecurityGroupIds: - sg-0abc1234abcde0001 NetworkProtocol: IPv4 MyWebFunction: Type: AWS::Serverless::WebFunction Properties: Runtime: nodejs24.x AuthType: IamAuth CodeUri: Bucket: amzn-s3-demo-bucket Key: webfn.zip Version: object-version-id EgressNetworkConnectorArn: !GetAtt MyConnector.LatestVersionArn