All Products
Search
Document Center

Alibaba Cloud SDK:Integrasikan SDK

Last Updated:Aug 30, 2026

Saat memanggil operasi OpenAPI, kami menyarankan Anda mengintegrasikan SDK ke dalam proyek Anda. Penggunaan SDK menyederhanakan proses pengembangan, memungkinkan integrasi fitur yang cepat, dan secara efektif mengurangi biaya pemeliharaan. Integrasi SDK Alibaba Cloud mencakup tiga langkah utama: impor SDK Alibaba Cloud, atur kredensial akses, dan gunakan SDK. Topik ini menjelaskan proses integrasi tersebut secara detail.

Persyaratan lingkungan

Node.js >= 8.x

Impor SDK

  1. Login ke SDK Center dan pilih produk untuk API yang ingin Anda panggil, seperti Short Message Service (SMS).

  2. Pada halaman Installation , dan atur All Languages ke TypeScript. Kemudian, pada tab Quick Start, Anda dapat menemukan instruksi instalasi SDK untuk Short Message Service (SMS).image

Atur kredensial akses

Pemanggilan operasi OpenAPI memerlukan kredensial akses seperti AccessKey atau Security Token Service (STS) token. Simpan kredensial dalam variabel lingkungan untuk mencegah kebocoran. Untuk praktik terbaik, lihat Gunakan kredensial akses secara aman. Contoh berikut menggunakan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET.

Metode konfigurasi di Linux dan macOS

Contoh berikut menggunakan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET sebagai nama variabel. Ganti dengan nama Anda sendiri jika diperlukan, misalnya OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET.

Jalankan perintah export berikut untuk mengatur variabel lingkungan:

Penting

Variabel yang diatur dengan export bersifat sementara dan hanya berlaku untuk sesi saat ini. Untuk persistensi, tambahkan perintah export ke file startup shell Anda (seperti ~/.bashrc atau ~/.zshrc).

  • Atur ID AccessKey:

    # Ganti yourAccessKeyID dengan ID AccessKey Anda.
    export ALIBABA_CLOUD_ACCESS_KEY_ID=yourAccessKeyID
  • Atur rahasia AccessKey:

    # Ganti yourAccessKeySecret dengan rahasia AccessKey Anda.
    export ALIBABA_CLOUD_ACCESS_KEY_SECRET=yourAccessKeySecret
  • Verifikasi konfigurasi.

    Jalankan echo $ALIBABA_CLOUD_ACCESS_KEY_ID. Jika nilai yang benar dikembalikan, konfigurasi berhasil.

Metode konfigurasi di Windows

Gunakan antarmuka pengguna grafis (GUI)

  • Prosedur

    Langkah-langkah berikut menjelaskan cara mengatur variabel lingkungan menggunakan GUI di Windows 10.

    Di desktop Anda, klik kanan This PC dan pilih Properties > Advanced system settings > Environment Variables > New di bawah System variables atau User variables. Lalu, lengkapi konfigurasinya.

    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

  • Uji konfigurasi

    Klik Start (atau gunakan pintasan keyboard Win+R), klik Run, masukkan `cmd`, lalu klik OK (atau tekan Enter) untuk membuka command prompt. Jalankan perintah echo %ALIBABA_CLOUD_ACCESS_KEY_ID% dan echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET%. Jika perintah tersebut mengembalikan AccessKey yang benar, konfigurasi berhasil.

Gunakan command prompt (CMD)

  • Prosedur

    Buka command prompt sebagai administrator dan jalankan perintah berikut untuk menambahkan variabel lingkungan baru ke sistem.

    setx ALIBABA_CLOUD_ACCESS_KEY_ID yourAccessKeyID /M
    setx ALIBABA_CLOUD_ACCESS_KEY_SECRET yourAccessKeySecret /M

    Parameter /M menunjukkan variabel lingkungan sistem. Anda dapat menghilangkan parameter ini saat mengatur variabel lingkungan pengguna.

  • Uji konfigurasi

    Klik Start (atau gunakan pintasan keyboard Win+R), klik Run, masukkan `cmd`, lalu klik OK (atau tekan Enter) untuk membuka command prompt. Jalankan perintah echo %ALIBABA_CLOUD_ACCESS_KEY_ID% dan echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET%. Jika perintah tersebut mengembalikan AccessKey yang benar, konfigurasi berhasil.

Gunakan Windows PowerShell

Di PowerShell, Anda dapat mengatur variabel lingkungan baru yang berlaku untuk semua sesi baru:

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

Untuk mengatur variabel lingkungan bagi semua pengguna, Anda harus memiliki izin administratif:

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

Anda dapat mengatur variabel lingkungan sementara yang hanya berlaku untuk sesi saat ini:

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

