Todos os produtos
Search
Central de documentação

Alibaba Cloud SDK:Perguntas frequentes sobre o Alibaba Cloud SDK for Node.js

Última atualização: Jun 28, 2026

Este tópico responde a perguntas frequentes sobre a integração e o uso do Alibaba Cloud SDK for Node.js para aumentar sua eficiência no desenvolvimento.

Pré-requisitos

  • Node.js 8.x ou posterior instalado no ambiente de desenvolvimento.

  • As APIs da Alibaba Cloud acessíveis pela rede.

Visão geral

Perguntas e soluções

Como lidar com erros de AccessKey?

Problema: A seguinte mensagem de erro é retornada após a execução do código, indicando que o par de AccessKey não está configurado corretamente.

  • Alibaba Cloud SDK V2.0 for Node.js: Cannot read properties of undefined (reading 'getCredential').

  • Alibaba Cloud SDK V1.0 for Node.js: AssertionError [ERR_ASSERTION]: must pass "config.accessKeyId".

Soluções:

  1. Execute os comandos abaixo para verificar se as variáveis de ambiente ALIBABA_CLOUD_ACCESS_KEY_ID e ALIBABA_CLOUD_ACCESS_KEY_SECRET estão configuradas.

    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%

    Se um par de AccessKey válido for retornado, as variáveis de ambiente estarão configuradas adequadamente. Caso nenhum par seja retornado ou ele seja inválido, configure as variáveis de ambiente conforme necessário. Para mais informações, consulte Configurar variáveis de ambiente no Linux, macOS e Windows.

  2. Verifique se há erros relacionados ao par de AccessKey no código.

    Exemplo de requisição com erro:

     let config = new OpenApi.Config({
          accessKeyId: process.env['yourAccessKeyID'],
          accessKeySecret: process.env['yourAccessKeySecret'],
        });

    Exemplo de requisição bem-sucedida:

    let config = new OpenApi.Config({
          accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
          accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
        });
    Nota

    As expressões process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'] e process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'] recuperam os valores das respectivas variáveis de ambiente.

    Importante

    Para evitar riscos de segurança, não insira o par de AccessKey diretamente no código de produção.

O que fazer se a mensagem de erro "tsc: Fail to recognize the tsc command as the name of a cmdlet, a function, a script, or a executable program..." for retornada após executar um comando tsc?

