Tous les produits
Search
Centre de documentation

Alibaba Cloud SDK:FAQ

Dernière mise à jour :Aug 11, 2026

Retrouvez les réponses aux questions fréquemment posées sur l'intégration et l'utilisation du SDK Alibaba Cloud pour Go.

Prérequis

  • Go 1.10.x ou version ultérieure est installé.

  • Assurez-vous que les API Alibaba Cloud sont accessibles via votre réseau.

Vue d'ensemble

Problèmes et solutions

Comment gérer les erreurs liées à l'AccessKey ?

Le message d'erreur suivant s'affiche lorsque la paire d'AccessKey n'est pas configurée correctement :

  • Alibaba Cloud SDK V2.0 : InvalidCredentials: Please set up the credentials correctly. If you are setting them through environment variables, please ensure that ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET are set correctly.

  • Alibaba Cloud SDK V1.0 : SDK.ServerError InvalidAccessKeyId.NotFound Specified access key is not found.

Solutions :

  1. Exécutez les commandes suivantes pour vérifier la configuration des variables d'environnement ALIBABA_CLOUD_ACCESS_KEY_ID et ALIBABA_CLOUD_ACCESS_KEY_SECRET.

    Linux/macOS

    echo $ALIBABA_CLOUD_ACCESS_KEY_ID
    echo $ALIBABA_CLOUD_ACCESS_KEY_SECRET

    Windows

    echo %ALIBABA_CLOUD_ACCESS_KEY_ID%
    echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET%

    Si une paire d'AccessKey valide s'affiche, les variables d'environnement sont correctement configurées. Si aucune paire d'AccessKey ou une paire invalide s'affiche, configurez les variables d'environnement selon vos besoins. Pour plus d'informations, consultez Configurer les variables d'environnement sous Linux, macOS et Windows.

  2. Vérifiez les erreurs liées à la paire d'AccessKey dans le code.

    Exemple de requête erronée :

      config := &openapi.Config{
        AccessKeyId: tea.String(os.Getenv("yourAccessKeyID")),
        AccessKeySecret: tea.String(os.Getenv("yourAccessKeySecret")),
      }

    Exemple de requête correcte :

     config := &openapi.Config{
        AccessKeyId: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")),
        AccessKeySecret: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")),
      }
    Remarque

    os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID") et os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET") récupèrent l'AccessKey ID et l'AccessKey secret depuis les variables d'environnement correspondantes.

    Important

    Pour éviter tout risque de sécurité, ne codez pas en dur la paire d'AccessKey dans votre code.

Quels codes d'erreur sont renvoyés lorsque les SDK Alibaba Cloud ne parviennent pas à se connecter aux services Alibaba Cloud ?

L'un des codes d'erreur suivants peut être renvoyé :

  • InvalidAccessKeyId : Vérifiez la validité de votre AccessKey ID.

  • SignatureDoesNotMatch : Vérifiez la validité de votre AccessKey secret.

Vérifiez votre connexion réseau et assurez-vous que les pare-feu ne bloquent pas les requêtes.

Que faire si la requête API expire et que l'erreur « *net.DNSError » ou « net.OpError » s'affiche ?

Les délais d'expiration des requêtes API peuvent avoir plusieurs causes. Voici les causes les plus fréquentes et leurs solutions :

Problèmes de connexion réseau

Cause : La connexion réseau entre le client et le serveur est instable ou a échoué, empêchant la requête d'atteindre le serveur.

Solutions :

Exécutez la commande ping ou curl pour tester la connectivité entre l'hôte local et l'endpoint du service cloud. Par exemple, exécutez la commande ping dysmsapi.aliyuncs.com ou curl -v https://dysmsapi.aliyuncs.com pour tester la connectivité entre votre hôte local et l'endpoint de l'API Short Message Service (SMS).

  • Si la commande expire ou ne reçoit aucune réponse, vérifiez les règles de blocage sur votre pare-feu local ou vos routeurs.

  • Si une réponse est renvoyée, spécifiez un délai d'expiration approprié afin d'éviter les échecs de requête dus à une temporisation inadéquate. Pour plus d'informations, consultez Configurer un délai d'expiration. Exemple de code :

            // Create a RuntimeOptions instance and specify runtime parameters. 
    	runtime := &util.RuntimeOptions{}
    	// Configure a timeout period for connection requests. Unit: milliseconds.
    	runtime.ConnectTimeout = tea.Int(10000) // Set the timeout period for connection requests to 10 seconds.
Temps de traitement long de la requête API

Cause : Le temps de traitement de la requête API dépasse le délai de lecture spécifié.

Solution : Augmentez le délai de lecture. Pour plus d'informations, consultez Configurer un délai d'expiration. Exemple de code :

        // Create a RuntimeOptions instance and specify runtime parameters. 
	runtime := &util.RuntimeOptions{}
	// Configure a timeout period for read requests. Unit: milliseconds.
	runtime.ReadTimeout = tea.Int(10000) // Set the timeout period for read requests to 10 seconds.

Que faire si la compilation échoue ou si le message d'erreur « missing go.sum entry » apparaît en raison de conflits de versions entre bibliothèques ?

Cette erreur survient lorsqu'une dépendance requise est absente du fichier go.sum. Le fichier go.mod gère les dépendances du projet. Assurez-vous qu'il n'y a aucun conflit de versions dans go.mod, puis exécutez la commande suivante pour mettre à jour les dépendances et synchroniser les fichiers go.mod et go.sum :

