En-têtes personnalisés - AWS Amplify Hébergement

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

En-têtes personnalisés

Les en-têtes HTTP personnalisés vous permettent de définir des en-têtes pour chaque réponse HTTP. Les en-têtes de réponse peuvent être utilisés à des fins de débogage, de sécurité et d'information. Vous pouvez spécifier des en-têtes dans la console Amplify ou en téléchargeant et en modifiant le fichier d'une application et en customHttp.yml l'enregistrant dans le répertoire racine du projet. Pour connaître les procédures détaillées, consultez Configuration d'en-têtes personnalisés.

Auparavant, les en-têtes HTTP personnalisés étaient spécifiés pour une application soit en modifiant la spécification de construction (buildspec) dans le, AWS Management Console soit en téléchargeant et en mettant à jour le amplify.yml fichier et en l'enregistrant dans le répertoire racine du projet. Les en-têtes personnalisés spécifiés de cette manière doivent être migrés hors du buildspec et du fichier. amplify.yml Pour obtenir des instructions, veuillez consulter Migration d'en-têtes personnalisés.

Format YAML d'en-tête personnalisé

Spécifiez des en-têtes personnalisés en utilisant le format YAML suivant :

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'

Pour un monorepo, utilisez le format YAML suivant :

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'

Lorsque vous ajoutez des en-têtes personnalisés à votre application, vous devez spécifier vos propres valeurs pour les éléments suivants :

pattern

Les en-têtes personnalisés sont appliqués à tous les chemins de fichiers URL correspondant au modèle.

headers

Définit les en-têtes qui correspondent au modèle de fichier.

clé

Nom de l'en-tête personnalisé.

value

Valeur de l'en-tête personnalisé.

Pour en savoir plus sur les en-têtes HTTP, consultez la liste des en-têtes HTTP de Mozilla.

Configuration d'en-têtes personnalisés

Il existe deux manières de spécifier des en-têtes HTTP personnalisés pour une application Amplify. Vous pouvez spécifier des en-têtes dans la console Amplify ou vous pouvez spécifier des en-têtes en téléchargeant et en modifiant le fichier d'une application et en customHttp.yml l'enregistrant dans le répertoire racine de votre projet.

Pour définir des en-têtes personnalisés pour une application et les enregistrer dans la console
  1. Connectez-vous à la console Amplify AWS Management Console et ouvrez-la.

  2. Choisissez l'application pour laquelle vous souhaitez définir des en-têtes personnalisés.

  3. Dans le volet de navigation, choisissez Hosting, puis Custom headers.

  4. Sur la page En-têtes personnalisés, choisissez Modifier.

  5. Dans la fenêtre Modifier les en-têtes personnalisés, entrez les informations relatives à vos en-têtes personnalisés en utilisant le format YAML d'en-tête personnalisé.

    1. Pourpattern, entrez le modèle correspondant.

    2. Pourkey, entrez le nom de l'en-tête personnalisé.

    3. Pourvalue, entrez la valeur de l'en-tête personnalisé.

  6. Choisissez Enregistrer.

  7. Redéployez l'application pour appliquer les nouveaux en-têtes personnalisés.

    • Pour une application CI/CD, accédez à la branche à déployer et choisissez Redéployer cette version. Vous pouvez également effectuer une nouvelle compilation à partir de votre dépôt Git.

    • Pour une application à déploiement manuel, déployez à nouveau l'application dans la console Amplify.

