Résolution des problèmes généraux d'Amplify Amplify - 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.

Résolution des problèmes généraux d'Amplify Amplify

Les informations suivantes peuvent vous aider à résoudre les problèmes généraux liés à Amplify Hosting.

Code d'état HTTP 429 (trop de requêtes)

Amplify contrôle le nombre de requêtes par seconde (RPS) adressées à votre site Web en fonction du temps de traitement et du transfert de données consommés par les demandes entrantes. Si votre application renvoie un code d'état HTTP 429, les demandes entrantes dépassent le temps de traitement et de transfert de données alloué à votre application. Cette limite d'applications est gérée par le quota de REQUEST_TOKENS_PER_SECOND service d'Amplify. Pour de plus amples informations sur les quotas, veuillez consulter Quotas du service Amplify Hosting.

Pour résoudre ce problème, nous vous recommandons d'optimiser votre application afin de réduire la durée des demandes et le transfert de données afin d'augmenter le RPS de l'application. Par exemple, avec les mêmes 20 000 jetons, une page SSR hautement optimisée qui répond dans les 100 millisecondes peut supporter un RPS plus élevé qu'une page avec une latence supérieure à 200 millisecondes.

De même, une application qui renvoie une taille de réponse de 1 Mo consommera plus de jetons qu'une application qui renvoie une taille de réponse de 250 Ko.

Nous vous recommandons également de tirer parti du CloudFront cache Amazon en configurant Cache-Control des en-têtes qui maximisent le temps pendant lequel une réponse donnée est conservée dans le cache. Les demandes traitées depuis le CloudFront cache ne sont pas prises en compte dans le calcul de la limite de débit. Chaque CloudFront distribution peut traiter jusqu'à 250 000 requêtes par seconde, ce qui vous permet de faire évoluer votre application de manière très élevée en utilisant le cache. Pour plus d'informations sur le CloudFront cache, consultez Optimisation de la mise en cache et de la disponibilité dans le manuel Amazon CloudFront Developer Guide.

La console Amplify n'affiche pas l'état de compilation et l'heure de la dernière mise à jour de mon application

Lorsque vous accédez à la page Toutes les applications de la console Amplify, une vignette s'affiche pour chacune de vos applications dans la région actuelle. Si l'état de la version, tel que Déployé, et l'heure de la dernière mise à jour ne s'affichent pas pour une application, aucune branche d'Productionétape n'est associée à l'application.

Pour répertorier les applications de la console, Amplify utilise l'ListAppsAPI. Amplify utilise l'ProductionBranch.statusattribut pour afficher l'état de la construction et l'ProductionBranch.lastDeployTimeattribut pour afficher l'heure de la dernière mise à jour. Pour plus d'informations sur cette API, consultez la documentation ProductionBranchde l'API d'hébergement Amplify.

Suivez les instructions ci-dessous pour associer une Production étape à la branche de votre application.

  1. Connectez-vous à la console Amplify.

  2. Dans la page Toutes les applications, choisissez l'application que vous souhaitez mettre à jour.

  3. Dans le volet de navigation, choisissez Paramètres de l'application, puis Paramètres de la branche.

  4. Dans la section Paramètres de la branche, choisissez Modifier.

  5. Pour Branche de production, choisissez le nom de branche que vous souhaitez utiliser.

  6. Choisissez Enregistrer.

  7. Retournez à la page Toutes les applications. L'état de construction et l'heure de la dernière mise à jour devraient maintenant être affichés pour votre application.

Les aperçus Web ne sont pas créés pour les nouvelles pull requests

La fonctionnalité d'aperçu Web vous permet de prévisualiser les modifications apportées par les pull requests avant de les fusionner dans une branche d'intégration. Un aperçu Web déploie chaque pull request envoyée à votre référentiel vers une URL d'aperçu unique, différente de l'URL utilisée par votre site principal.

Si vous avez activé les aperçus Web pour votre application, mais qu'ils ne sont pas créés pour une nouvelle application PRs, déterminez si l'une des causes suivantes est à l'origine de votre problème.

  1. Vérifiez si votre application a atteint le quota de Branches per app service maximal. Pour de plus amples informations sur les quotas, veuillez consulter Quotas du service Amplify Hosting.

    Pour respecter le quota par défaut de 50 succursales par application, pensez à activer la suppression automatique des branches dans votre application. Cela vous évitera d'accumuler dans votre compte des branches qui n'existent plus dans votre référentiel.

  2. Si vous utilisez un GitHub référentiel public et que votre application Amplify est associée à un rôle de service IAM, Amplify ne crée pas d'aperçu pour des raisons de sécurité. Par exemple, les applications dotées de backends et les applications déployées sur la plate-forme WEB_COMPUTE d'hébergement nécessitent un rôle de service IAM. Par conséquent, vous ne pouvez pas activer les aperçus Web pour ces types d'applications si leur référentiel est public.

    Pour que les aperçus Web fonctionnent pour votre application, vous pouvez soit dissocier le rôle de service (si l'application ne possède pas de backend ou n'en est pas uneWEB_COMPUTE), soit rendre le GitHub référentiel privé.

Mon déploiement manuel est bloqué avec un statut en attente dans la console Amplify

Les déploiements manuels vous permettent de publier votre application Web avec Amplify Hosting sans avoir à connecter un fournisseur Git. Vous pouvez utiliser l'une des quatre options de déploiement suivantes.

  1. Faites glisser et déposez le dossier de votre application dans la console Amplify.

  2. Glissez et déposez un fichier .zip (qui contient les artefacts de construction de votre site) dans la console Amplify.

  3. Téléchargez un fichier .zip (qui contient les artefacts de construction de votre site) dans un compartiment Amazon S3 et connectez le compartiment à une application dans la console Amplify.

  4. Utilisez une URL publique qui pointe vers un fichier .zip (contenant les artefacts de construction de votre site) dans la console Amplify.

Nous sommes conscients des problèmes liés à la fonctionnalité glisser-déposer lors de l'utilisation d'un dossier d'application pour un déploiement manuel dans la console Amplify. Ces déploiements peuvent échouer pour les raisons suivantes.

  • Des problèmes réseau transitoires se produisent.

  • Une modification locale est apportée aux fichiers lors du téléchargement.

  • La session du navigateur tente de télécharger simultanément un grand nombre de ressources statiques.

Alors que nous nous efforçons d'améliorer la fiabilité de nos téléchargements par glisser-déposer, nous vous recommandons d'utiliser un fichier .zip au lieu de glisser-déposer les dossiers de l'application.

Nous vous recommandons vivement de télécharger un fichier .zip dans un compartiment Amazon S3, car cela évite le téléchargement de fichiers depuis la console Amplify et améliore la fiabilité des déploiements manuels. L'intégration Amplify avec Amazon S3 simplifie ce processus. Pour de plus amples informations, veuillez consulter Déploiement d'un site Web statique vers Amplify à partir d'un compartiment Amazon S3.

Je dois mettre à jour la version Node.js de mon application

Amplify prend fin le 15 septembre 2025 pour les applications utilisant les versions 16 et 18 de Node.js. Les applications déjà déployées continueront de fonctionner. Toutefois, après cette date, vous ne pourrez pas déployer de mises à jour de votre application tant que vous n'aurez pas effectué la mise à niveau vers Node.js version 20 ou ultérieure.

Si vous utilisez l'image de build Amazon Linux 2023, la version 20 de Node.js est prise en charge par défaut. À compter du 15 septembre 2025, l'image AL2 023 prendra automatiquement en charge Node.js 22 et changera sa version par défaut de Node.js de 18 à 22.

Amazon Linux 2 (AL2) ne prend pas automatiquement en charge la version 20 ou ultérieure de Node.js. Si vous utilisez actuellement l'application AL2, nous vous recommandons de passer à la version AL2 023. Vous pouvez modifier l'image de construction dans la console Amplify. Vous pouvez également utiliser une image de construction personnalisée qui prend en charge la version de Node.js que vous spécifiez.

Avant de procéder à la mise à niveau, nous vous recommandons de tester votre application sur une nouvelle branche afin de vérifier qu'elle fonctionne correctement.

Options de mise à niveau

Amplify Amplify Console

Vous pouvez utiliser la fonctionnalité de mise à jour des packages en direct de la console Amplify pour spécifier la version de Node.js à utiliser. Pour obtenir des instructions, veuillez consulter Utilisation de versions de package et de dépendance spécifiques dans l'image de construction.

Image de génération personnalisée

Si vous utilisez une image de construction personnalisée et que NVM est installé sur votre image, vous pouvez l'ajouter nvm install 20 à votre Dockerfile. Pour en savoir plus sur les exigences et les instructions de configuration relatives à une image de construction personnalisée, consultezPersonnalisation de l'image de construction.

Amplify Paramètres

Vous pouvez spécifier la version de Node.js à utiliser dans les paramètres de amplify.yml compilation de votre application, en ajoutant la nvm use commande dans la section des commandes de pré-construction. Pour obtenir des instructions sur la mise à jour des paramètres de compilation d'une application, consultezConfiguration des paramètres de compilation pour une application Amplify.

L'exemple suivant montre comment personnaliser les paramètres de compilation pour définir la version par défaut de Node.js sur Node.js 18 et effectuer une mise à niveau vers Node.js version 20 sur une branche de test nomméenode-20.

frontend: phases: preBuild: commands: - nvm use 18 - if [ "${AWS_BRANCH}" = "node-20" ]; then nvm use 20; fi
Avertissement

Sachez que preBuild les commandes s'exécutent après les mises à jour des packages en direct. La version de Node.js spécifiée par la nvm use commande remplacera la version de Node.js définie par les mises à jour des packages en direct.