Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
AWS::Serverless::WebFunction
Crea una función AWS Lambda web, que atiende las solicitudes HTTP a través de un punto final gestionado. A diferencia de una función de eventos Lambda, que se ejecuta en respuesta a invocaciones y eventos, una función web ejecuta su servidor web y recibe solicitudes HTTP directamente. A partir de una solaAWS::Serverless::WebFunction, AWS SAM genera la función web, una revisión inmutable que contiene el código y la configuración, y un punto final que dirige el tráfico a una o más revisiones.
nota
Al realizar la implementación en AWS CloudFormation, AWS SAM transforma sus AWS SAM recursos en CloudFormation recursos. Para obtener más información, consulte Generado CloudFormation recursos para AWS SAM.
importante
El código de la función debe ejecutar un servidor HTTP que escuche el host y el puerto de la variable de AWS_LAMBDA_HTTP_ENDPOINT entorno. El tiempo de ejecución no está configuradoPORT. De forma predeterminada, el tiempo de ejecución se ejecuta index.js en la raíz del paquete de despliegue. Se utiliza EntryPointpara ejecutar un archivo diferente.
importante
El depósito de Amazon S3 que contiene el paquete de implementación debe cumplir los siguientes requisitos:
-
El control de versiones está activado.
-
Una política de bucket otorga
lambda.amazonaws.comloss3:GetObjectVersionpermisoss3:GetObjecty. Le recomendamos que defina la política con unaArnLikecondiciónaws:SourceArnque coincida con las revisiones de la función, por ejemploarn:aws:lambda:.us-east-1:111122223333:web-function/my-function/revision/* -
Si el objeto está cifrado con SSE-KMS, utiliza una clave gestionada por el cliente cuya política de claves permite
lambda.amazonaws.comrealizar llamadaskms:Decrypt. La clave AWS gestionada de Amazon S3 (aws/s3) no es compatible porque no se puede cambiar su política de claves.
Para ver un ejemplo de política de bucket, consulte Política de bucket para Lambda en la Guía para AWS Lambda desarrolladores.
CodeUridebe hacer referencia a un objeto en Amazon S3. Los sam package comandos sam build y no admiten las rutas locales de este recurso.
Sintaxis
Para declarar esta entidad en tu plantilla AWS Serverless Application Model (AWS SAM), usa la siguiente sintaxis.
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
Propiedades
-
AuthType -
Cómo autoriza el punto final las solicitudes.
-
IamAuth: Lambda autoriza las solicitudes con Signature Version 4 e IAM. Las personas que llaman necesitan ellambda:InvokeWebFunctionEndpointpermiso, que se otorga mediante una política basada en los recursos de la función. -
ApplicationManaged: el punto final es público. Su función debe autorizar cada solicitud por sí misma.
Valores válidos:
IamAuth,ApplicationManagedTipo: cadena
Obligatorio: sí
CloudFormation compatibilidad: esta propiedad se pasa directamente a la
AuthTypepropiedad de unAWS::Lambda::WebFunctionEndpointrecurso. -
-
AutoDeploymentMode -
Cómo el punto final enruta el tráfico entre las revisiones.
-
LatestRevision: envía el 100% del tráfico a la revisión que crea esta implementación. -
Disabled: enruta el tráfico según RevisionWeights.
Los valores que se pueden utilizar y si
RevisionWeightsson obligatorios dependen de EndpointType:-
HomeRegion: utilice cualquiera de los dos valores. ConDisabled,RevisionWeightses obligatorio. -
MultiRegionoPerRegion: usarDisabled. Si lo omiteRevisionWeights, el punto final redirige el 100% del tráfico a la revisión creada en la misma pila, de modo que puede crear el punto final en una sola implementación. El tráfico no pasa a las revisiones que crean las implementaciones posteriores.
El valor debe resolverse al AWS SAM transformar la plantilla. Se admite el valor
RefA a un parámetro. No se admiten otras funciones intrínsecas.Valores válidos:
LatestRevision,DisabledTipo: cadena
Obligatorio: no
Valor predeterminado:
LatestRevisionCloudFormation compatibilidad: esta propiedad es exclusiva de AWS SAM y no tiene un CloudFormation equivalente.
-
-
CodeUri -
La ubicación en Amazon S3 del paquete de implementación. Especifique un
s3://URI o un objeto conbucket/keyBucketKey, yVersionclaves opcionales. Para conocer los requisitos del bucket, consulta la nota que aparece en la parte superior de esta página.Tipo: Cadena | CodeUri
Obligatorio: sí
CloudFormation compatibilidad: esta propiedad es similar a la
BuildConfig.CodeConfig.S3Objectpropiedad de unAWS::Lambda::WebFunctionRevisionrecurso. AWS SAM convierte uns3://URI enBucketKey, yVersionId. -
EgressNetworkConnectorArn -
El ARN compatible con la versión de un conector de red que enruta el tráfico saliente de la función a través de la VPC. El ARN debe terminar en un número de versión, por ejemplo.
arn:aws:lambda:us-east-1:123456789012:network-connector:my-connector:1Para usar la última versión de un conector en la misma plantilla, especifique!GetAtt. Los conectores ComputeTypesdeben serloMyConnector.LatestVersionArnWebFunction.Si especifica una cadena literal, AWS SAM comprueba que se trate de un ARN de conector de red compatible con la versión. El servicio transmite y valida las funciones intrínsecas. Al cambiar este valor, se crea una nueva revisión.
Tipo: cadena
Obligatorio: no
CloudFormation compatibilidad: esta propiedad se pasa directamente a la
ServiceConfig.EgressNetworkConnectorArnpropiedad de unAWS::Lambda::WebFunctionRevisionrecurso. -
EndpointDescription -
Una descripción del punto final.
Tipo: cadena
Obligatorio: no
CloudFormation compatibilidad: esta propiedad se pasa directamente a la
Descriptionpropiedad de unAWS::Lambda::WebFunctionEndpointrecurso. -
EndpointName -
El nombre del punto de enlace. Al cambiar el nombre, se reemplaza el punto final. El cambio
EndpointTypetambién reemplaza el punto final, así queEndpointNamecámbielo al mismo tiempo. CloudFormation no se puede reemplazar un recurso con un nombre personalizado sin un nombre nuevo.Tipo: cadena
Obligatorio: no
Valor predeterminado:
prodCloudFormation compatibilidad: esta propiedad se pasa directamente a la
EndpointNamepropiedad de unAWS::Lambda::WebFunctionEndpointrecurso. -
EndpointType -
Dónde el punto final atiende el tráfico.
-
HomeRegion: sirve desde la región de la pila. -
MultiRegion: replica la función en las regiones ReplicaRegionsy dirige cada solicitud a la región más cercana. -
PerRegion: muestra un punto final independiente en cada región de réplica.
MultiRegionyPerRegionrequierenAutoDeploymentMode: Disabled.Valores válidos:
HomeRegion,MultiRegion,PerRegionTipo: cadena
Obligatorio: no
Valor predeterminado:
HomeRegionCloudFormation compatibilidad: esta propiedad se pasa directamente a la
EndpointTypepropiedad de unAWS::Lambda::WebFunctionEndpointrecurso. -
-
EntryPoint -
El archivo que ejecuta el motor de ejecución, en relación con la raíz del paquete de despliegue. AWS SAM lo pasa al motor de ejecución de la variable de
AWS_LAMBDA_NODEJS_ENTRYPOINTentorno reservada.No puede usar esta propiedad cuando
EnvironmentVariableses una función intrínseca.Tipo: cadena
Obligatorio: no
Valor predeterminado:
index.jsCloudFormation compatibilidad: esta propiedad es exclusiva de AWS SAM y no tiene un CloudFormation equivalente.
-
EnvironmentVariables -
Key-value pares para establecerlos como variables de entorno para la revisión.
-
Las claves deben empezar por una letra y contener solo letras, números y guiones bajos.
-
Los valores no deben estar vacíos y tener un máximo de 4.096 caracteres.
-
AWS SAM convierte valores numéricos y booleanos en cadenas.
Tipo: mapa
Obligatorio: no
CloudFormation compatibilidad: esta propiedad se pasa directamente a la
ServiceConfig.EnvironmentVariablespropiedad de unAWS::Lambda::WebFunctionRevisionrecurso. -
-
ExecutionRoleArn -
El ARN de la función de IAM que asume la función cuando se ejecuta. Si no especificas un rol, AWS SAM crea uno con la política
AWSLambdaBasicExecutionRoleadministrada y un identificador lógico de.<resource-logical-id>RoleTipo: cadena
Obligatorio: no
CloudFormation compatibilidad: esta propiedad se transfiere directamente a la
ServiceConfig.ExecutionRoleArnpropiedad de unAWS::Lambda::WebFunctionRevisionrecurso. -
FunctionName -
El nombre de la función. Los nombres de las funciones deben ser únicos en una cuenta en todas las regiones. Si no especificas un nombre, AWS SAM genera uno a partir del identificador lógico y el identificador de pila, con un máximo de 64 caracteres. Al cambiar el nombre, se sustituyen la función, su revisión y su punto final.
Tipo: cadena
Obligatorio: no
CloudFormation compatibilidad: esta propiedad se transfiere directamente a la
FunctionNamepropiedad de losAWS::Lambda::WebFunctionEndpointrecursosAWS::Lambda::WebFunctionAWS::Lambda::WebFunctionRevision, y. -
InlineCode -
No se admite para
AWS::Serverless::WebFunction. Utilice CodeUri.Tipo: cadena
Obligatorio: no
CloudFormation compatibilidad: esta propiedad es exclusiva AWS SAM y no tiene un CloudFormation equivalente.
-
KmsKeyArn -
El ARN de la AWS KMS clave utilizada para cifrar las variables de entorno de la revisión.
Tipo: cadena
Obligatorio: no
CloudFormation compatibilidad: esta propiedad se pasa directamente a la
KmsKeyArnpropiedad de unAWS::Lambda::WebFunctionRevisionrecurso. -
LoggingConfig -
La configuración de registro de la revisión, como el grupo de registros y los niveles de registro.
Tipo: mapa
Obligatorio: no
CloudFormation compatibilidad: esta propiedad se transfiere directamente a la
ServiceConfig.TelemetryConfig.LoggingConfigpropiedad de unAWS::Lambda::WebFunctionRevisionrecurso. -
MaxConcurrencyPerEnvironment -
El número máximo de solicitudes simultáneas que gestiona cada entorno de ejecución.
Tipo: entero
Obligatorio: no
CloudFormation compatibilidad: esta propiedad se pasa directamente a la
ServiceConfig.MaxConcurrencyPerEnvironmentpropiedad de unAWS::Lambda::WebFunctionRevisionrecurso. -
ReplicaRegions -
Las regiones en las que se va a replicar la función. Utilice esta propiedad con
MultiRegionPerRegionpuntos finales. Especifique una lista de códigos de región y grupos de regiones, o un objeto conIncludeRegionsuna opciónExcludeRegions.Tipo: Lista | ReplicaRegions
Obligatorio: no
CloudFormation compatibilidad: esta propiedad es similar a la
Regionspropiedad de unAWS::Lambda::WebFunctionEndpointrecurso. AWS SAM expande los grupos de regiones y se aplicaExcludeRegionspara generar la lista de regiones. -
RevisionDescription -
Una descripción de la revisión que crea este despliegue.
Tipo: cadena
Obligatorio: no
CloudFormation compatibilidad: esta propiedad se transfiere directamente a la
Descriptionpropiedad de unAWS::Lambda::WebFunctionRevisionrecurso. -
RevisionWeights -
Un mapa de los identificadores de revisión y los pesos de tráfico. Utilice esta propiedad cuando
AutoDeploymentModeestéDisabled. Especifique hasta dos revisiones. Cada peso es un número entero comprendido entre 1 y 100 y los pesos deben sumar 100.Tipo: RevisionWeights
Obligatorio: condicional. Se requiere cuando
AutoDeploymentModeesDisabledyEndpointTypeesHomeRegion.CloudFormation compatibilidad: esta propiedad es similar a la
RevisionWeightspropiedad de unAWS::Lambda::WebFunctionEndpointrecurso. AWS SAM convierte el mapa en una lista deWeightobjetosRevisionIdy. -
Runtime -
El tiempo de ejecución de la función, por ejemplo
nodejs24.x.Tipo: cadena
Obligatorio: sí
CloudFormation compatibilidad: esta propiedad se pasa directamente a la
BuildConfig.RuntimeConfig.Runtimepropiedad de unAWS::Lambda::WebFunctionRevisionrecurso. -
ScalingConfig -
La configuración de escalado del punto final, como el número máximo de entornos de ejecución.
Tipo: mapa
Obligatorio: no
CloudFormation compatibilidad: esta propiedad se transfiere directamente a la
ScalingConfigpropiedad de unAWS::Lambda::WebFunctionEndpointrecurso. -
Un mapa de pares clave-valor que especifica las etiquetas agregadas a la función y al rol de ejecución que se AWS SAM genera.
Tipo: mapa
Obligatorio: no
CloudFormation compatibilidad: esta propiedad es similar a la
Tagspropiedad de unAWS::Lambda::WebFunctionrecurso. LaTagspropiedad en se AWS SAM compone de pares clave-valor (mientras que en CloudFormation esta propiedad se compone de una lista deTagobjetos). Además, agrega AWS SAM automáticamente unalambda:createdBy:SAMetiqueta a la función y al rol predeterminado que se genera para ella. -
ThrottleConfig -
La configuración de regulación del punto final, como la tasa máxima de solicitudes.
Tipo: mapa
Obligatorio: no
CloudFormation compatibilidad: esta propiedad se transfiere directamente a la
ThrottleConfigpropiedad de unAWS::Lambda::WebFunctionEndpointrecurso. -
Timeout -
El tiempo máximo, en segundos, que puede ejecutarse la función por solicitud. Los valores válidos oscilan entre 3 y 900.
Tipo: entero
Obligatorio: no
Valor predeterminado:
30CloudFormation compatibilidad: esta propiedad se pasa directamente a la
ServiceConfig.TimeoutSecondspropiedad de unAWS::Lambda::WebFunctionRevisionrecurso.
valores devueltos
Ref.
Cuando se proporciona el ID lógico de este recurso a la función Ref intrínseca, devuelve el ARN de la función web. Cuando necesite el nombre de la función, utilice el valor de FunctionName en su lugar.
Para obtener más información sobre el uso de la función Ref, consulta Ref en la Guía del usuario de AWS CloudFormation .
Fn: GetAtt
Fn::GetAtt devuelve un valor para un atributo especificado de este tipo. A continuación se indican los atributos disponibles y los valores devueltos de muestra.
Para obtener más información acerca de cómo usar Fn::GetAtt, consulta Fn::GetAtt en la Guía del usuario de AWS CloudFormation .
FunctionArn-
El nombre del recurso de Amazon (ARN) de la función web.
State-
El estado actual de la función web.
StateReason-
El motivo del estado actual de la función web.
CreatedAt-
La hora en que se creó la función web.
UpdatedAt-
La hora en que se actualizó la función web por última vez.
Para hacer referencia a la revisión o al punto final que se AWS SAM genera, utilice sus identificadores lógicos y<resource-logical-id>Revision. Por ejemplo, <resource-logical-id>Endpoint!GetAtt MyWebFunctionEndpoint.DomainName devuelve el nombre de dominio del punto final de una función web con el ID lógicoMyWebFunction. Para obtener más información, consulte CloudFormation recursos generados cuando AWS::Serverless::WebFunction se especifica.
Ejemplos
Función web básica
El siguiente ejemplo crea una función web con un IAM-authorized punto final en la región de la pila. AWS SAM genera la función de ejecución y el punto final enruta todo el tráfico a la revisión que crea esta implementación.
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}
Divida el tráfico entre dos revisiones
El siguiente ejemplo deshabilita la implementación automática y envía el 90% del tráfico a una revisión existente y el 10% a otra. Ambas revisiones deben existir ya.
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 Función web
En el siguiente ejemplo, se replica la función en las regiones de EE. UU., excepto en las regiones de EE. UU. us-west-1 y se enruta cada solicitud a la región más cercana. Como RevisionWeights se omite, el punto final enruta todo el tráfico a la revisión creada en esta pila.
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
Función web con salida de VPC
El siguiente ejemplo crea un conector de red para Web Functions y enruta el tráfico saliente de la función a través de las subredes y los grupos de seguridad del conector.
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