

# Creación y administración de URL de funciones de Lambda
<a name="urls-configuration"></a>

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.

**sugerencia**  
Lambda ofrece dos formas de invocar la función a través de un punto de conexión HTTP: URL de función y Amazon API Gateway. Si no está seguro de cuál es el mejor método para el caso, consulte [Selección de un método para invocar una función de Lambda mediante una solicitud HTTP](furls-http-invoke-decision.md).

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`), Asia Pacífico (Nueva Zelanda) (`ap-southeast-6`), Asia Pacífico (Tailandia) (`ap-southeast-7`) Asia-Pacífico (Taipéi) (`ap-east-2`), 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 (EAU) (`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](access-control-resource-based.md) 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 CloudFormation.

**Topics**
+ [Creación de una URL de función (consola)](#create-url-console)
+ [Creación de una URL de función (AWS CLI)](#create-url-cli)
+ [Adición de una URL de función a una plantilla de CloudFormation](#urls-cfn)
+ [Compartir recursos entre orígenes (CORS)](#urls-cors)
+ [URL de funciones de limitación](#urls-throttling)
+ [Desactivación de URL de funciones](#urls-deactivating)
+ [Eliminación de URL de función](#w2aac39c81c53)
+ [Control de acceso a las URL de las funciones de Lambda](urls-auth.md)
+ [Invocación de URL de funciones de Lambda](urls-invocation.md)
+ [Supervisión de las URL de funciones de Lambda](urls-monitoring.md)
+ [Selección de un método para invocar una función de Lambda mediante una solicitud HTTP](furls-http-invoke-decision.md)
+ [Tutorial: Creación de un punto de conexión de webhook mediante la URL de una función de Lambda](urls-webhook-tutorial.md)

## Creación de una URL de función (consola)
<a name="create-url-console"></a>

Siga estos pasos para crear una URL de función mediante la consola.

### Para crear una URL de función para una función existente
<a name="create-url-existing-function"></a>

1. Abra la página de [Funciones](https://console.aws.amazon.com/lambda/home#/functions) en la consola de Lambda.

1. Elija el nombre de la función para la que desea crear la URL de función.

1. Elija la pestaña **Configuration** (Configuración) y, a continuación, elija **Function URL** (URL de función).

1. Elija **Create function URL** (Crear URL de función).

1. 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](urls-auth.md).

1. (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 [Compartir recursos entre orígenes (CORS)](#urls-cors).

1. Seleccione **Save**.

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.

### Para crear una URL de función para un alias existente
<a name="create-url-existing-alias"></a>

1. Abra la página de [Funciones](https://console.aws.amazon.com/lambda/home#/functions) en la consola de Lambda.

1. Elija el nombre de la función con el alias para el que desea crear la URL de función.

1. 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.

1. Elija la pestaña **Configuration** (Configuración) y, a continuación, elija **URL de función** (URL de función).

1. Elija **Create function URL** (Crear URL de función).

1. 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](urls-auth.md).

1. (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 [Compartir recursos entre orígenes (CORS)](#urls-cors).

1. Seleccione **Save**.

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
<a name="create-url-new-function"></a>

**Para crear una nueva función con una URL de función (consola)**

1. Abra la página de [Functions](https://console.aws.amazon.com/lambda/home#/functions) (Funciones) en la consola de Lambda.

1. Elija **Create function (Crear función)**.

1. Bajo **Basic information (Información básica)**, haga lo siguiente:

   1. En **Function name** (Nombre de la función), ingrese un nombre para la función, como **my-function**.

   1. En **Tiempo de ejecución**, elija el tiempo de ejecución del lenguaje que prefiera, como **Node.js 24**.

   1. En **Architecture** (Arquitectura), elija **x86\_64** o **arm64**.

   1. Expanda **Permissions** (Permisos) y, a continuación, elija si desea crear un nuevo rol de ejecución o utilizar uno existente.

1. Expanda **Advanced settings** (Configuración avanzada) y, a continuación, seleccione **Function URL** (URL de función).

1. 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](urls-auth.md).

1. (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 [Compartir recursos entre orígenes (CORS)](#urls-cors).

1. 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)
<a name="create-url-cli"></a>

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}} \
    --qualifier {{prod}} \ // optional
    --auth-type {{AWS_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](https://docs.aws.amazon.com/lambda/latest/api/API_CreateFunctionUrlConfig.html) 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
<a name="urls-cfn"></a>

Para agregar un recurso de `AWS::Lambda::Url` a su plantilla de CloudFormation, utilice la siguiente sintaxis:

### JSON
<a name="urls-cfn-json"></a>

```
{
  "Type" : "AWS::Lambda::Url",
  "Properties" : {
      "AuthType" : String,
      "Cors" : Cors,
      "Qualifier" : String,
      "TargetFunctionArn" : String
    }
}
```

### YAML
<a name="urls-cfn-yaml"></a>

```
Type: AWS::Lambda::Url
Properties: 
  AuthType: String
  Cors: 
    Cors
  Qualifier: String
  TargetFunctionArn: String
```

### Parameters
<a name="urls-cfn-params"></a>
+ (Obligatorio) `AuthType`: define el tipo de autenticación de la URL de función. Los valores posibles son `AWS_IAM` o `NONE`. Para restringir el acceso solo a los usuarios autenticados, establézcalo en `AWS_IAM`. Para omitir la autenticación de IAM y permitir que cualquier usuario realice solicitudes a su función, establézcalo en `NONE`.
+ (Opcional) `Cors`: define la [configuración de CORS](#urls-cors) para la URL de función. Para agregar `Cors` al recurso de `AWS::Lambda::Url` en CloudFormation, utilice la siguiente sintaxis.

    
**Example AWS::Lambda::Url.Cors (JSON)**  

  ```
  {
    "AllowCredentials" : Boolean,
    "AllowHeaders" : [ String, ... ],
    "AllowMethods" : [ String, ... ],
    "AllowOrigins" : [ String, ... ],
    "ExposeHeaders" : [ String, ... ],
    "MaxAge" : Integer
  }
  ```  
**Example 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`

## Compartir recursos entre orígenes (CORS)
<a name="urls-cors"></a>

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)](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS). Recomendamos configurar CORS si tiene la intención de llamar a la URL de función desde otro dominio. Lambda es compatible con los siguientes encabezados CORS para las URL de funciones.


| Encabezado CORS | Propiedad de configuración de CORS | Valores de ejemplo | 
| --- | --- | --- | 
| [ Access-Control-Allow-Origin](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin) | `AllowOrigins` | `*` (permitir todos los orígenes)<br />`https://www.example.com`<br />`http://localhost:60905` | 
| [ Access-Control-Allow-Methods](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Methods) | `AllowMethods` | `GET`, `POST`, `DELETE`, `*` | 
| [ Access-Control-Allow-Headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Headers) | `AllowHeaders` | `Date`, `Keep-Alive`, `X-Custom-Header` | 
| [ Access-Control-Expose-Headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Expose-Headers) | `ExposeHeaders` | `Date`, `Keep-Alive`, `X-Custom-Header` | 
| [ Access-Control-Allow-Credentials](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials) | `AllowCredentials` | `TRUE` | 
| [ Access-Control-Max-Age](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Max-Age) | `MaxAge` | `5` (predeterminado), `300` | 

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
<a name="urls-throttling"></a>

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](configuration-concurrency.md).

## Desactivación de URL de funciones
<a name="urls-deactivating"></a>

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
<a name="w2aac39c81c53"></a>

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.

1. Abra la página de [Funciones](https://console.aws.amazon.com/lambda/home#/functions) en la consola de Lambda.

1. Elija el nombre de la función.

1. Elija la pestaña **Configuration** (Configuración) y, a continuación, elija **Function URL** (URL de función).

1. Elija **Eliminar**.

1. Escriba la palabra *delete* (eliminar) en el campo para confirmar la eliminación.

1. 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.