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.comle autorizzazioni and.s3:GetObjects3:GetObjectVersionTi consigliamo, ad esempio, di definire l'ambito della policy con unaArnLikecondizioneaws:SourceArnche 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.comeffettuare 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:StringAutoDeploymentMode:StringCodeUri:String | CodeUriEgressNetworkConnectorArn:StringEndpointDescription:StringEndpointName:StringEndpointType:StringEntryPoint:StringEnvironmentVariables:MapExecutionRoleArn:StringFunctionName:StringInlineCode:StringKmsKeyArn:StringLoggingConfig:MapMaxConcurrencyPerEnvironment:IntegerReplicaRegions:List | ReplicaRegionsRevisionDescription:StringRevisionWeights:RevisionWeightsRuntime:StringScalingConfig:MapTags:MapThrottleConfig:MapTimeout: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,ApplicationManagedTipo: stringa
Obbligatorio: sì
CloudFormation compatibilità: questa proprietà viene passata direttamente alla
AuthTypeproprietà di unaAWS::Lambda::WebFunctionEndpointrisorsa. -
-
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
Refda A a. Altre funzioni intrinseche non sono supportate.Valori validi:
LatestRevision,Disabled▬Tipo: stringa
Obbligatorio: no
Default:
LatestRevisionCloudFormation compatibilità: questa proprietà è unica AWS SAM e non ha un CloudFormation equivalente.
-
-
CodeUri -
La posizione Amazon S3 del pacchetto di distribuzione. Specificare un
s3://URI o un oggetto conbucket/keyBucketeVersionchiavi opzionali.KeyPer 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.S3Objectproprietà di unaAWS::Lambda::WebFunctionRevisionrisorsa. AWS SAM converte uns3://URI inBucketKey, 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:1Per utilizzare la versione più recente di un connettore nello stesso modello, specificare!GetAtt. I connettori ComputeTypesdevono essereMyConnector.LatestVersionArnWebFunction.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.EgressNetworkConnectorArnproprietà di unaAWS::Lambda::WebFunctionRevisionrisorsa. -
EndpointDescription -
Una descrizione dell'endpoint.
▬Tipo: stringa
Obbligatorio: no
CloudFormation compatibilità: questa proprietà viene passata direttamente alla
Descriptionproprietà di unaAWS::Lambda::WebFunctionEndpointrisorsa. -
EndpointName -
Il nome dell'endpoint. La modifica del nome sostituisce l'endpoint. La modifica sostituisce
EndpointTypeanche l'endpoint, quindi cambiaEndpointNamecontemporaneamente. CloudFormation non può sostituire una risorsa con nome personalizzato senza un nuovo nome.▬Tipo: stringa
Obbligatorio: no
Default:
prodCloudFormation compatibilità: questa proprietà viene passata direttamente alla
EndpointNameproprietà di unaAWS::Lambda::WebFunctionEndpointrisorsa. -
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.PerRegionAutoDeploymentMode: DisabledValori validi:
HomeRegion,MultiRegion,PerRegion▬Tipo: stringa
Obbligatorio: no
Default:
HomeRegionCloudFormation compatibilità: questa proprietà viene passata direttamente alla
EndpointTypeproprietà di unaAWS::Lambda::WebFunctionEndpointrisorsa. -
-
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_ENTRYPOINTambiente riservata.Non è possibile utilizzare questa proprietà quando
EnvironmentVariablesè una funzione intrinseca.▬Tipo: stringa
Obbligatorio: no
Default:
index.jsCloudFormation 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.EnvironmentVariablesproprietà di unaAWS::Lambda::WebFunctionRevisionrisorsa. -
-
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
AWSLambdaBasicExecutionRolegestita e un ID logico di.<resource-logical-id>Role▬Tipo: stringa
Obbligatorio: no
CloudFormation compatibilità: questa proprietà viene passata direttamente alla
ServiceConfig.ExecutionRoleArnproprietà di unaAWS::Lambda::WebFunctionRevisionrisorsa. -
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
FunctionNameproprietà delle risorseAWS::Lambda::WebFunctionAWS::Lambda::WebFunctionRevision, e.AWS::Lambda::WebFunctionEndpoint -
InlineCode -
Non supportata per
AWS::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
KmsKeyArnproprietà 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.LoggingConfigproprietà di unaAWS::Lambda::WebFunctionRevisionrisorsa. -
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.MaxConcurrencyPerEnvironmentproprietà di unaAWS::Lambda::WebFunctionRevisionrisorsa. -
ReplicaRegions -
Le regioni in cui replicare la funzione. Utilizzate questa proprietà con
MultiRegione gliPerRegionendpoint. Specificate un elenco di codici regionali e gruppi di regioni o un oggetto con unIncludeRegionsExcludeRegionsfacoltativo.Tipo: Elenco | ReplicaRegions
Obbligatorio: no
CloudFormation compatibilità: Questa proprietà è simile alla
Regionsproprietà di unaAWS::Lambda::WebFunctionEndpointrisorsa. AWS SAM espande i gruppi di regioni e si applicaExcludeRegionsper 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
Descriptionproprietà di unaAWS::Lambda::WebFunctionRevisionrisorsa. -
RevisionWeights -
Una mappa degli ID di revisione in base ai pesi del traffico. Usa questa proprietà quando è
AutoDeploymentMode.DisabledSpecificate 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èDisableded è.EndpointTypeHomeRegionCloudFormation compatibilità: questa proprietà è simile alla
RevisionWeightsproprietà di unaAWS::Lambda::WebFunctionEndpointrisorsa. AWS SAM converte la mappa in un elenco diWeightoggettiRevisionIde. -
Runtime -
Il runtime della funzione, ad esempio
nodejs24.x.Tipo: stringa
Obbligatorio: sì
CloudFormation compatibilità: questa proprietà viene passata direttamente alla
BuildConfig.RuntimeConfig.Runtimeproprietà di unaAWS::Lambda::WebFunctionRevisionrisorsa. -
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
ScalingConfigproprietà di unaAWS::Lambda::WebFunctionEndpointrisorsa. -
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
Tagsproprietà di unaAWS::Lambda::WebFunctionrisorsa. LaTagsproprietà in AWS SAM è costituita da coppie chiave-valore (mentre in CloudFormation questa proprietà è costituita da un elenco diTagoggetti). Inoltre, aggiunge AWS SAM automaticamente unlambda:createdBy:SAMtag 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
ThrottleConfigproprietà di unaAWS::Lambda::WebFunctionEndpointrisorsa. -
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:
30CloudFormation compatibilità: questa proprietà viene passata direttamente alla
ServiceConfig.TimeoutSecondsproprietà di unaAWS::Lambda::WebFunctionRevisionrisorsa.
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 Ad esempio, <resource-logical-id>Endpoint!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-idTimeout: 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-idEndpointName: 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-idEgressNetworkConnectorArn: !GetAtt MyConnector.LatestVersionArn