Di PowerShell, jalankan perintah Get-ChildItem env:ALIBABA_CLOUD_ACCESS_KEY_ID dan Get-ChildItem env:ALIBABA_CLOUD_ACCESS_KEY_SECRET. Jika perintah tersebut mengembalikan AccessKey yang benar, konfigurasi berhasil.

Gunakan SDK

Topik ini memberikan contoh cara memanggil operasi API atau SendMessageToGlobe dari Short Message Service (SMS). Untuk referensi API operasi atau SendMessageToGlobe, lihat atau SendMessageToGlobe.

1. Inisialisasi klien permintaan

Semua pemanggilan OpenAPI dilakukan melalui klien permintaan. Contoh ini menginisialisasi klien dengan pasangan AccessKey. Untuk metode inisialisasi lainnya, lihat Kelola kredensial akses.

Penting
  • Objek klien, seperti instans Dysmsapi20180501 dan , bersifat thread-safe dan dapat digunakan di lingkungan multi-threaded tanpa perlu membuat instans terpisah untuk setiap thread.

  • Hindari pembuatan objek klien berulang dengan `new`. Gunakan pola singleton sehingga hanya ada satu instans klien per kredensial dan titik akhir selama siklus hidup aplikasi.

Contoh 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({
      // Wajib. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID telah diatur.
      accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
      // Wajib. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET telah diatur.
      accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
    });
    // Untuk informasi lebih lanjut tentang endpoint, lihat https://api.alibabacloud.com/product/Dysmsapi.
    config.endpoint = `dysmsapi.aliyuncs.com`;
    return new Dysmsapi20180501(config);
  }
}

Contoh 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({
      // Wajib. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID telah diatur.
      accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
      // Wajib. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET telah diatur.
      accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
    });
    // Untuk informasi lebih lanjut tentang endpoint, lihat https://api.alibabacloud.com/product/Dysmsapi.
    config.endpoint = `dysmsapi.aliyuncs.com`;
    return new Dysmsapi20180501.default(config);
  }
}

2. Buat objek permintaan

Teruskan parameter melalui objek permintaan SDK, bernama <Nama OpenAPI>Request (misalnya, SendSmsRequest). Untuk detail parameter, lihat referensi API: SendMessageToGlobe.

Catatan

Jika API tidak memiliki parameter permintaan, lewati langkah ini. Misalnya, DescribeCdnSubList tidak memerlukan objek permintaan.

Contoh TypeScript

 // Buat objek permintaan dan atur parameter input yang diperlukan
 let sendMessageToGlobeRequest = new $Dysmsapi20180501.SendMessageToGlobeRequest({
      // Harap ganti dengan nomor penerima sebenarnya.
      to: "<YOUR_VALUE>",
      // Harap ganti dengan konten SMS sebenarnya.
      message: "<YOUR_VALUE>",
    });

Contoh Node.js

// Buat objek permintaan dan atur parameter input yang diperlukan
let sendMessageToGlobeRequest = new Dysmsapi20180501.SendMessageToGlobeRequest({
    // Harap ganti dengan nomor penerima sebenarnya.
    to: '<YOUR_VALUE>',
    // Harap ganti dengan konten SMS sebenarnya.
    message: '<YOUR_VALUE>',
});

3. Kirim permintaan

Panggil fungsi <operationName>WithOptions dari klien, di mana <operationName> adalah nama API dalam format camel case. Fungsi ini menerima objek permintaan dan parameter runtime (timeout, proxy, dll.). Lihat Konfigurasi lanjutan.

Catatan

Jika API tidak memiliki parameter permintaan, cukup berikan opsi runtime. Misalnya, DescribeCdnSubList hanya memerlukan parameter runtime.

Contoh TypeScript

// Buat parameter runtime.
let runtime = new $Util.RuntimeOptions({ });
let client = Client.createClient();
// Kirim permintaan.
await client.sendMessageToGlobeWithOptions(sendMessageToGlobeRequest, runtime);

Contoh Node.js

// Buat parameter runtime.
let runtime = new Util.RuntimeOptions({ });
let client = Client.createClient();
// Kirim permintaan.
await client.sendMessageToGlobeWithOptions(sendMessageToGlobeRequest, runtime);

4. Tangani exception

SDK Node.js V2.0 melemparkan dua jenis exception:

  • UnretryableError: Dilemparkan setelah maksimum percobaan ulang habis, biasanya karena masalah jaringan. Ambil permintaan terakhir melalui err.data.lastRequest.

  • ResponseError: Menunjukkan error di sisi server yang dikembalikan oleh API.

Lihat Penanganan exception.

Penting

Selalu tangani exception — propagasikan, catat log, atau pulihkan. Jangan pernah mengabaikannya secara diam-diam.

Klik untuk melihat contoh kode lengkap

Contoh pemanggilan API SendMessageToGlobe