Pour définir des en-têtes personnalisés pour une application et les enregistrer à la racine de votre référentiel
  1. Connectez-vous à la console Amplify AWS Management Console et ouvrez-la.

  2. Choisissez l'application pour laquelle vous souhaitez définir des en-têtes personnalisés.

  3. Dans le volet de navigation, choisissez Hosting, puis Custom headers.

  4. Sur la page des en-têtes personnalisés, choisissez Download YML.

  5. Ouvrez le customHttp.yml fichier téléchargé dans l'éditeur de code de votre choix et entrez les informations relatives à vos en-têtes personnalisés en utilisant le format YAML d'en-tête personnalisé.

    1. Pourpattern, entrez le modèle correspondant.

    2. Pourkey, entrez le nom de l'en-tête personnalisé.

    3. Pourvalue, entrez la valeur de l'en-tête personnalisé.

  6. Enregistrez le customHttp.yml fichier modifié dans le répertoire racine de votre projet. Si vous travaillez avec un monorepo, enregistrez le customHttp.yml fichier à la racine de votre dépôt.

  7. Redéployez l'application pour appliquer les nouveaux en-têtes personnalisés.

    • Pour une application CI/CD, effectuez une nouvelle compilation à partir de votre dépôt Git qui inclut le nouveau customHttp.yml fichier.

    • Pour une application à déploiement manuel, déployez-la à nouveau dans la console Amplify et incluez le nouveau customHttp.yml fichier avec les artefacts que vous téléchargez.

Note

Les en-têtes personnalisés définis dans le customHttp.yml fichier et déployés dans le répertoire racine de l'application remplacent les en-têtes personnalisés définis dans la section En-têtes personnalisés de la console Amplify.

Migration d'en-têtes personnalisés

Auparavant, les en-têtes HTTP personnalisés étaient spécifiés pour une application soit en modifiant le buildspec dans la console Amplify, soit en téléchargeant et en mettant à jour le amplify.yml fichier et en l'enregistrant dans le répertoire racine du projet. Il est fortement recommandé de migrer vos en-têtes personnalisés hors du buildspec et du fichier. amplify.yml

Spécifiez vos en-têtes personnalisés dans la section En-têtes personnalisés de la console Amplify ou en téléchargeant et en modifiant le fichier. customHttp.yml

Pour migrer les en-têtes personnalisés stockés dans la console Amplify
  1. Connectez-vous à la console Amplify AWS Management Console et ouvrez-la.

  2. Choisissez l'application sur laquelle effectuer la migration d'en-têtes personnalisés.

  3. Dans le volet de navigation, choisissez Hosting, Build settings. Dans la section Spécification de construction de l'application, vous pouvez consulter les spécifications de construction de votre application.

  4. Choisissez Télécharger pour enregistrer une copie de vos spécifications de construction actuelles. Vous pourrez faire référence à cette copie ultérieurement si vous avez besoin de récupérer des paramètres.

  5. Lorsque le téléchargement est terminé, choisissez Modifier.

  6. Prenez note des informations d'en-tête personnalisées contenues dans le fichier, car vous les utiliserez ultérieurement à l'étape 9. Dans la fenêtre d'édition, supprimez tous les en-têtes personnalisés du fichier et choisissez Enregistrer.

  7. Dans le volet de navigation, choisissez Hosting, Custom headers.

  8. Sur la page En-têtes personnalisés, choisissez Modifier.

  9. Dans la fenêtre Modifier les en-têtes personnalisés, entrez les informations relatives aux en-têtes personnalisés que vous avez supprimés à l'étape 6.

  10. Choisissez Enregistrer.

  11. Redéployez toutes les branches auxquelles vous souhaitez appliquer les nouveaux en-têtes personnalisés.

