Tous les produits
Search
Centre de documentation

Alibaba Cloud SDK:Intégrer le SDK

Dernière mise à jour :Aug 29, 2026

Lorsque vous appelez une opération OpenAPI, nous vous recommandons d'intégrer le SDK à votre projet. L'utilisation d'un SDK simplifie le développement, permet une intégration rapide des fonctionnalités et réduit les coûts de maintenance. L'intégration d'un SDK Alibaba Cloud comprend trois étapes principales : importer le SDK, configurer les identifiants d'accès et utiliser le SDK. Cette rubrique décrit en détail le processus d'intégration du SDK.

Prérequis

Node.js >= 8.x

Importer le SDK

  1. Connectez-vous au SDK Center et sélectionnez le produit associé à l'API que vous souhaitez appeler, par exemple Short Message Service (SMS).

  2. Sur la page Installation et All Languages sur TypeScript. Ensuite, dans l'onglet Quick Start, vous trouverez les instructions d'installation du SDK pour Short Message Service (SMS).image

Configurer les identifiants d'accès

L'appel d'opérations OpenAPI nécessite des identifiants d'accès tels qu'une AccessKey ou un Security Token Service (STS) token. Stockez ces identifiants dans des variables d'environnement pour éviter toute fuite. Pour connaître les bonnes pratiques, consultez la rubrique Utiliser les identifiants d'accès en toute sécurité. Les exemples ci-dessous utilisent les variables d'environnement ALIBABA_CLOUD_ACCESS_KEY_ID et ALIBABA_CLOUD_ACCESS_KEY_SECRET.

Méthode de configuration sous Linux et macOS

Les exemples suivants utilisent ALIBABA_CLOUD_ACCESS_KEY_ID et ALIBABA_CLOUD_ACCESS_KEY_SECRET comme noms de variables. Remplacez-les par vos propres noms si nécessaire, par exemple OSS_ACCESS_KEY_ID et OSS_ACCESS_KEY_SECRET.

Exécutez les commandes export suivantes pour définir les variables d'environnement :

Important

Les variables définies avec export sont temporaires et valables uniquement pour la session en cours. Pour les rendre persistantes, ajoutez la commande export à votre fichier de démarrage de shell (tel que ~/.bashrc ou ~/.zshrc).

  • Définissez l'ID AccessKey :

    # Replace yourAccessKeyID with your AccessKey ID.
    export ALIBABA_CLOUD_ACCESS_KEY_ID=yourAccessKeyID
  • Définissez le secret AccessKey :

    # Replace yourAccessKeySecret with your AccessKey secret.
    export ALIBABA_CLOUD_ACCESS_KEY_SECRET=yourAccessKeySecret
  • Vérifiez la configuration.

    Exécutez echo $ALIBABA_CLOUD_ACCESS_KEY_ID. Si la valeur correcte s'affiche, la configuration a réussi.

Méthode de configuration sous Windows

Utiliser l'interface graphique (GUI)

  • Procédure

    Les étapes suivantes décrivent comment définir les variables d'environnement à l'aide de l'interface graphique sous Windows 10.

    Sur votre bureau, cliquez avec le bouton droit sur This PC, puis choisissez Properties > Advanced system settings > Environment Variables > New dans la section System variables ou User variables. Ensuite, terminez la configuration.

    Variable

    Example value

    AccessKey ID

    • Variable name: ALIBABA_CLOUD_ACCESS_KEY_ID

    • Variable value: yourAccessKeyID

    AccessKey secret

    • Variable name: ALIBABA_CLOUD_ACCESS_KEY_SECRET

    • Variable value: yourAccessKeySecret

  • Testez la configuration

    Cliquez sur Start (ou utilisez le raccourci clavier Win+R), cliquez sur Run, saisissez cmd, puis cliquez sur OK (ou appuyez sur Entrée) pour ouvrir l'invite de commandes. Exécutez les commandes echo %ALIBABA_CLOUD_ACCESS_KEY_ID% et echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET%. Si les commandes renvoient l'AccessKey correct, la configuration a réussi.

Utiliser l'invite de commandes (CMD)

  • Procédure

    Ouvrez l'invite de commandes en tant qu'administrateur et exécutez les commandes suivantes pour ajouter de nouvelles variables d'environnement au système.

    setx ALIBABA_CLOUD_ACCESS_KEY_ID yourAccessKeyID /M
    setx ALIBABA_CLOUD_ACCESS_KEY_SECRET yourAccessKeySecret /M

    Le paramètre /M indique une variable d'environnement système. Vous pouvez omettre ce paramètre lorsque vous définissez une variable d'environnement utilisateur.

  • Testez la configuration

    Cliquez sur Start (ou utilisez le raccourci clavier Win+R), cliquez sur Run, saisissez cmd, puis cliquez sur OK (ou appuyez sur Entrée) pour ouvrir l'invite de commandes. Exécutez les commandes echo %ALIBABA_CLOUD_ACCESS_KEY_ID% et echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET%. Si les commandes renvoient l'AccessKey correct, la configuration a réussi.

