

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.

# Configuración de encabezados HTTP personalizados para una aplicación de Amplify
<a name="custom-headers"></a>

Los encabezados HTTP personalizados le permiten especificar encabezados para todas las respuestas de HTTP. Los encabezados de respuesta se pueden utilizar para fines de depuración, seguridad e información. Puede especificar encabezados en la consola de Amplify, o bien al descargar y editar el archivo `customHttp.yml` de una aplicación y guardarlo en el directorio raíz del proyecto. Para obtener procedimientos detallados, consulte [Configuración de encabezados personalizados](setting-custom-headers.md).

Anteriormente, los encabezados HTTP personalizados de una aplicación se especificaban al editar las especificaciones de compilación (buildspec) en la consola de Amplify o al descargar el archivo `amplify.yml`, actualizarlo y guardarlo en el directorio raíz del proyecto. Recomendamos que migre los encabezados personalizados especificados de esta manera fuera del buildspec y del archivo `amplify.yml`. Para obtener instrucciones, consulte [Migrar encabezados personalizados fuera de la especificación de compilación y del archivo amplify.yml](migrate-custom-headers.md).

**Topics**
+ [

# Referencia de encabezados personalizados YAML
](custom-header-YAML-format.md)
+ [

# Configuración de encabezados personalizados
](setting-custom-headers.md)
+ [

# Migrar encabezados personalizados fuera de la especificación de compilación y del archivo amplify.yml
](migrate-custom-headers.md)
+ [

# Requisitos de encabezados personalizados en monorepo
](monorepo-custom-headers.md)

# Referencia de encabezados personalizados YAML
<a name="custom-header-YAML-format"></a>

Especifique los encabezados personalizados con el siguiente formato YAML:

```
customHeaders:
  - pattern: '*.json'
    headers:
    - key: 'custom-header-name-1'
      value: 'custom-header-value-1'
    - key: 'custom-header-name-2'
      value: 'custom-header-value-2'
  - pattern: '/path/*'
    headers:
    - key: 'custom-header-name-1'
      value: 'custom-header-value-2'
```

Para un monorepo, use el siguiente formato YAML:

```
applications:
  - appRoot: app1
    customHeaders:
    - pattern: '**/*'
      headers:
      - key: 'custom-header-name-1'
        value: 'custom-header-value-1'
  - appRoot: app2
    customHeaders:
    - pattern: '/path/*.json'
      headers:
      - key: 'custom-header-name-2'
        value: 'custom-header-value-2'
```

Cuando añada encabezados personalizados a su aplicación, deberá especificar sus propios valores para los siguientes aspectos:

**pattern**  
Los encabezados personalizados se aplican a todas las rutas de archivo de URL que coinciden con el patrón.

**headers**  
Definen los encabezados que coinciden con el patrón de archivo.

**clave**  
El nombre del encabezado personalizado.

**valor**  
El valor del encabezado personalizado.

Para obtener más información acerca de los encabezados HTTP, consulte la lista de [encabezados HTTP](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers) de Mozilla.

# Configuración de encabezados personalizados
<a name="setting-custom-headers"></a>

Existen dos formas de especificar los encabezados HTTP personalizados en una aplicación de Amplify. Puede especificar los encabezados en la consola de Amplify o bien descargar y editar el archivo `customHttp.yml` de la aplicación, que deberá guardar en el directorio raíz del proyecto.

**Cómo configurar encabezados personalizados de una aplicación y guardarlos en la consola**