Pour migrer des en-têtes personnalisés de amplify.yml vers CustomHttp.yml
  1. Accédez au amplify.yml fichier actuellement déployé dans le répertoire racine de votre application.

  2. Ouvrez amplify.yml dans l'éditeur de code de votre choix.

  3. Prenez note des informations d'en-tête personnalisées contenues dans le fichier, car vous les utiliserez ultérieurement à l'étape 8. Supprimez les en-têtes personnalisés du fichier. Enregistrez et fermez le fichier .

  4. Connectez-vous à la console Amplify AWS Management Console et ouvrez-la.

  5. Choisissez l'application pour laquelle vous souhaitez définir des en-têtes personnalisés.

  6. Dans le volet de navigation, choisissez Hosting, Custom headers.

  7. Sur la page En-têtes personnalisés, choisissez Télécharger.

  8. Ouvrez le customHttp.yml fichier téléchargé dans l'éditeur de code de votre choix et entrez les informations relatives aux en-têtes personnalisés que vous avez supprimés amplify.yml à l'étape 3.

  9. Enregistrez le customHttp.yml fichier modifié dans le répertoire racine de votre projet. Si vous travaillez avec un monorepo, enregistrez le fichier à la racine de votre dépôt.

  10. Redéployez l'application pour appliquer les nouveaux en-têtes personnalisés.

    • Pour une application CI/CD, effectuez une nouvelle compilation à partir de votre dépôt Git qui inclut le nouveau customHttp.yml fichier.

    • Pour une application à déploiement manuel, déployez à nouveau l'application dans la console Amplify et incluez le nouveau customHttp.yml fichier avec les artefacts que vous téléchargez.

Note

Les en-têtes personnalisés définis dans le customHttp.yml fichier et déployés dans le répertoire racine de l'application remplacent les en-têtes personnalisés définis dans la section En-têtes personnalisés de la console Amplify.

En-têtes personnalisés Monorepo

Lorsque vous spécifiez des en-têtes personnalisés pour une application dans un monorepo, tenez compte des exigences de configuration suivantes :

  • Il existe un format YAML spécifique pour un monorepo. Pour connaître la syntaxe correcte, consultezFormat YAML d'en-tête personnalisé.

  • Vous pouvez spécifier des en-têtes personnalisés pour une application dans un monorepo à l'aide de la section En-têtes personnalisés de la console Amplify. Vous devez redéployer votre application pour appliquer les nouveaux en-têtes personnalisés.

  • Au lieu d'utiliser la console, vous pouvez spécifier des en-têtes personnalisés pour une application dans un monorepo dans un fichier. customHttp.yml Vous devez enregistrer le customHttp.yml fichier à la racine de votre dépôt, puis redéployer l'application pour appliquer les nouveaux en-têtes personnalisés. Les en-têtes personnalisés spécifiés dans le customHttp.yml fichier remplacent tous les en-têtes personnalisés spécifiés dans la section En-têtes personnalisés de la console Amplify.

Exemple d'en-têtes de sécurité

Les en-têtes de sécurité personnalisés permettent de renforcer le protocole HTTPS, de prévenir les attaques XSS et de protéger votre navigateur contre le clickjacking. Utilisez la syntaxe YAML suivante pour appliquer des en-têtes de sécurité personnalisés à votre application.

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'"

En-têtes Cache-Control personnalisés

Les applications hébergées avec Amplify respectent Cache-Control les en-têtes envoyés par l'origine, sauf si vous les remplacez par des en-têtes personnalisés que vous définissez. Amplify applique uniquement les en-têtes personnalisés Cache-Control pour les réponses réussies avec un code d'état. 200 OK Cela empêche les réponses aux erreurs d'être mises en cache et diffusées aux autres utilisateurs qui font la même demande.

Vous pouvez ajuster manuellement la s-maxage directive pour mieux contrôler les performances et la disponibilité du déploiement de votre application. Par exemple, pour augmenter la durée pendant laquelle votre contenu reste en cache à la périphérie, vous pouvez augmenter manuellement le temps de vie (TTL) en le mettant à jour s-maxage à une valeur supérieure à la valeur par défaut de 600 secondes (10 minutes).

Pour spécifier une valeur personnalisée pours-maxage, utilisez le format YAML suivant. Cet exemple conserve le contenu associé en cache à la périphérie pendant 3 600 secondes (une heure).

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

Pour plus d'informations sur le contrôle des performances des applications à l'aide d'en-têtes, consultezUtilisation d'en-têtes pour contrôler la durée du cache.