Contoh 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({
      // Wajib. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID telah diatur.
      accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
      // Wajib. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET telah diatur.
      accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
    });
    // Untuk informasi lebih lanjut tentang endpoint, lihat https://api.alibabacloud.com/product/Dysmsapi.
    config.endpoint = `dysmsapi.aliyuncs.com`;
    return new Dysmsapi20180501(config);
  }

  static async main(): Promise<void> {
    let client = Client.createClient();
    // Buat objek permintaan dan atur parameter input.
    let sendMessageToGlobeRequest = new $Dysmsapi20180501.SendMessageToGlobeRequest({
      to: "<YOUR_VALUE>",
      from: "<YOUR_VALUE>",
      message: "<YOUR_VALUE>",
    });
    let runtime = new $Util.RuntimeOptions({ });
    try {
      // Kirim permintaan.
      await client.sendMessageToGlobeWithOptions(sendMessageToGlobeRequest, runtime);
    } catch (error) {
      // Ini hanya untuk tujuan demonstrasi. Tangani exception dengan hati-hati. Jangan abaikan exception dalam proyek Anda.
      // Pesan error
      console.log(error.message);
      // Alamat diagnosis
      console.log(error.data["Recommend"]);
    }    
  }
}

Client.main();

Contoh 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({
      // Wajib. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID telah diatur.
      accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
      // Wajib. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET telah diatur.
      accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
    });
    // Untuk informasi lebih lanjut tentang endpoint, lihat https://api.alibabacloud.com/product/Dysmsapi.
    config.endpoint = `dysmsapi.aliyuncs.com`;
    return new Dysmsapi20180501.default(config);
  }

  static async main() {
    // Buat objek permintaan dan atur parameter input.
    let client = Client.createClient();
    let sendMessageToGlobeRequest = new Dysmsapi20180501.SendMessageToGlobeRequest({
      to: '<YOUR_VALUE>',
      from: '<YOUR_VALUE>',
      message: '<YOUR_VALUE>',
    });
    let runtime = new Util.RuntimeOptions({ });
    try {
      // Kirim permintaan.
      await client.sendMessageToGlobeWithOptions(sendMessageToGlobeRequest, runtime);
    } catch (error) {
      // Ini hanya untuk tujuan demonstrasi. Tangani exception dengan hati-hati. Jangan abaikan exception dalam proyek Anda.
      // Pesan error
      console.log(error.message);
      // Alamat diagnosis
      console.log(error.data["Recommend"]);
      Util.default.assertAsString(error.message);
    }    
  }
}

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

Unggah file dengan operasi Advance

Beberapa API (seperti image search dan Visual Intelligence) tidak menerima path file lokal secara langsung. Gunakan operasi Advance untuk mengunggah file melalui aliran. SDK menyimpan file tersebut sementara di bucket OSS di wilayah cn-shanghai, dan layanan membacanya dari sana. Contoh ini menggunakan operasi DetectBodyCount dari Visual Intelligence API.

Penting

File sementara yang disimpan di Alibaba Cloud OSS akan dihapus secara berkala.

  1. Inisialisasi klien permintaan

    Atur baik regionId maupun endpoint ke wilayah yang sama. regionId menentukan tempat penyimpanan file OSS sementara. Jika Anda menghilangkan regionId, ketidaksesuaian wilayah antara produk dan bucket OSS akan menyebabkan timeout.

    Contoh TypeScript

    function createClient(): facebody20191230 {
        let config = new $OpenApi.Config({
            // Wajib. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID telah diatur.
            accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
            // Wajib. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET telah diatur.
            accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
        });
        // Endpoint dan regionId harus untuk wilayah yang sama.
        config.regionId = 'cn-shanghai';
        config.endpoint = 'facebody.cn-shanghai.aliyuncs.com';
        return new facebody20191230(config);
    }

    Contoh Node.js

    function createClient() {
      let config = new OpenApi.Config({
        // Wajib. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID telah diatur.
        accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
        // Wajib. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET telah diatur.
        accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
      });
      // Endpoint dan regionId harus untuk wilayah yang sama.
      config.regionId = 'cn-shanghai';
      config.endpoint = 'facebody.cn-shanghai.aliyuncs.com';
      return new facebody20191230.default(config);
    }
  2. Buat objek permintaan

    Buat objek <NamaOpenAPI>AdvanceRequest untuk meneruskan aliran file. Nama parameter untuk aliran file adalah ImageURLObject.

    Contoh TypeScript

        // Baca file sebagai aliran file.
        const filePath = '<FILE_PATH>';  // Ganti ini dengan path file sebenarnya.
        // Periksa apakah file ada.
        if (!fs.existsSync(filePath)) {
            console.error('File does not exist:', filePath);
            return;
        }
        // Buat aliran dan dengarkan error aliran.
        const fileStream = fs.createReadStream(filePath).on('error', (err) => {
            console.error('Stream error:', err);
            process.exit(1);
        });
    
        let detectBodyCountAdvanceRequest = new $facebody20191230.DetectBodyCountAdvanceRequest({
          imageURLObject: fileStream,
        });

    Contoh Node.js

        // Baca file sebagai aliran file.
        const filePath = '<FILE_PATH>';  // Ganti ini dengan path file sebenarnya.
        // Periksa apakah file ada.
        if (!fs.existsSync(filePath)) {
            console.error('File does not exist:', filePath);
            return;
        }
        // Buat aliran dan dengarkan error aliran.
        const fileStream = fs.createReadStream(filePath).on('error', (err) => {
            console.error('Stream error:', err);
            process.exit(1);
        });
    
        let detectBodyCountAdvanceRequest = new facebody20191230.DetectBodyCountAdvanceRequest({
            imageURLObject: fileStream,
        });
  3. Kirim permintaan

    Panggil fungsi <operationName>Advance untuk mengirim permintaan.

    Contoh TypeScript

    // Konfigurasikan parameter runtime.
    let runtime = new $Util.RuntimeOptions({ });
    let client = Client.createClient();
    // Kirim permintaan.
    await client.detectBodyCountAdvance(detectBodyCountAdvanceRequest, runtime);

    Contoh Node.js

     // Konfigurasikan parameter runtime.
     let runtime = new Util.RuntimeOptions({ });
     let client = Client.createClient();
     // Kirim permintaan.
     await client.detectBodyCountAdvance(detectBodyCountAdvanceRequest, runtime);  