go mod tidy

Comment utiliser un SDK pour Go dans un projet existant ?

  1. Ouvrez VS Code. Dans la barre de navigation supérieure, choisissez File > Open Folder. Créez et sélectionnez un dossier de projet, ou sélectionnez un dossier existant. Dans cet exemple, un dossier nommé gosdkproject est créé et sélectionné.

  2. Dans la barre de navigation supérieure, choisissez Terminal > New Terminal. La fenêtre TERMINAL s'affiche dans la partie inférieure de la console. Exécutez la commande go mod init gosdkprojects dans la fenêtre TERMINAL pour initialiser le projet Go. Une fois le projet initialisé, un fichier go.mod est généré dans le répertoire actuel. Ce fichier de module sert à gérer les dépendances et les informations de version du projet.

  1. Accédez au SDK Center et sélectionnez le produit cloud pour lequel vous souhaitez utiliser le SDK. Définissez SDK version sur V2.0 et choisissez Go comme langage. Copiez la commande d'installation, collez-la dans le terminal, puis appuyez sur Entrée pour l'exécuter.

Que faire si l'erreur « MissingRequiredParameter » s'affiche lors de l'appel d'une opération API ?

L'exemple suivant utilise l'opération SendSms du service Short Message Service (SMS).

  • Accédez à la page API Debugging du portail développeur OpenAPI, puis sélectionnez le produit cloud et l'opération API.

  • Vérifiez que les paramètres requis tels que PhoneNumbers et SignName sont bien spécifiés dans l'objet de requête construit. Dans cet exemple, l'objet de requête est SendSmsRequest.

  • Confirmez que tous les paramètres obligatoires sont renseignés conformément à la référence API.

  • Assurez-vous que les valeurs des paramètres requis sont valides. Par exemple, vérifiez que les numéros de téléphone mobile respectent les formats attendus.

  • Le SDK valide automatiquement les paramètres avant d'envoyer une requête API. Si un paramètre obligatoire est manquant, une erreur telle que MissingRequiredParameter s'affiche. Par exemple, si le paramètre phone_numbers n'est pas spécifié, l'erreur « MissingPhoneNumbers: code: 400 » s'affiche. Renseignez le paramètre manquant en suivant le message d'erreur.

                 sendSmsRequest := &dysmsapi20170525.SendSmsRequest{
		 // The code of the SMS template.
		 TemplateCode: tea.String("<YOUR_VALUE>"),
		 // The variables of the SMS template. Example: {\"code\":\"1234\"}.
		 TemplateParam: tea.String("{\"code\":\"1234\"}"),
		 // The mobile numbers to which you want to send a text message.
	         PhoneNumbers: tea.String("<YOUR_VALUE>"),
	         // The name of the SMS signature.
	         SignName: tea.String("<YOUR_VALUE>"),
	}

Que faire si l'appel d'une opération API échoue car celle-ci n'est pas prise en charge dans la région spécifiée et que le message « 404 Not Found » est renvoyé ?

Assurez-vous que la région sélectionnée prend en charge le service appelé. Par exemple, pour le Short Message Service (SMS), vous trouverez l'endpoint sur sa page produit dans le portail développeur OpenAPI.

Sur la page du produit, dans la section Service Area List, consultez les colonnes region ID et endpoint pour confirmer l'endpoint correspondant à votre région cible. Par exemple, pour le Short Message Service (SMS) (version API 2017-05-25), l'endpoint pour la plupart des régions est dysmsapi.aliyuncs.com.

Question 8 : Que faire si le message « go: go.mod file not found in current directory or any parent directory. » s'affiche lors de l'exécution de la commande go get ?

Ce message indique qu'aucun fichier go.mod n'existe dans le répertoire actuel ou ses répertoires parents. Le fichier go.mod gère les dépendances et les versions du projet. Exécutez la commande suivante pour initialiser le fichier go.mod :

# Initialize a new go.mod file in the current directory and define module names. In most cases, a module name is the URL path to a repository. In this example, the domain name is example.com and the project name is goproject. 
go mod init example.com/goproject

Liste de contrôle des exceptions Go courantes

Message d'erreur

Cause

Solution

Nil pointer dereference

Déréférencement d'un pointeur nul ou appel d'une méthode sur un pointeur nul.

Avant d'utiliser le pointeur, assurez-vous qu'il n'est pas nil. Recourez à une instruction conditionnelle ou à un mécanisme de gestion des erreurs pour vérifier si le pointeur est nil.

Invalid memory address or nil pointer dereference

Accès à une adresse mémoire invalide ou déréférencement d'un pointeur nul.

Avant d'accéder à l'adresse mémoire, vérifiez sa validité et assurez-vous que de la mémoire lui est allouée. Utilisez une instruction conditionnelle ou un mécanisme de gestion des erreurs pour valider l'adresse mémoire.

Timeouts and cancelations

Expiration ou annulation d'une requête réseau ou d'une opération.

Avant d'envoyer une requête réseau ou d'effectuer une opération longue, configurez un délai d'expiration approprié et prévoyez l'annulation de la requête ou de l'opération selon vos besoins métier. Le package context permet de gérer le délai d'expiration et les opérations d'annulation.

Support technique

Si cette FAQ ne résout pas votre problème, contactez le support technique Alibaba Cloud :