Utiliser Windows PowerShell

Dans PowerShell, vous pouvez définir de nouvelles variables d'environnement valables pour toutes les nouvelles sessions :

[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_ID', 'yourAccessKeyID', [System.EnvironmentVariableTarget]::User)
[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_SECRET', 'yourAccessKeySecret', [System.EnvironmentVariableTarget]::User)

Pour définir des variables d'environnement pour tous les utilisateurs, vous devez disposer des autorisations administratives :

[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_ID', 'yourAccessKeyID', [System.EnvironmentVariableTarget]::Machine)
[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_SECRET', 'yourAccessKeySecret', [System.EnvironmentVariableTarget]::Machine)

Vous pouvez définir des variables d'environnement temporaires valables uniquement pour la session en cours :

$env:ALIBABA_CLOUD_ACCESS_KEY_ID = "yourAccessKeyID"
$env:ALIBABA_CLOUD_ACCESS_KEY_SECRET = "yourAccessKeySecret"

Dans PowerShell, exécutez les commandes Get-ChildItem env:ALIBABA_CLOUD_ACCESS_KEY_ID et Get-ChildItem env:ALIBABA_CLOUD_ACCESS_KEY_SECRET. Si les commandes renvoient l'AccessKey correct, la configuration a réussi.

Utiliser le SDK

Cette rubrique fournit un exemple d'appel de l'opération API ou SendMessageToGlobe de Short Message Service (SMS). Pour la référence API de l'opération ou SendMessageToGlobe, consultez ou SendMessageToGlobe.

1. Initialiser le client de requête

Tous les appels OpenAPI passent par un client de requête. Cet exemple initialise un client avec une paire AccessKey. Pour d'autres méthodes d'initialisation, consultez la rubrique Gérer les identifiants d'accès.

Important
  • Les objets clients, tels que les instances Dysmsapi20180501 et , sont thread-safe et peuvent être utilisés dans un environnement multithread sans avoir besoin de créer une instance distincte pour chaque thread.

  • Évitez de créer plusieurs fois des objets clients avec new. Utilisez le modèle singleton afin qu'une seule instance de client existe par identifiant et endpoint tout au long du cycle de vie de l'application.

Exemple TypeScript

import Dysmsapi20180501, * as $Dysmsapi20180501 from '@alicloud/dysmsapi20180501';
import OpenApi, * as $OpenApi from '@alicloud/openapi-client';
import Util, * as $Util from '@alicloud/tea-util';

export default class Client {

  static createClient(): Dysmsapi20180501 {
    let config = new $OpenApi.Config({
      // Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID environment variable is set.
      accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
      // Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variable is set.
      accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
    });
    // For more information about the endpoint, see https://api.alibabacloud.com/product/Dysmsapi.
    config.endpoint = `dysmsapi.aliyuncs.com`;
    return new Dysmsapi20180501(config);
  }
}

Exemple Node.js

const Dysmsapi20180501 = require('@alicloud/dysmsapi20180501');
const OpenApi = require('@alicloud/openapi-client');
const Util = require('@alicloud/tea-util');
const Tea = require('@alicloud/tea-typescript');

class Client {

  static createClient() {
    let config = new OpenApi.Config({
      // Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID environment variable is set.
      accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
      // Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variable is set.
      accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
    });
    // For more information about the endpoint, see https://api.alibabacloud.com/product/Dysmsapi.
    config.endpoint = `dysmsapi.aliyuncs.com`;
    return new Dysmsapi20180501.default(config);
  }
}

2. Créer l'objet de requête

Transmettez les paramètres via l'objet de requête du SDK, nommé <Nom OpenAPI>Request (par exemple, SendSmsRequest). Pour plus de détails sur les paramètres, consultez la référence API : SendMessageToGlobe.

Remarque

Si une API ne comporte aucun paramètre de requête, ignorez cette étape. Par exemple, DescribeCdnSubList ne nécessite aucun objet de requête.

Exemple TypeScript

 // Create request object and set required input parameters
 let sendMessageToGlobeRequest = new $Dysmsapi20180501.SendMessageToGlobeRequest({
      // Please replace with the actual recipient number.
      to: "<YOUR_VALUE>",
      // Please replace with the actual SMS content.
      message: "<YOUR_VALUE>",
    });

Exemple Node.js

// Create request object and set required input parameters
let sendMessageToGlobeRequest = new Dysmsapi20180501.SendMessageToGlobeRequest({
    // Please replace with the actual recipient number.
    to: '<YOUR_VALUE>',
    // Please replace with the actual SMS content.
    message: '<YOUR_VALUE>',
});

3. Envoyer la requête

Appelez la fonction <nomOpération>WithOptions du client, où <operationName> correspond au nom de l'API en camel case. Cette fonction prend un objet de requête et des paramètres d'exécution (délai d'attente, proxy, etc.). Consultez la rubrique Configurations avancées.

Remarque

Si une API ne comporte aucun paramètre de requête, transmettez uniquement les options d'exécution. Par exemple, DescribeCdnSubList nécessite uniquement des paramètres d'exécution.

Exemple TypeScript

// Create runtime parameters.
let runtime = new $Util.RuntimeOptions({ });
let client = Client.createClient();
// Send a request.
await client.sendMessageToGlobeWithOptions(sendMessageToGlobeRequest, runtime);

Exemple Node.js

// Create runtime parameters.
let runtime = new Util.RuntimeOptions({ });
let client = Client.createClient();
// Send a request.
await client.sendMessageToGlobeWithOptions(sendMessageToGlobeRequest, runtime);

4. Gérer les exceptions

Le SDK Node.js V2.0 génère deux types d'exceptions :

  • UnretryableError : générée après épuisement du nombre maximal de tentatives, généralement en raison de problèmes réseau. Récupérez la dernière requête via err.data.lastRequest.

  • ResponseError : indique une erreur côté serveur renvoyée par l'API.

Consultez la rubrique Gestion des exceptions.

Important

Gérez toujours les exceptions — propagez-les, journalisez-les ou récupérez-les. Ne les ignorez jamais silencieusement.

Cliquez pour afficher l'exemple de code complet

SendMessageToGlobe API call example

Exemple TypeScript

import Dysmsapi20180501, * as $Dysmsapi20180501 from '@alicloud/dysmsapi20180501';
import OpenApi, * as $OpenApi from '@alicloud/openapi-client';
import Util, * as $Util from '@alicloud/tea-util';

export default class Client {

  static createClient(): Dysmsapi20180501 {
    let config = new $OpenApi.Config({
      // Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID environment variable is set.
      accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
      // Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variable is set.
      accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
    });
    // For more information about the endpoint, see https://api.alibabacloud.com/product/Dysmsapi.
    config.endpoint = `dysmsapi.aliyuncs.com`;
    return new Dysmsapi20180501(config);
  }

  static async main(): Promise<void> {
    let client = Client.createClient();
    // Create a request object and set the input parameters.
    let sendMessageToGlobeRequest = new $Dysmsapi20180501.SendMessageToGlobeRequest({
      to: "<YOUR_VALUE>",
      from: "<YOUR_VALUE>",
      message: "<YOUR_VALUE>",
    });
    let runtime = new $Util.RuntimeOptions({ });
    try {
      // Send the request.
      await client.sendMessageToGlobeWithOptions(sendMessageToGlobeRequest, runtime);
    } catch (error) {
      // This is for demonstration purposes only. Handle exceptions with care. Do not ignore exceptions in your project.
      // Error message
      console.log(error.message);
      // Diagnostic address
      console.log(error.data["Recommend"]);
    }    
  }
}

Client.main();

Exemple Node.js

const Dysmsapi20180501 = require('@alicloud/dysmsapi20180501');
const OpenApi = require('@alicloud/openapi-client');
const Util = require('@alicloud/tea-util');

class Client {

  static createClient() {
    let config = new OpenApi.Config({
      // Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID environment variable is set.
      accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
      // Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variable is set.
      accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
    });
    // For more information about the endpoint, see https://api.alibabacloud.com/product/Dysmsapi.
    config.endpoint = `dysmsapi.aliyuncs.com`;
    return new Dysmsapi20180501.default(config);
  }

  static async main() {
    // Create a request object and set the input parameters.
    let client = Client.createClient();
    let sendMessageToGlobeRequest = new Dysmsapi20180501.SendMessageToGlobeRequest({
      to: '<YOUR_VALUE>',
      from: '<YOUR_VALUE>',
      message: '<YOUR_VALUE>',
    });
    let runtime = new Util.RuntimeOptions({ });
    try {
      // Send the request.
      await client.sendMessageToGlobeWithOptions(sendMessageToGlobeRequest, runtime);
    } catch (error) {
      // This is for demonstration purposes only. Handle exceptions with care. Do not ignore exceptions in your project.
      // Error message
      console.log(error.message);
      // Diagnostic address
      console.log(error.data["Recommend"]);
      Util.default.assertAsString(error.message);
    }    
  }
}

exports.Client = Client;
Client.main();

Téléchargement de fichiers avec les opérations Advance

Certaines API (telles que la recherche d'images et Visual Intelligence) n'acceptent pas directement les chemins de fichiers locaux. Utilisez l'opération Advance pour télécharger des fichiers via un flux. Le SDK stocke temporairement le fichier dans un bucket OSS dans la région cn-shanghai, et le service le lit à partir de cet emplacement. Cet exemple utilise l'opération DetectBodyCount de l'API Visual Intelligence.

Important

Les fichiers temporaires stockés dans Alibaba Cloud OSS sont supprimés périodiquement.

  1. Initialiser le client de requête

    Définissez regionId et endpoint sur la même région. La valeur regionId détermine l'emplacement de stockage du fichier OSS temporaire. Si vous omettez regionId, une incompatibilité de région entre le produit et le bucket OSS entraîne des délais d'expiration.

    Exemple TypeScript

    function createClient(): facebody20191230 {
        let config = new $OpenApi.Config({
            // Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID environment variable is set.
            accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
            // Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variable is set.
            accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
        });
        // The endpoint and regionId must be for the same region.
        config.regionId = 'cn-shanghai';
        config.endpoint = 'facebody.cn-shanghai.aliyuncs.com';
        return new facebody20191230(config);
    }

    Exemple Node.js

    function createClient() {
      let config = new OpenApi.Config({
        // Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID environment variable is set.
        accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
        // Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variable is set.
        accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
      });
      // The endpoint and regionId must be for the same region.
      config.regionId = 'cn-shanghai';
      config.endpoint = 'facebody.cn-shanghai.aliyuncs.com';
      return new facebody20191230.default(config);
    }
  2. Créer l'objet de requête

    Créez un objet <NomOpenAPI>AdvanceRequest pour transmettre le flux de fichiers. Le nom du paramètre pour le flux de fichiers est ImageURLObject.

    Exemple TypeScript

        // Read the file as a file stream.
        const filePath = '<FILE_PATH>';  // Replace this with the actual file path.
        // Check if the file exists.
        if (!fs.existsSync(filePath)) {
            console.error('File does not exist:', filePath);
            return;
        }
        // Create a stream and listen for stream errors.
        const fileStream = fs.createReadStream(filePath).on('error', (err) => {
            console.error('Stream error:', err);
            process.exit(1);
        });
    
        let detectBodyCountAdvanceRequest = new $facebody20191230.DetectBodyCountAdvanceRequest({
          imageURLObject: fileStream,
        });

    Exemple Node.js

        // Read the file as a file stream.
        const filePath = '<FILE_PATH>';  // Replace this with the actual file path.
        // Check if the file exists.
        if (!fs.existsSync(filePath)) {
            console.error('File does not exist:', filePath);
            return;
        }
        // Create a stream and listen for stream errors.
        const fileStream = fs.createReadStream(filePath).on('error', (err) => {
            console.error('Stream error:', err);
            process.exit(1);
        });
    
        let detectBodyCountAdvanceRequest = new facebody20191230.DetectBodyCountAdvanceRequest({
            imageURLObject: fileStream,
        });
  3. Envoyer la requête

    Appelez la fonction <nomOpération>Advance pour envoyer la requête.

    Exemple TypeScript

    // Configure runtime parameters.
    let runtime = new $Util.RuntimeOptions({ });
    let client = Client.createClient();
    // Send the request.
    await client.detectBodyCountAdvance(detectBodyCountAdvanceRequest, runtime);

    Exemple Node.js

     // Configure runtime parameters.
     let runtime = new Util.RuntimeOptions({ });
     let client = Client.createClient();
     // Send the request.
     await client.detectBodyCountAdvance(detectBodyCountAdvanceRequest, runtime);  

Cliquez pour afficher l'exemple de code complet

Exemple TypeScript

import { default as facebody20191230 } from '@alicloud/facebody20191230';
import * as $facebody20191230 from '@alicloud/facebody20191230';
import * as $OpenApi from '@alicloud/openapi-client';
import * as $Util from '@alicloud/tea-util';
import * as fs from "fs";

export default class Client {
    static createClient(): facebody20191230 {
        let config = new $OpenApi.Config({
            // Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID environment variable is set.
            accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
            // Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variable is set.
            accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
        });
        config.regionId = 'cn-shanghai';
        config.endpoint = 'facebody.cn-shanghai.aliyuncs.com';
        return new facebody20191230(config);
    }

    static async main(): Promise<void> {
        let client = Client.createClient();

        // Read the file as a file stream.
        const filePath = '<FILE_PATH>';  // Replace this with the actual file path.
        // Check if the file exists.
        if (!fs.existsSync(filePath)) {
            console.error('File does not exist:', filePath);
            return;
        }
        // Create a stream and listen for stream errors.
        const fileStream = fs.createReadStream(filePath).on('error', (err) => {
            console.error('Stream error:', err);
            process.exit(1);
        });

        let detectBodyCountAdvanceRequest = new $facebody20191230.DetectBodyCountAdvanceRequest({
            imageURLObject: fileStream,
        });
        let runtime = new $Util.RuntimeOptions({});
        try {
            // Send the request.
            const res = await client.detectBodyCountAdvance(detectBodyCountAdvanceRequest, runtime);
            console.log(res);
        } catch (error) {
            if (error instanceof Error) {
                console.error('Error message:', error.message);
                const data = (error as any)?.data?.Recommend;
                if (typeof data === 'string') {
                    console.log('Diagnostic suggestion:', data);
                }
            }
        }
    }
}

Client.main();

Exemple Node.js

'use strict';
const facebody20191230 = require('@alicloud/facebody20191230');
const OpenApi = require('@alicloud/openapi-client');
const Util = require('@alicloud/tea-util');
const fs = require('fs');

class Client {
  static createClient() {
    let config = new OpenApi.Config({
      // Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID environment variable is set.
      accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
      // Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variable is set.
      accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
    });
    config.regionId = 'cn-shanghai';
    config.endpoint = 'facebody.cn-shanghai.aliyuncs.com';
    return new facebody20191230.default(config);
  }

  static async main() {
    let client = Client.createClient();
    // Read the file as a file stream.
    const filePath = '<FILE_PATH>';  // Replace this with the actual file path.
    // Check if the file exists.
    if (!fs.existsSync(filePath)) {
      console.error('File does not exist:', filePath);
      return;
    }
    // Create a stream and listen for stream errors.
    const fileStream = fs.createReadStream(filePath).on('error', (err) => {
      console.error('Stream error:', err);
      process.exit(1);
    });
    // Configure request parameters.
    let detectBodyCountAdvanceRequest = new facebody20191230.DetectBodyCountAdvanceRequest({
      imageURLObject: fileStream,
    });
    let runtime = new Util.RuntimeOptions({});
    try {
      // Send the request.
      const res = await client.detectBodyCountAdvance(detectBodyCountAdvanceRequest, runtime);
      console.log(res);
    } catch (error) {
      // This is for demonstration purposes only. Handle exceptions with care. Do not ignore exceptions in your project.
      console.log(error);
    }
  }
}

exports.Client = Client;
Client.main();

FAQ

  1. Erreur « You are not authorized to perform this operation » lors de l'appel d'une API

    Cause et solution

    Cause : l'utilisateur RAM associé à votre AccessKey ne dispose pas des autorisations requises pour appeler l'API.

    Solution : accordez les autorisations API requises à l'utilisateur RAM. Consultez la rubrique Gérer les autorisations des utilisateurs RAM.

    Par exemple, si vous recevez cette erreur lors de l'appel de ou SendMessageToGlobe, vous pouvez créer la stratégie d'autorisation personnalisée suivante et l'attacher à l'utilisateur RAM.

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "dysms:SendMessageToGlobe",
          "Resource": "*"
        }
      ]
    }
  2. Erreur « triggerUncaughtException Error: getaddrinfo ENOTFOUND » (problème d'endpoint)

    Cause et solution

    Cause : l'endpoint spécifié n'est pas pris en charge par l'opération OpenAPI que vous appelez.

    Solution : corrigez l'endpoint en utilisant la rubrique Configuration de l'endpoint et réessayez.

  3. Erreur « Cannot read properties of undefined (reading 'getCredential') » ou « InvalidAccessKeyId.NotFound: code: 404 »

    Cause et solution

    Cause : l'AccessKey n'a pas été transmis correctement.

    Solution : vérifiez que l'AccessKey est transmis correctement lors de l'initialisation du client. process.env("XXX") lit la valeur de XXX à partir des variables d'environnement.

Pour d'autres erreurs courantes, consultez la rubrique FAQ.