Klik untuk melihat contoh kode lengkap

Contoh 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({
            // Wajib. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID telah diatur.
            accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
            // Wajib. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET telah diatur.
            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();

        // Baca file sebagai aliran file.
        const filePath = '<FILE_PATH>';  // Ganti ini dengan path file sebenarnya.
        // Periksa apakah file ada.
        if (!fs.existsSync(filePath)) {
            console.error('File does not exist:', filePath);
            return;
        }
        // Buat aliran dan dengarkan error aliran.
        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 {
            // Kirim permintaan.
            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();

Contoh 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({
      // Wajib. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID telah diatur.
      accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
      // Wajib. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET telah diatur.
      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();
    // Baca file sebagai aliran file.
    const filePath = '<FILE_PATH>';  // Ganti ini dengan path file sebenarnya.
    // Periksa apakah file ada.
    if (!fs.existsSync(filePath)) {
      console.error('File does not exist:', filePath);
      return;
    }
    // Buat aliran dan dengarkan error aliran.
    const fileStream = fs.createReadStream(filePath).on('error', (err) => {
      console.error('Stream error:', err);
      process.exit(1);
    });
    // Konfigurasikan parameter permintaan.
    let detectBodyCountAdvanceRequest = new facebody20191230.DetectBodyCountAdvanceRequest({
      imageURLObject: fileStream,
    });
    let runtime = new Util.RuntimeOptions({});
    try {
      // Kirim permintaan.
      const res = await client.detectBodyCountAdvance(detectBodyCountAdvanceRequest, runtime);
      console.log(res);
    } catch (error) {
      // Ini hanya untuk tujuan demonstrasi. Tangani exception dengan hati-hati. Jangan abaikan exception dalam proyek Anda.
      console.log(error);
    }
  }
}

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

FAQ

  1. Error "You are not authorized to perform this operation" saat memanggil API

    Penyebab dan solusi

    Penyebab: Pengguna RAM yang terkait dengan AccessKey Anda tidak memiliki izin yang diperlukan untuk memanggil API.

    Solusi: Berikan izin API yang diperlukan kepada pengguna RAM. Lihat Kelola izin pengguna RAM.

    Misalnya, jika Anda menerima error ini saat memanggil atau SendMessageToGlobe, Anda dapat membuat kebijakan izin kustom berikut dan menyambungkannya ke pengguna RAM.

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "dysms:SendMessageToGlobe",
          "Resource": "*"
        }
      ]
    }
  2. Error "triggerUncaughtException Error: getaddrinfo ENOTFOUND" (masalah endpoint)

    Penyebab dan solusi

    Penyebab: Endpoint yang ditentukan tidak didukung oleh operasi OpenAPI yang Anda panggil.

    Solusi: Perbaiki endpoint menggunakan Konfigurasi endpoint dan coba lagi.

  3. Error "Cannot read properties of undefined (reading 'getCredential')" atau "InvalidAccessKeyId.NotFound: code: 404"

    Penyebab dan solusi

    Penyebab: AccessKey tidak diteruskan dengan benar.

    Solusi: Verifikasi bahwa AccessKey diteruskan dengan benar selama inisialisasi klien. process.env("XXX") membaca nilai XXX dari variabel lingkungan.

Untuk error umum lainnya, lihat FAQ.