Creación y administración de URL de funciones de Lambda
Una URL de función es un punto de conexión HTTP(S) dedicado para la función de Lambda. Puede crear y configurar una URL de función a través de la consola de Lambda o la API de Lambda. Al crear una URL de función, Lambda genera automáticamente un punto de conexión de URL único para usted. Una vez que crea una URL de función, el punto de conexión de la URL nunca cambia. Los puntos de conexión de la URL de función tienen el siguiente formato:
https://
<url-id>
.lambda-url.<region>.on.aws
nota
Las URL de función no se admiten en las siguientes Regiones de AWS: Asia-Pacífico (Hyderabad) (ap-south-2
), Asia-Pacífico (Melbourne) (ap-southeast-4
), Asia-Pacífico (Malasia) (ap-southeast-5
), Oeste de Canadá (Calgary) (ca-west-1
), Europa (España) (eu-south-2
), Europa (Zúrich) (eu-central-2
), Israel (Tel Aviv) (il-central-1
) y Medio Oriente (Emiratos Árabes Unidos) (me-central-1
).
Las URL de funciones están habilitadas para doble pila y son compatibles con IPv4 e IPv6. Después de configurar una URL de función para su función, puede invocar la función a través de su punto de conexión HTTP(S) mediante un navegador web, curl, Postman o cualquier cliente HTTP.
nota
Puede acceder a la URL de la función solo a través de la Internet pública. Si bien las funciones de Lambda son compatibles con AWS PrivateLink, las URL de las funciones no lo son.
Las URL de funciones de Lambda utilizan políticas basadas en recursos para la seguridad y el control de acceso. Las URL de funciones también admiten opciones de configuración de uso compartido de recursos entre orígenes (CORS).
Puede aplicar las URL de las funciones a cualquier alias de la función o a la versión $LATEST
de la función no publicada. No se puede agregar una URL de función a ninguna otra versión de la función.
La siguiente sección muestra cómo crear y administrar una URL de función mediante la consola de Lambda, la AWS CLI y la plantilla de AWS CloudFormation.
Temas
- Creación de una URL de función (consola)
- Creación de una URL de función (AWS CLI)
- Adición de una URL de función a una plantilla de CloudFormation
- Uso compartido de recursos entre orígenes (CORS)
- URL de funciones de limitación
- Desactivación de URL de funciones
- Eliminación de URL de función
- Control de acceso a las URL de las funciones de Lambda
- Invocación de URL de funciones de Lambda
- Supervisión de las URL de funciones de Lambda
- Selección de un método para invocar una función de Lambda mediante una solicitud HTTP
- Tutorial: Creación de una función de Lambda con una URL de función
Creación de una URL de función (consola)
Siga estos pasos para crear una URL de función mediante la consola.
-
Abra la página de Funciones
en la consola de Lambda. -
Elija el nombre de la función para la que desea crear la URL de función.
-
Elija la pestaña Configuration (Configuración) y, a continuación, elija Function URL (URL de función).
-
Elija Create function URL (Crear URL de función).
-
Para el Auth type (Tipo de autenticación), elija AWS_IAM o NONE (NINGUNO). Para obtener más información sobre la autenticación de URL de función, consulte Control de acceso.
-
(Opcional) Seleccione Configure cross-origin resource sharing (CORS) (Configuración de uso compartido de recursos entre orígenes [CORS]) y, a continuación, configure los ajustes de CORS para la URL de función. Para obtener más información acerca de CORS, consulte Uso compartido de recursos entre orígenes (CORS).
-
Seleccione Guardar.
Esto crea una URL de función para la versión $LATEST
no publicada de la función. La URL de función aparece en la sección Function overview (Información general de la función) de la consola.
-
Abra la página de Funciones
en la consola de Lambda. -
Elija el nombre de la función con el alias para el que desea crear la URL de función.
-
Elija la pestaña Aliases (Alias) y, a continuación, elija el nombre del alias para el que desea crear la URL de función.
-
Elija la pestaña Configuration (Configuración) y, a continuación, elija URL de función (URL de función).
-
Elija Create function URL (Crear URL de función).
-
Para el Auth type (Tipo de autenticación), elija AWS_IAM o NONE (NINGUNO). Para obtener más información sobre la autenticación de URL de función, consulte Control de acceso.
-
(Opcional) Seleccione Configure cross-origin resource sharing (CORS) (Configuración de uso compartido de recursos entre orígenes [CORS]) y, a continuación, configure los ajustes de CORS para la URL de función. Para obtener más información acerca de CORS, consulte Uso compartido de recursos entre orígenes (CORS).
-
Seleccione Guardar.
Esto crea una URL de función para el alias de la función. La URL de función aparece en la sección Información general de la función para su alias.
Para crear una nueva función con una URL de función (consola)
-
Abra la página de Functions
(Funciones) en la consola de Lambda. -
Elija Create function (Crear función).
-
Bajo Basic information (Información básica), haga lo siguiente:
-
En Function name (Nombre de la función), ingrese un nombre para la función, como
my-function
. -
En Runtime (Tiempo de ejecución), elija el tiempo de ejecución del lenguaje que prefiera, como Node.js 18.x.
-
En Architecture (Arquitectura), elija x86_64 o arm64.
-
Expanda Permissions (Permisos) y, a continuación, elija si desea crear un nuevo rol de ejecución o utilizar uno existente.
-
-
Expanda Advanced settings (Configuración avanzada) y, a continuación, seleccione Function URL (URL de función).
-
Para el Auth type (Tipo de autenticación), elija AWS_IAM o NONE (NINGUNO). Para obtener más información sobre la autenticación de URL de función, consulte Control de acceso.
-
(Opcional) Seleccione Configure cross-origin resource sharing (CORS) (Configuración de uso compartido de recursos entre orígenes [CORS]). Al seleccionar esta opción durante la creación de la función, la URL de función permite solicitudes de todos los orígenes de forma predeterminada. Puede editar la configuración de CORS de la URL de función después de crear la función. Para obtener más información acerca de CORS, consulte Uso compartido de recursos entre orígenes (CORS).
-
Seleccione Creación de función.
Esto crea una nueva función con una URL de función para la versión $LATEST
no publicada de la función. La URL de función aparece en la sección Function overview (Información general de la función) de la consola.
Creación de una URL de función (AWS CLI)
Para crear una URL de función para una función de Lambda existente mediante la AWS Command Line Interface (AWS CLI), ejecute el siguiente comando:
aws lambda create-function-url-config \ --function-name
my-function
\ --qualifierprod
\ // optional --auth-typeAWS_IAM
--cors-config{AllowOrigins="https://example.com"}
// optional
Esto añade una URL de función al calificador prod
para la función my-function
. Para obtener más información acerca de estos parámetros de configuración, consulte CreateFunctionUrlConfig en la referencia de la API.
nota
Para crear una URL de función mediante la AWS CLI, la función ya debe existir.
Adición de una URL de función a una plantilla de CloudFormation
Para agregar un recurso de AWS::Lambda::Url
a su plantilla de AWS CloudFormation, utilice la siguiente sintaxis:
JSON
{ "Type" : "AWS::Lambda::Url", "Properties" : { "AuthType" : String, "Cors" : Cors, "Qualifier" : String, "TargetFunctionArn" : String } }
YAML
Type: AWS::Lambda::Url Properties: AuthType: String Cors: Cors Qualifier: String TargetFunctionArn: String
Parámetros
(Obligatorio)
AuthType
: define el tipo de autenticación de la URL de función. Los valores posibles sonAWS_IAM
oNONE
. Para restringir el acceso solo a los usuarios autenticados, establézcalo enAWS_IAM
. Para omitir la autenticación de IAM y permitir que cualquier usuario realice solicitudes a su función, establézcalo enNONE
.-
(Opcional)
Cors
: define la configuración de CORS para la URL de función. Para agregarCors
al recurso deAWS::Lambda::Url
en CloudFormation, utilice la siguiente sintaxis.ejemplo AWS::Lambda::Url.Cors (JSON)
{ "AllowCredentials" : Boolean, "AllowHeaders" : [ String, ... ], "AllowMethods" : [ String, ... ], "AllowOrigins" : [ String, ... ], "ExposeHeaders" : [ String, ... ], "MaxAge" : Integer }
ejemplo AWS::Lambda::Url.Cors (YAML)
AllowCredentials: Boolean AllowHeaders: - String AllowMethods: - String AllowOrigins: - String ExposeHeaders: - String MaxAge: Integer
(Opcional)
Qualifier
: el nombre del alias.(Obligatorio)
TargetFunctionArn
: el nombre o nombre de recurso de Amazon (ARN) de la función de Lambda. Los formatos de nombre válidos incluyen los siguientes:Nombre de la función:
my-function
.ARN de la función:
arn:aws:lambda:us-west-2:123456789012:function:my-function
.ARN parcial:
123456789012:function:my-function
.
Uso compartido de recursos entre orígenes (CORS)
Para definir cómo los distintos orígenes pueden acceder a la URL de función, utilice el uso compartido de recursos entre orígenes (CORS)
Encabezado CORS | Propiedad de configuración de CORS | Valores de ejemplo |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Al configurar CORS para una URL de función mediante la consola de Lambda o la AWS CLI, Lambda agrega automáticamente los encabezados CORS a todas las respuestas a través de la URL de función. También puede agregar manualmente encabezados CORS a la respuesta de la función. Si hay encabezados contradictorios, el comportamiento esperado depende del tipo de solicitud:
-
Para las solicitudes de verificación previa, como las solicitudes OPTIONS, prevalecen los encabezados CORS configurados en la URL de función. Lambda devuelve solo estos encabezados CORS en la respuesta.
-
Para las solicitudes que no son de verificación previa, como las solicitudes GET o POST, Lambda devuelve tanto los encabezados CORS configurados en la URL de función como los encabezados CORS devueltos por la función. Esto puede provocar encabezados CORS duplicados en la respuesta. Es posible que vea un error como el siguiente:
The 'Access-Control-Allow-Origin' header contains multiple values '*, *', but only one is allowed
.
En general, se recomienda configurar todos los ajustes de CORS en la URL de función, en lugar de enviar los encabezados CORS manualmente en la respuesta de la función.
URL de funciones de limitación
La limitación limita la velocidad a la que la función procesa las solicitudes. Esto resulta útil en muchas situaciones, como evitar que la función sobrecargue los recursos descendentes o gestionar un aumento repentino de las solicitudes.
Puede limitar la tasa de solicitudes que procesa la función de Lambda a través de una URL de función configurando la simultaneidad reservada. La simultaneidad reservada limita el número de invocaciones simultáneas máximas para la función. La tasa máxima de solicitudes por segundo (RPS) de la función equivale a 10 veces la simultaneidad reservada configurada. Por ejemplo, si configura la función con una simultaneidad reservada de 100, el RPS máximo es de 1000.
Cada vez que la simultaneidad de la función supera la simultaneidad reservada, la URL de función devuelve un código de estado HTTP 429
. Si la función recibe una solicitud que supera 10 veces el máximo de RPS en función de la simultaneidad reservada configurada, también recibirá un error HTTP 429
. Para obtener más información acerca de la simultaneidad reservada, consulte Configurar la simultaneidad reservada para una función.
Desactivación de URL de funciones
En caso de emergencia, es posible que quiera rechazar todo el tráfico a la URL de función. Para desactivar la URL de función, establezca la simultaneidad reservada en cero. Esto limita todas las solicitudes a la URL de función, lo que da como resultado respuestas de estado HTTP 429
. Para reactivar la URL de función, elimine la configuración de simultaneidad reservada o establezca la configuración en un importe superior a cero.
Eliminación de URL de función
Al eliminar una URL de función, no se la puede recuperar. La creación de una nueva URL de función dará como resultado una dirección URL diferente.
nota
Si elimina una URL de función con el tipo de autenticación NONE
, Lambda no elimina de forma automática la política basada en recursos asociada. Si desea eliminar esta política, debe hacerlo de forma manual.
-
Abra la página de Funciones
en la consola de Lambda. -
Elija el nombre de la función.
-
Elija la pestaña Configuration (Configuración) y, a continuación, elija Function URL (URL de función).
-
Elija Eliminar.
-
Escriba la palabra delete (eliminar) en el campo para confirmar la eliminación.
-
Elija Eliminar.
nota
Al eliminar una función que tiene una URL de función, Lambda la elimina de forma asíncrona. Si crea inmediatamente una función nueva con el mismo nombre en la misma cuenta, es posible que la URL de la función original se asigne a la nueva función en lugar de eliminarse.