PS C:\Users\issuser\Downloads\69351a7d-c9ef-417c-8986-a371cd208ece-TypeScript> tsc
tsc : The term 'tsc' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ tsc
+ ~~~
    + CategoryInfo          : ObjectNotFound: (tsc:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

Causas:

  1. Variável de ambiente PATH mal configurada: o caminho do arquivo tsc instalado globalmente não foi adicionado à variável de ambiente PATH.

  2. Política de execução do PowerShell: a política padrão pode estar definida como Restricted, o que impede a execução de scripts .ps1.

  3. Configuração incorreta do PATH: o diretório de instalação global do tsc, como D:\node.js\node_global, não consta na variável de ambiente PATH.

Soluções:

  1. Verifique se o TypeScript está instalado globalmente:

    npm list -g typescript

    Se a saída estiver vazia ou indicar que o TypeScript não está presente, a instalação não foi concluída corretamente.

  2. Execute o comando npm install -g typescript para instalar o TypeScript globalmente.

  3. Consulte o caminho de instalação global do npm com o seguinte comando:

    npm config get prefix   # Sample output: D:\node.js\node_global
  4. Use o caminho retornado no comando abaixo para confirmar a existência do arquivo tsc no diretório:

    ls D:\node.js\node_global | Select-String 'tsc'
  5. Consulte a política de execução do PowerShell executando:

    Get-ExecutionPolicy

    Caso a saída seja Restricted, o PowerShell bloqueia a execução de scripts.

  6. Altere a política de execução para RemoteSigned para permitir a execução de scripts.

    Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

    Execute novamente o comando Get-ExecutionPolicy para consultar a política. A saída esperada é RemoteSigned.

  7. Defina a variável de ambiente PATH da sessão atual no terminal:

    $env:Path += ";D:\node.js\node_global"
  8. Confirme se a variável de ambiente PATH contém o caminho global:

    $env:Path -split ';' | Select-String 'node_global'
  9. Execute o comando tsc para compilar o arquivo TypeScript .ts em um arquivo JavaScript .js, com base no arquivo de configuração tsconfig.json.

Nota

Substitua o caminho D:\node.js\node_global no exemplo pelo caminho real retornado pelo comando npm config get prefix.

O que fazer se a requisição de API expirar e a mensagem "Error: connect ETIMEDOUT" for retornada?

Causas comuns e soluções:

Vários fatores podem causar o tempo limite de uma chamada de API. A seção a seguir descreve as causas mais frequentes e suas respectivas soluções:

Causa 1: Problemas de conexão de rede

Causa: a requisição não alcança o servidor devido a falhas na conexão entre cliente e servidor ou instabilidade na rede.

Solução:

Use o comando ping ou curl para testar a conectividade entre o host local e o endpoint do serviço em nuvem. Por exemplo, execute ping dysmsapi.aliyuncs.com ou curl -v https://dysmsapi.aliyuncs.com para validar a conexão com o endpoint da API do Short Message Service (SMS).

  • Se o comando atingir o tempo limite ou não obtiver resposta, verifique as políticas de bloqueio no firewall local ou nos roteadores.

  • Havendo resposta, defina um período de tempo limite adequado para evitar falhas causadas por configurações impróprias. Para mais detalhes, consulte Configurar um período de tempo limite. Exemplo de código:

    JavaScript

    // Create a RuntimeOptions instance and specify runtime parameters. 
        const runtime = new RuntimeOptions({
            // Configure a timeout period for connection requests.
            connectTimeout: 10000,
        });

    TypeScript

    // Create a RuntimeOptions instance and specify runtime parameters. 
            const runtime = new $Util.RuntimeOptions({
                // Configure a timeout period for connection requests.
                connectTimeout: 10000,
            });
Causa 2: Tempo prolongado para processamento da requisição

Descrição: a duração do processamento da requisição de API excede o tempo limite de leitura especificado.

Solução: ajuste o tempo limite para acomodar o maior tempo de resposta da API. Consulte Configurar um período de tempo limite para mais informações. Configure, por exemplo, o parâmetro de tempo limite de leitura para estender esse período. Exemplo de código:

JavaScript

// Create a RuntimeOptions instance and specify runtime parameters. 
    const runtime = new RuntimeOptions({
        // Configure a timeout period for read requests.
        readTimeout: 10000,
    });

TypeScript

// Create a RuntimeOptions instance and specify runtime parameters. 
        const runtime = new $Util.RuntimeOptions({
            // Configure a timeout period for read requests.
            readTimeout: 10000,
        });

O que fazer se o erro "MissingRequiredParameter" for reportado ao chamar uma operação de API?

Neste exemplo, a operação SendSms do serviço Short Message Service (SMS) é chamada.

  • Acesse a página API Debugging no OpenAPI Explorer e selecione o produto e a API desejados.

  • Verifique se todos os parâmetros obrigatórios, como phoneNumbers e signName, foram especificados no objeto de requisição construído. Neste exemplo, usa-se o objeto SendSmsRequest.

  • Valide se todos os parâmetros necessários constam na referência da API.

  • Certifique-se de que os valores dos parâmetros obrigatórios são válidos. Verifique, por exemplo, se os números de celular seguem formatos válidos.

  • Antes de enviar uma requisição, o SDK valida automaticamente os parâmetros. Se algum parâmetro obrigatório estiver ausente, um erro como MissingRequiredParameter será reportado. Por exemplo, se o parâmetro phoneNumbers não for especificado, o erro "MissingPhoneNumbers: code: 400" será exibido. Nesse caso, especifique o parâmetro conforme indicado na mensagem de erro.

JavaScript

let sendSmsRequest = new Dysmsapi20170525.SendSmsRequest({
      phoneNumbers: '<YOUR_VALUE>',
      signName: '<YOUR_VALUE>',
      templateCode: '<YOUR_VALUE>',
    });

TypeScript

let sendSmsRequest = new $Dysmsapi20170525.SendSmsRequest({
      phoneNumbers: "<YOUR_VALUE>",
      signName: "<YOUR_VALUE>",
      templateCode: "<YOUR_VALUE>",
    });

O que fazer se a chamada de API falhar porque a operação não é suportada na região especificada e a mensagem "getaddrinfo ENOTFOUND" for retornada?

Garanta que o serviço chamado esteja disponível na região selecionada. Encontre o endpoint correto do serviço no OpenAPI Explorer. Use sempre o endpoint correto.

Na barra de navegação superior do OpenAPI Explorer, selecione Short Message Service. Na página inicial do produto, acesse a aba Service area list. O formato do endpoint é [product_code].[region_id].aliyuncs.com. A tabela lista cada ID de região (como cn-beijing, cn-hangzhou e cn-shanghai) e seu endpoint de serviço correspondente (como dysmsapi.aliyuncs.com).

Como tratar os erros reportados pelo comando npm install?

Certifique-se de que o Node.js e o npm estejam instalados corretamente. Para mais informações, consulte Instalar o Node.js no Windows.

Possíveis causas:

  • Conflitos nas configurações de fonte de imagem: as configurações globais do npm usam uma fonte de terceiros, como Taobao, mas nenhuma fonte oficial independente foi configurada para o escopo @alicloud.

  • Problemas de cache ou rede corromperam o cache local do npm, ou políticas de rede, como firewalls corporativos, bloqueiam requisições à fonte de imagem.

  • A versão do pacote não existe: por exemplo, a versão especificada 3.1.1 não está disponível na fonte de imagem.

Soluções:

  1. Limpe o cache do npm para corrigir corrupções e reinstale o SDK executando o comando abaixo:

    npm cache clean --force
  2. Use uma fonte oficial do npm.

    1. Configure uma fonte oficial para o escopo @alicloud. Execute o comando a seguir para definir uma fonte npm exclusiva para pacotes que começam com @alicloud.

      npm config set @alicloud:registry=https://registry.npmjs.org
    2. Verifique as configurações do npm e confirme se o escopo entrou em vigor:

      npm config get @alicloud:registry
      # Expected output: https://registry.npmjs.org
    3. Execute o comando npm install @alicloud/XXX para instalar o Alibaba Cloud SDK.

  3. Verifique a fonte de imagem da Alibaba Cloud. Execute o comando abaixo para alternar temporariamente para a fonte desejada (opcional):

    # In this example, the SMS SDK is installed.
    npm install @alicloud/dysmsapi20170525@3.1.1 --registry=https://registry.npmmirror.com
Nota

Após a instalação do SDK, o npm pode retornar uma mensagem como 9 vulnerabilities (6 moderate, 3 high). Causa e solução:

Causa: um pacote de dependência de terceiros do SDK, como axios ou lodash, está desatualizado e contém uma vulnerabilidade conhecida.

Solução: execute o comando npm audit fix para iniciar a correção automática de erros. O npm atualizará automaticamente para uma versão compatível com menos vulnerabilidades ou nenhuma.

Como resolver um conflito de versão de um pacote de dependência?

  • Visualize a árvore de dependências com o comando npm ls para garantir que não haja conflitos de versão.

  • Exclua o diretório node_modules e o arquivo package-lock.json e reinstale as dependências.

 rm -rf node_modules package-lock.json
 npm install

Lista de verificação de exceções básicas do Node.js

Mensagem de erro

Possível causa

Solução

TypeError

O tipo de uma variável ou expressão não corresponde ao esperado.

Valide se o tipo da variável ou expressão está correto. Use instruções condicionais ou métodos de verificação de tipo, como typeof, para tratar essa exceção.

SyntaxError

A sintaxe do código é inválida.

Confirme se a sintaxe do código está correta. Use um editor de código ou ferramenta de desenvolvimento para detectar e corrigir erros de sintaxe.

ReferenceError

A variável referenciada não existe.

Assegure-se de que a variável a ser referenciada foi definida e inicializada. Use instruções condicionais ou mecanismos de tratamento de exceções para gerenciar esse erro.

RangeError

O valor especificado está fora do intervalo válido. Por exemplo, o índice do array excede o limite ou a função recursiva foi chamada vezes demais.

Garanta que o valor especificado, como o índice do array ou a profundidade da recursão, esteja dentro do intervalo permitido. Trate essa exceção usando condicionais ou blocos de captura de erros.

URIError

A URI é inválida ou ocorreu um erro durante a codificação.

Verifique se você usa uma URI válida ou se a codificação segue as especificações relevantes. Use métodos específicos de codificação de URI ou verificações condicionais para resolver esse problema.

Suporte técnico

As soluções para os problemas anteriores ajudam a utilizar melhor os SDKs da Alibaba Cloud. Caso enfrente outras dificuldades, entre em contato com o suporte técnico da Alibaba Cloud pelo seguinte meio: