Résolution des problèmes de la CLI AWS SAM - AWS Serverless Application Model

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 de la CLI AWS SAM

Résolvez les messages d'erreur lors de l'utilisation, de l'installation et de la gestion de l'interface de ligne de AWS Serverless Application Model commande (AWS SAMCLI).

Erreurs d'installation

Linux

Erreur Docker : « Impossible de se connecter au Démon Docker. Le démon docker fonctionne-t-il sur cet hôte ? »

Dans certains cas, pour autoriser ec2-user à accéder au démon Docker, vous devrez peut-être redémarrer votre instance. Si vous recevez cette erreur, essayez de redémarrer votre instance.

Erreur shell : « commande introuvable »

Si vous recevez cette erreur, votre shell ne peut pas localiser l'exécutable CLI  AWS SAMdans le chemin d'accès. Vérifiez l'emplacement du répertoire dans lequel vous avez installé l'exécutable CLI  AWS SAM, puis vérifiez que le répertoire se trouve sur votre chemin d'accès.

AWS SAMCLIerreur : « /lib64/libc.so.6 : version `GLIBC_2.14' introuvable (requise par /usr/local/ /dist/libz.so.1) » aws-sam-cli

Si vous recevez cette erreur, vous utilisez une version non prise en charge de Linux et la version glibc intégrée est obsolète. Essayez l'une des actions suivantes :

  • Mettez à niveau votre hôte Linux vers la version 64 bits d'une distribution récente de CentOS, Fedora, Ubuntu ou Amazon Linux 2.

  • Suivez les instructions ci-dessous pour Installation de la CLI  AWS SAM.

macOS

Échec de l'installation


						Image du programme d'installation de la CLI  AWS SAMaffichant un message d'échec de l'installation

Si vous installez la CLI  AWS SAMpour votre utilisateur et que vous avez sélectionné un répertoire d'installation pour lequel vous ne disposez pas d'autorisations d'écriture, cette erreur peut survenir. Essayez l'une des actions suivantes :

  1. Sélectionnez un autre répertoire d'installation pour lequel vous disposez d'autorisations d'écriture.

  2. Supprimez le programme d'installation. Ensuite, téléchargez-le et exécutez-le à nouveau.

Messages d’erreur

Erreur Curl : « curl : (6) Impossible de résoudre : … »

Lorsque vous essayez d'appeler le point de terminaison API Gateway, vous voyez l'erreur suivante :

curl: (6) Could not resolve: endpointdomain (Domain name not found)

Cela signifie que vous avez tenté d'envoyer une demande à un domaine non valide. Cela peut se produire si votre application sans serveur n'a pas réussi à se déployer, ou si vous avez une faute de frappe dans votre commande curl. Vérifiez que l'application a été déployée avec succès à l'aide de la AWS CloudFormation console ou du AWS CLI, et vérifiez que votre curl commande est correcte.

Erreur : impossible de trouver les informations exactes sur la ressource avec le nom de pile donné

Lorsque vous exécutez la commande sam remote invoke sur une application qui contient une seule ressource de fonction Lambda, l'erreur suivante s'affiche :

Error: Can't find exact resource information with given <stack-name>. Please provide full resource ARN or --stack-name to resolve the ambiguity.
Cause possible : vous n'avez pas fourni l'option --stack-name.

Si aucun ARN de fonction n'est fourni en tant qu'argument, la sam remote invoke commande nécessite que l'option --stack-name soit fournie.

Solution : fournissez l'option--stack-name.

Voici un exemple :

$ sam remote invoke --stack-name sam-app Invoking Lambda Function HelloWorldFunction START RequestId: 40593abb-e1ad-4d99-87bd-ac032e364e82 Version: $LATEST END RequestId: 40593abb-e1ad-4d99-87bd-ac032e364e82 REPORT RequestId: 40593abb-e1ad-4d99-87bd-ac032e364e82 Duration: 11.31 ms Billed Duration: 12 ms Memory Size: 128 MB Max Memory Used: 67 MB Init Duration: 171.71 ms {"statusCode":200,"body":"{\"message\":\"hello world\"}"}%

Erreur : impossible de trouver les informations sur les ressources à partir du nom de la pile

Lorsque vous exécutez la commande sam remote invoke et que vous transmettez un ARN de fonction Lambda en tant qu'argument, l'erreur suivante s'affiche :

Error: Can't find resource information from stack name (<stack-name>) and resource id (<function-id>)
Cause possible : la valeur du nom de la pile est définie dans votre fichier samconfig.toml.

La CLI  AWS SAMvérifie d'abord si votre fichier samconfig.toml contient un nom de pile. S'il est spécifié, l'argument est transmis en tant que valeur d'identifiant logique.

Solution : transmettez plutôt l'ID logique de la fonction.

Vous pouvez transmettre l'ID logique de la fonction en tant qu'argument au lieu de l'ARN de la fonction.

Solution : supprimez la valeur du nom de la pile de votre fichier de configuration.

Vous pouvez supprimer la valeur du nom de la pile de votre fichier de configuration. Cela empêche la CLI  AWS SAMde transmettre l'ARN de votre fonction en tant que valeur d'identifiant logique.

Exécutez sam build après avoir modifié votre fichier de configuration.

Erreur : Impossible de créer les ressources gérées : impossible de localiser les informations d'identification

Lorsque vous exécutez la commande sam deploy, vous voyez l'erreur suivante :

Error: Failed to create managed resources: Unable to locate credentials

Cela signifie que vous n'avez pas configuré AWS d'informations d'identification permettant de AWS SAMCLI passer des appels AWS de service. Pour résoudre ce problème, vous devez configurer les AWS informations d'identification. Pour de plus amples informations, veuillez consulter Définition des informations d'identification AWS.

Erreur : FileNotFoundError sous Windows

Lorsque vous exécutez des commandes AWS SAMCLI sous Windows, le message d'erreur suivant peut s'afficher :

Error: FileNotFoundError

Cause possible : ils AWS SAMCLI peuvent interagir avec des chemins de fichiers qui dépassent la limite de chemin maximale de Windows.

Solution : pour résoudre ce problème, le nouveau comportement des longs chemins doit être activé. Pour ce faire, consultez la section Activer les longs chemins dans Windows 10, version 1607 et versions ultérieures dans la documentation de développement d'applications Microsoft Windows.

Erreur : résolveur de dépendances de pip…

Exemple de texte d'erreur :

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts. 
aws-sam-cli 1.58.0 requires aws-sam-translator==1.51.0, but you have aws-sam-translator 1.58.0 which is incompatible. 
aws-sam-cli 1.58.0 requires typing-extensions==3.10.0.0, but you have typing-extensions 4.4.0 which is incompatible.
Cause possible : si vous utilisez pip pour l'installation de packages, les dépendances entre les packages peuvent entrer en conflit.

Chaque version du package aws-sam-cli dépend d'une version du package aws-sam-translator. Par exemple, aws-sam-cli v1.58.0 peut dépendre de v1.51.0 aws-sam-translator.

Si vous installez la CLI CLI  AWS SAMà l'aide de pip, puis installez un autre package dépendant d'une version plus récente de aws-sam-translator, les événements suivants se produiront :

  • La version la plus récente de aws-sam-translator sera installée.

  • La version actuelle de aws-sam-cli et la version plus récente de aws-sam-translator peuvent ne pas être compatibles.

  • Lorsque vous utilisez le AWS SAMCLI, l'erreur du résolveur de dépendances se produit.

Solutions :
  1. Utilisez le programme d'installation de packages natif de la CLI  AWS SAM.

    1. Désinstallez la CLI  AWS SAMà l'aide de pip. Pour obtenir des instructions, veuillez consulter Désinstallation de la CLI AWS SAM.

    2. Installez la CLI  AWS SAMà l'aide du programme d'installation de packages natif. Pour obtenir des instructions, veuillez consulter Installation de la CLI  AWS SAM.

    3. Si nécessaire, mettez à niveau la CLI  AWS SAMà l'aide du programme d'installation de packages natif. Pour obtenir des instructions, veuillez consulter Mise à niveau de la CLI AWS SAM en cours.

  2. Si vous devez utiliser pip, nous vous recommandons d'installer la CLI AWS SAM dans un environnement virtuel. Cela garantit un environnement d'installation propre et un environnement isolé en cas d'erreurs. Pour obtenir des instructions, veuillez consulter Installation de la CLI AWS SAM dans un environnement virtuel à l'aide de pip.

Erreur : aucune commande « télécommande » de ce type

Lorsque vous exécutez la commande sam remote invoke, vous voyez l'erreur suivante :

$ sam remote invoke ... 2023-06-20 08:15:07 Command remote not available Usage: sam [OPTIONS] COMMAND [ARGS]... Try 'sam -h' for help. Error: No such command 'remote'.
Cause possible : votre version de la CLI  AWS SAMest obsolète.

La AWS SAMCLI sam remote invoke commande a été publiée avec AWS SAMCLI la version 1.88.0. Vous pouvez vérifier votre version en exécutant la commande sam --version.

Solution : mettez à niveau votre CLI  AWS SAMvers la dernière version.

Pour obtenir des instructions, veuillez consulter Mise à niveau de la CLI AWS SAM en cours.

Erreur : l'exécution de projets AWS SAM en local nécessiteDocker. L'avez-vous installé ?

Lorsque vous exécutez la commande sam local start-api, vous voyez l'erreur suivante :

Error: Running AWS SAM projects locally requires Docker. Have you got it installed?

Cela signifie que vous n'avez pas correctement installé Docker. Docker est requis pour tester votre application localement. Pour résoudre ce problème, suivez les instructions d'installation de Docker pour votre hôte de développement. Pour de plus amples informations, veuillez consulter Installation de Docker.

Erreur : Contraintes de sécurité non satisfaites

Lors de l'exécution de sam deploy --guided, vous devrez répondre à la question Function may not have authorization defined, Is this okay? [y/N]. Si vous répondez à cette question par non N (réponse par défaut), vous voyez apparaître l'erreur suivante :

Error: Security Constraints Not Satisfied

L'invite vous informe que l'application que vous êtes sur le point de déployer peut comporter une API Amazon API Gateway accessible au public configurée sans autorisation. En répondant N à cette question, vous dites que ce n'est pas OK.

Pour résoudre le problème, vous disposez des options suivantes :

  • Configurez votre application avec l'autorisation. Pour plus d'informations sur la configuration de l'autorisation, consultez Contrôle de l'accès aux API de API Gateway.

  • Si votre intention est de disposer d'un point de terminaison d'API accessible au public sans autorisation, redémarrez votre déploiement et répondez à cette question par Y pour indiquer que vous êtes d'accord avec le déploiement.

message : jeton d'authentification manquant

Lorsque vous essayez d'appeler le point de terminaison API Gateway, vous voyez l'erreur suivante :

{"message":"Missing Authentication Token"}

Cela signifie que vous avez tenté d'envoyer une demande au domaine correct, mais que l'URI n'est pas reconnaissable. Pour résoudre ce problème, vérifiez l'URL complète et mettez à jour la commande curl avec l'URL correcte.

Messages d'avertissement

Avertissement :... AWS ne maintiendra plus le Homebrew programme d'installation pendant AWS SAM ...

Lors de l'installation de la CLI  AWS SAMà l'aide de Homebrew, le message d'avertissement suivant s'affiche :

Warning: ... AWS will no longer maintain the Homebrew installer for AWS SAM (aws/tap/aws-sam-cli). 
				For AWS supported installations, use the first party installers ...
Cause potentielle : AWS ne plus maintenir le Homebrew support.

À compter de septembre 2023, l'Homebrewinstallateur ne AWS sera plus maintenu pour le AWS SAMCLI.

Solution : utilisez une méthode d'installation AWS prise en charge.
Solution : pour continuer à utiliser Homebrew, utilisez le programme d'installation géré par la communauté.