View a markdown version of this page

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

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.com los s3:GetObjectVersion permisos s3:GetObject y. Le recomendamos que defina la política con una ArnLike condición aws:SourceArn que 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.com realizar 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: 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

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 el lambda:InvokeWebFunctionEndpoint permiso, 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, ApplicationManaged

Tipo: cadena

Obligatorio: sí

CloudFormation compatibilidad: esta propiedad se pasa directamente a la AuthType propiedad de un AWS::Lambda::WebFunctionEndpoint recurso.

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 RevisionWeights son obligatorios dependen de EndpointType:

  • HomeRegion: utilice cualquiera de los dos valores. ConDisabled, RevisionWeights es 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 Ref A a un parámetro. No se admiten otras funciones intrínsecas.

Valores válidos: LatestRevision, Disabled

Tipo: cadena

Obligatorio: no

Valor predeterminado: LatestRevision

CloudFormation 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://bucket/key URI o un objeto con BucketKey, y Version claves 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.S3Object propiedad de un AWS::Lambda::WebFunctionRevision recurso. AWS SAM convierte un s3:// URI en BucketKey, 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:1 Para usar la última versión de un conector en la misma plantilla, especifique!GetAtt MyConnector.LatestVersionArn. Los conectores ComputeTypesdeben serloWebFunction.

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.EgressNetworkConnectorArn propiedad de un AWS::Lambda::WebFunctionRevision recurso.

EndpointDescription

Una descripción del punto final.

Tipo: cadena

Obligatorio: no

CloudFormation compatibilidad: esta propiedad se pasa directamente a la Description propiedad de un AWS::Lambda::WebFunctionEndpoint recurso.

EndpointName

El nombre del punto de enlace. Al cambiar el nombre, se reemplaza el punto final. El cambio EndpointType también reemplaza el punto final, así que EndpointName cá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: prod

CloudFormation compatibilidad: esta propiedad se pasa directamente a la EndpointName propiedad de un AWS::Lambda::WebFunctionEndpoint recurso.

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.

MultiRegiony PerRegion requierenAutoDeploymentMode: Disabled.

Valores válidos: HomeRegion, MultiRegion, PerRegion

Tipo: cadena

Obligatorio: no

Valor predeterminado: HomeRegion

CloudFormation compatibilidad: esta propiedad se pasa directamente a la EndpointType propiedad de un AWS::Lambda::WebFunctionEndpoint recurso.

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_ENTRYPOINT entorno reservada.

No puede usar esta propiedad cuando EnvironmentVariables es una función intrínseca.

Tipo: cadena

Obligatorio: no

Valor predeterminado: index.js

CloudFormation 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.EnvironmentVariables propiedad de un AWS::Lambda::WebFunctionRevision recurso.

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 AWSLambdaBasicExecutionRole administrada y un identificador lógico de. <resource-logical-id>Role

Tipo: cadena

Obligatorio: no

CloudFormation compatibilidad: esta propiedad se transfiere directamente a la ServiceConfig.ExecutionRoleArn propiedad de un AWS::Lambda::WebFunctionRevision recurso.

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 FunctionName propiedad de los AWS::Lambda::WebFunctionEndpoint recursos AWS::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 KmsKeyArn propiedad de un AWS::Lambda::WebFunctionRevision recurso.

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.LoggingConfig propiedad de un AWS::Lambda::WebFunctionRevision recurso.

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.MaxConcurrencyPerEnvironment propiedad de un AWS::Lambda::WebFunctionRevision recurso.

ReplicaRegions

Las regiones en las que se va a replicar la función. Utilice esta propiedad con MultiRegion PerRegion puntos finales. Especifique una lista de códigos de región y grupos de regiones, o un objeto con IncludeRegions una opciónExcludeRegions.

Tipo: Lista | ReplicaRegions

Obligatorio: no

CloudFormation compatibilidad: esta propiedad es similar a la Regions propiedad de un AWS::Lambda::WebFunctionEndpoint recurso. AWS SAM expande los grupos de regiones y se aplica ExcludeRegions para 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 Description propiedad de un AWS::Lambda::WebFunctionRevision recurso.

RevisionWeights

Un mapa de los identificadores de revisión y los pesos de tráfico. Utilice esta propiedad cuando AutoDeploymentMode esté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 AutoDeploymentMode es Disabled y EndpointType esHomeRegion.

CloudFormation compatibilidad: esta propiedad es similar a la RevisionWeights propiedad de un AWS::Lambda::WebFunctionEndpoint recurso. AWS SAM convierte el mapa en una lista de Weight objetos RevisionId y.

Runtime

El tiempo de ejecución de la función, por ejemplonodejs24.x.

Tipo: cadena

Obligatorio: sí

CloudFormation compatibilidad: esta propiedad se pasa directamente a la BuildConfig.RuntimeConfig.Runtime propiedad de un AWS::Lambda::WebFunctionRevision recurso.

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 ScalingConfig propiedad de un AWS::Lambda::WebFunctionEndpoint recurso.

Tags

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 Tags propiedad de un AWS::Lambda::WebFunction recurso. La Tags propiedad en se AWS SAM compone de pares clave-valor (mientras que en CloudFormation esta propiedad se compone de una lista de Tag objetos). Además, agrega AWS SAM automáticamente una lambda:createdBy:SAM etiqueta 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 ThrottleConfig propiedad de un AWS::Lambda::WebFunctionEndpoint recurso.

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

CloudFormation compatibilidad: esta propiedad se pasa directamente a la ServiceConfig.TimeoutSeconds propiedad de un AWS::Lambda::WebFunctionRevision recurso.

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 <resource-logical-id>Revision y<resource-logical-id>Endpoint. Por ejemplo, !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-id Timeout: 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-id EndpointName: 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-id EgressNetworkConnectorArn: !GetAtt MyConnector.LatestVersionArn