1. Inicia sesión en la consola de [Amplify Consola de administración de AWS](https://console.aws.amazon.com/amplify/) y ábrela.

1. Elija la aplicación para la que desea configurar encabezados personalizados.

1. En el panel de navegación, seleccione **Alojamiento** y, a continuación, seleccione **Encabezados personalizados**.

1. En la página **Encabezados personalizados**, seleccione **Editar**.

1. En la ventana **Editar encabezados personalizados**, introduzca la información de los encabezados personalizados con [formato de encabezado personalizado YAML](custom-header-YAML-format.md).

   1. En `pattern`, introduzca el patrón de coincidencia.

   1. En `key`, ingrese el nombre del encabezado personalizado.

   1. En `value`, ingrese el valor del encabezado personalizado.

1. Elija **Guardar**.

1. Vuelva a implementar la aplicación para aplicar los nuevos encabezados personalizados.
   + En el caso de una CI/CD aplicación, vaya a la sucursal que desee implementar y seleccione **Reimplementar esta versión**. También puede realizar una nueva compilación desde su repositorio de Git.
   + Para una aplicación de implementación manual, vuelva a implementar la aplicación en la consola de Amplify.

**Cómo configurar encabezados personalizados de una aplicación y guardarlos en la raíz del repositorio**

1. Inicia sesión en la consola de [Amplify Consola de administración de AWS](https://console.aws.amazon.com/amplify/) y ábrela.

1. Elija la aplicación para la que desea configurar encabezados personalizados.

1. En el panel de navegación, seleccione **Alojamiento** y, a continuación, seleccione **Encabezados personalizados**.

1. En la página **Encabezados personalizados**, seleccione **Descargar YML**.

1. Abra el archivo `customHttp.yml` descargado en su editor de código preferido e introduzca la información de los encabezados personalizados con [formato de encabezado personalizado YAML](custom-header-YAML-format.md).

   1. En `pattern`, introduzca el patrón de coincidencia.

   1. En `key`, ingrese el nombre del encabezado personalizado.

   1. En `value`, ingrese el valor del encabezado personalizado.

1. Guarde el archivo `customHttp.yml` editado en el directorio raíz de su proyecto. Si está trabajando con un monorepo, guarde el archivo `customHttp.yml` en la raíz de su repositorio.

1. Vuelva a implementar la aplicación para aplicar los nuevos encabezados personalizados.
   + Para una CI/CD aplicación, realiza una nueva compilación desde tu repositorio de Git que incluya el nuevo `customHttp.yml` archivo.
   + Para una aplicación de implementación manual, vuelva a implementar la aplicación en la consola de Amplify e incluya el nuevo archivo `customHttp.yml` con los artefactos a cargar.

**nota**  
Los encabezados personalizados configurados en el archivo `customHttp.yml` e implementados en el directorio raíz de la aplicación anularán los encabezados personalizados definidos en la sección **Encabezados personalizados** de la consola de Amplify.

## Ejemplo de encabezados personalizados de seguridad
<a name="example-security-headers"></a>

Los encabezados personalizados de seguridad permiten aplicar HTTPS, evitar ataques XSS y defender su navegador frente a ataques tipo clickjack. Use la siguiente sintaxis de YAML para aplicar encabezados de seguridad personalizados a su aplicación.

```
customHeaders:
  - pattern: '**'
    headers:
      - key: 'Strict-Transport-Security'
        value: 'max-age=31536000; includeSubDomains'
      - key: 'X-Frame-Options'
        value: 'SAMEORIGIN'
      - key: 'X-XSS-Protection'
        value: '1; mode=block'
      - key: 'X-Content-Type-Options'
        value: 'nosniff'
      - key: 'Content-Security-Policy'
        value: "default-src 'self'"
```

## Configuración de encabezados Cache-Control personalizados
<a name="example-cache-headers"></a>

Las aplicaciones alojadas en Amplify respetan los encabezados `Cache-Control` que envía el origen, a menos que los anule al definir encabezados personalizados. Amplify solo aplica encabezados personalizados Cache-Control para las respuestas correctas con un código de estado `200 OK`. Esto evita que las respuestas de error se almacenen en caché y se distribuyen a otros usuarios que hagan la misma solicitud.

Puede ajustar manualmente la directiva `s-maxage` para tener más control sobre el rendimiento y la disponibilidad de implementación de la aplicación. Por ejemplo, para aumentar el tiempo que el contenido permanece almacenado en caché en la periferia, puede aumentar manualmente el tiempo de vida (TTL) actualizando `s-maxage` a un valor superior al predeterminado de 600 segundos (10 minutos).

Para especificar un valor personalizado para `s-maxage`, utilice el siguiente formato YAML. Este ejemplo mantiene el contenido asociado en caché en la periferia durante 3600 segundos (una hora).

```
customHeaders:
  - pattern: '/img/*'
    headers:
      - key: 'Cache-Control' 
        value: 's-maxage=3600'
```

Para obtener más información sobre cómo controlar el rendimiento de las aplicaciones con encabezados, consulte [Uso del encabezado Cache-Control para aumentar el rendimiento de la aplicación](Using-headers-to-control-cache-duration.md).

# Migrar encabezados personalizados fuera de la especificación de compilación y del archivo amplify.yml
<a name="migrate-custom-headers"></a>

Anteriormente, los encabezados HTTP personalizados de una aplicación se especificaban al editar la especificación de compilación en la consola de Amplify o al descargar el archivo `amplify.yml`, actualizarlo y guardarlo en el directorio raíz del proyecto. Se recomienda encarecidamente migrar los encabezados personalizados fuera de la especificación de compilación y del archivo `amplify.yml`.

Especifique sus encabezados personalizados en la sección **Encabezados personalizados** de la consola de Amplify o al descargar y editar el archivo `customHttp.yml`.

**Para migrar los encabezados personalizados almacenados en la consola de Amplify**

1. Inicia sesión en la consola de [Amplify Consola de administración de AWS](https://console.aws.amazon.com/amplify/) y ábrela.

1. Elija la aplicación cuyos encabezados personalizados desee migrar.

1. En el panel de navegación, elija **Alojamiento** y, a continuación, **Configuración de compilación**. En la sección **Especificaciones de compilación de la aplicación**, revise las especificaciones de compilación de su aplicación.

1. Elija **Descargar** para guardar una copia de sus especificaciones de compilación actuales. Podrá consultar esta copia más adelante si necesita recuperar alguna configuración.

1. Cuando haya terminado la descarga, elija **Editar**.

1. Tome nota de la información del encabezado personalizado del archivo, ya que deberá usarla en el paso 9. En la ventana **Editar**, elimine los encabezados personalizados del archivo y elija **Guardar**.

1. En el panel de navegación, elija **Alojamiento** y **Encabezados personalizados**.

1. En la página **Encabezados personalizados**, seleccione **Editar**.

1. En la ventana **Editar encabezados personalizados**, introduzca la información de los encabezados personalizados que eliminó en el paso 6.

1. Seleccione **Save**.

1. Vuelva a implementar aquellas ramificaciones en las que desee aplicar los nuevos encabezados personalizados.

**Para migrar los encabezados personalizados de amplify.yml a customHttp.yml**

1. Acceda al archivo `amplify.yml`, implementado actualmente en el directorio raíz de su aplicación.

1. Abra el archivo `amplify.yml` con el editor de código que prefiera.

1. Tome nota de la información del encabezado personalizado del archivo, ya que deberá usarla en el paso 8. Elimine los encabezados personalizados del archivo. Guarde y cierre el archivo.

1. Inicia sesión en la consola de [Amplify Consola de administración de AWS](https://console.aws.amazon.com/amplify/) y ábrela.

1. Elija la aplicación para la que desea configurar encabezados personalizados.

1. En el panel de navegación, elija **Alojamiento** y **Encabezados personalizados**.

1. En la página **Encabezados personalizados**, seleccione **Descargar**.

1. Abra el archivo `customHttp.yml` que ha descargado en su editor de código favorito e introduzca la información de los encabezados personalizados que eliminó de `amplify.yml` en el paso 3.

1. Guarde el archivo `customHttp.yml` editado en el directorio raíz de su proyecto. Si está trabajando con un monorepo, guarde el archivo en la raíz de su repositorio.

1. Vuelva a implementar la aplicación para aplicar los nuevos encabezados personalizados.
   + Para una CI/CD aplicación, realiza una nueva compilación desde tu repositorio de Git que incluya el nuevo `customHttp.yml` archivo.
   + Para una aplicación de implementación manual, vuelva a implementar la aplicación en la consola de Amplify e incluya el nuevo archivo `customHttp.yml` con los artefactos que subas.

**nota**  
Los encabezados personalizados configurados en el archivo `customHttp.yml` e implementados en el directorio raíz de la aplicación anularán los encabezados personalizados definidos en la sección **Encabezados personalizados** de la consola de Amplify.

# Requisitos de encabezados personalizados en monorepo
<a name="monorepo-custom-headers"></a>

Para especificar encabezados personalizados en una aplicación en monorepo, deberá cumplir los siguientes requisitos de configuración:
+ Dispone de un formato YAML específico para monorepo. Para consultar la sintaxis correcta, acceda a [Referencia de encabezados personalizados YAML](custom-header-YAML-format.md).
+ Puede especificar encabezados personalizados para una aplicación en monorepo en la sección **Encabezados personalizados** de la consola de Amplify. Deberá volver a implementar su aplicación para aplicar los nuevos encabezados personalizados.
+ Como alternativa al uso de la consola, puede especificar encabezados personalizados para una aplicación en monorepo en un archivo `customHttp.yml`. Deberá guardar el archivo `customHttp.yml` en la raíz de su repositorio y, a continuación, volver a implementar la aplicación para aplicar los nuevos encabezados personalizados. Los encabezados personalizados especificados en el archivo `customHttp.yml` anularán los encabezados personalizados especificados en la sección **Encabezados personalizados** de la consola de Amplify.