All Products
Search
Document Center

Alibaba Cloud SDK:Integrasikan SDK

Last Updated:Jun 03, 2026

Integrasikan Alibaba Cloud SDK ke dalam proyek Anda untuk menyederhanakan pemanggilan OpenAPI dan mengurangi biaya pemeliharaan. Integrasi SDK mencakup tiga langkah: impor SDK, atur kredensial akses, dan panggil API.

Persyaratan lingkungan

Python 3.7 atau versi yang lebih baru.

Impor SDK

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

  2. Pada halaman Installation, dan untuk All Languages, pilih Python. Lalu, pada tab Quick Start, Anda dapat menemukan metode instalasi SDK untuk Short Message Service (SMS).image

Atur kredensial akses

Pemanggilan Alibaba Cloud OpenAPI memerlukan kredensial akses, biasanya berupa AccessKey (AK) atau Security Token Service (STS) token. Simpan kredensial dalam variabel lingkungan untuk mencegah kebocoran. Penggunaan aman kredensial akses. Contoh berikut menggunakan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET:

Konfigurasi di Linux dan macOS

Konfigurasi variabel lingkungan menggunakan perintah export

Penting

Variabel lingkungan sementara yang diatur menggunakan perintah export hanya berlaku untuk sesi saat ini. Variabel tersebut akan dihapus ketika sesi berakhir. Untuk penyimpanan jangka panjang (LTR), tambahkan perintah export ke file konfigurasi startup sistem operasi Anda.

  • Konfigurasi ID AccessKey dan tekan Enter.

    # Ganti yourAccessKeyID dengan ID AccessKey Anda.
    export ALIBABA_CLOUD_ACCESS_KEY_ID=yourAccessKeyID
  • Konfigurasi rahasia AccessKey dan tekan Enter.

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

    Jalankan perintah echo $ALIBABA_CLOUD_ACCESS_KEY_ID. Jika perintah tersebut mengembalikan ID AccessKey yang benar, konfigurasi berhasil.

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.

    Variabel

    Contoh nilai

    AccessKey ID

    • Nama variabel: ALIBABA_CLOUD_ACCESS_KEY_ID

    • Nilai variabel: yourAccessKeyID

    AccessKey Secret

    • Nama variabel: ALIBABA_CLOUD_ACCESS_KEY_SECRET

    • Nilai variabel: 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.

Menggunakan 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 juga 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

Contoh berikut memanggil API dan SendMessageToGlobe dari Short Message Service (SMS). Referensi API: SendMessageToGlobe — , SendMessageToGlobe.

1. Inisialisasi klien permintaan

Semua permintaan API dikirim melalui klien. Inisialisasi klien sebelum memanggil API apa pun. Contoh ini menggunakan AccessKey. Metode inisialisasi lainnya dijelaskan dalam Kelola kredensial akses.

Penting
  • Objek klien seperti instans atau Dysmsapi20180501Client bersifat thread-safe dan dapat digunakan bersama di berbagai thread.

  • Hindari pembuatan objek klien secara berulang. Gunakan pola singleton untuk mempertahankan satu instans klien per set kredensial dan titik akhir selama siklus hidup aplikasi.

@staticmethod
def create_client() -> Dysmsapi20180501Client:
    config = open_api_models.Config(
           # Wajib, pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID telah diatur.,
           access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
           # Wajib, pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET telah diatur.,
           access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET']
    )
      # Lihat https://api.alibabacloud.com/product/Dysmsapi.
      config.endpoint = f'dysmsapi.aliyuncs.com'
      return Dysmsapi20180501Client(config)

2. Buat objek permintaan

Teruskan parameter melalui objek permintaan SDK, bernama <Nama operasi API>Request (misalnya, SendSmsRequest). Detail parameter: , SendMessageToGlobe.

Catatan

API tanpa parameter permintaan, seperti DescribeCdnSubList, tidak memerlukan objek permintaan.

# Buat objek permintaan dan atur parameter input yang diperlukan
send_message_to_globe_request = dysmsapi_20180501_models.SendMessageToGlobeRequest(
           # Ganti dengan nomor penerima yang sebenarnya.
           to='<YOUR_NUMBER>',
           # Ganti dengan konten SMS yang sebenarnya.
           message='<YOUR_MESSAGE>'
)

3. Kirim permintaan

Panggil API menggunakan <nama_api>_with_options, di mana <nama_api> adalah nama OpenAPI dalam format snake_case. Fungsi ini menerima objek permintaan dan objek opsi runtime untuk pengaturan timeout dan proxy. Konfigurasi Lanjutan.

Catatan

Untuk API tanpa parameter permintaan, seperti DescribeCdnSubList, cukup teruskan opsi runtime saja.

# Buat parameter runtime.
runtime = util_models.RuntimeOptions()
client = create_client()
# Kirim permintaan.
client.send_message_to_globe_with_options(send_message_to_globe_request, runtime)

4. Tangani pengecualian

SDK Python V2.0 mengklasifikasikan pengecualian menjadi dua jenis utama: TeaUnretryableException dan TeaException.

  • TeaUnretryableException: Dilemparkan setelah semua upaya ulang untuk masalah jaringan habis.

  • TeaException: Dilemparkan untuk kesalahan di sisi layanan.

Penanganan pengecualian.

Penting

Selalu tangani pengecualian dengan benar — sebarkan, catat log, atau pulihkan — untuk memastikan stabilitas sistem.

Klik untuk melihat contoh kode lengkap

Contoh pemanggilan API SendMessageToGlobe

import os
import sys
from typing import List
from alibabacloud_dysmsapi20180501.client import Client as Dysmsapi20180501Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_dysmsapi20180501 import models as dysmsapi_20180501_models
from alibabacloud_tea_util import models as util_models
from alibabacloud_tea_util.client import Client as UtilClient


class Sample:
    def __init__(self):
        pass

    @staticmethod
    def create_client() -> Dysmsapi20180501Client:
            config = open_api_models.Config(
            # Wajib, pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID telah diatur.,
            access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
            # Wajib, pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET telah diatur.,
            access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET']
        )
        # Lihat https://api.alibabacloud.com/product/Dysmsapi.
        config.endpoint = f'dysmsapi.aliyuncs.com'
        return Dysmsapi20180501Client(config)

    @staticmethod
    def main(
        args: List[str],
    ) -> None:
        client = Sample.create_client()
        # Buat objek permintaan dan atur parameter input yang diperlukan
        send_message_to_globe_request = dysmsapi_20180501_models.SendMessageToGlobeRequest(
           # Ganti dengan nomor penerima yang sebenarnya.
           to='<YOUR_NUMBER>',
           # Ganti dengan konten SMS yang sebenarnya.
           message='<YOUR_MESSAGE>'
        )
        # Buat parameter runtime.
        runtime = util_models.RuntimeOptions()
        try:
            # Kirim permintaan
            client.send_message_to_globe_with_options(send_message_to_globe_request, runtime)
        except Exception as error:
            # cetak pesan kesalahan
            print(error.message)
            # Klik tautan di bawah ini untuk diagnosis.
            print(error.data.get("Recommend"))
            UtilClient.assert_as_string(error.message)


if __name__ == '__main__':
    Sample.main(sys.argv[1:])

Skenario khusus: Konfigurasi API Advance untuk unggah file

Beberapa produk cloud (seperti Image Search dan Visual Intelligence API) tidak mendukung unggah file langsung melalui OpenAPI standar. Gunakan API Advance untuk meneruskan aliran file. File tersebut disimpan sementara di OSS (wilayah default: cn-shanghai), lalu dibaca oleh produk tersebut. Contoh berikut menggunakan API DetectBodyCount dari Alibaba Cloud Visual Intelligence API (Face and Body):

Catatan

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

  1. 1. Inisialisasi klien permintaan

    Atur baik region_id maupun endpoint produk. region_id menentukan wilayah OSS untuk penyimpanan file sementara. Jika region_id tidak sesuai dengan wilayah produk, timeout dapat terjadi.

    def create_client() -> facebody20191230Client:
        config = open_api_models.Config(
            # Wajib. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID telah diatur di lingkungan eksekusi kode Anda.
            access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
            # Wajib. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET telah diatur di lingkungan eksekusi kode Anda.
            access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET']
        )
        # Titik akhir dan regionId harus diatur ke wilayah yang sama.
        config.region_id = 'cn-shanghai'
        config.endpoint = 'facebody.cn-shanghai.aliyuncs.com'
        return facebody20191230Client(config)
  2. Buat objek permintaan

    Buat objek <NamaOpenAPI>AdvanceRequest dan teruskan aliran file sebagai ImageURLObject.

    # Buka file sebagai aliran biner.
    with open('<FILE_PATH>', "rb") as f:  # Ganti dengan path file Anda.
         # Atur parameter permintaan.
         detect_body_count_advance_request = facebody_20191230_models.DetectBodyCountAdvanceRequest(
                   image_urlobject = f,
         )
  3. Kirim permintaan

    Panggil <namaApi>Advance untuk mengirim permintaan, di mana <namaApi> adalah nama OpenAPI dalam format lower camelCase.

    # Konfigurasi runtime.
    runtime = util_models.RuntimeOptions()
    client = create_client()
    # Kirim permintaan.
    res = client.detect_body_count_advance(detect_body_count_advance_request, runtime)

Klik untuk melihat contoh kode lengkap

import os

from alibabacloud_facebody20191230 import models as facebody_20191230_models
from alibabacloud_facebody20191230.client import Client as facebody20191230Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_tea_util import models as util_models


class Sample:
    def __init__(self):
        pass

    @staticmethod
    def create_client() -> facebody20191230Client:
        config = open_api_models.Config(
            # Wajib. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID telah diatur di lingkungan eksekusi kode Anda.
            access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
            # Wajib. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET telah diatur di lingkungan eksekusi kode Anda.
            access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET']
        )
        config.region_id = 'cn-shanghai'
        return facebody20191230Client(config)

    @staticmethod
    def main() -> None:
        client = Sample.create_client()
        # Buka file sebagai aliran biner.
        with open('<FILE_PATH>', "rb") as f:  # Ganti <FILE_PATH> dengan path file Anda.
            # Atur parameter permintaan.
            detect_body_count_advance_request = facebody_20191230_models.DetectBodyCountAdvanceRequest(
                image_urlobject=f,
            )
            runtime = util_models.RuntimeOptions()
            try:
                # Kirim permintaan.
                res = client.detect_body_count_advance(detect_body_count_advance_request, runtime)
                print(res)
            except Exception as error:
                # Ini hanya untuk pencetakan dan demonstrasi. Tangani pengecualian dengan hati-hati dan jangan mengabaikannya dalam proyek Anda.
                print(error)


if __name__ == '__main__':
    Sample.main()

FAQ

  1. Pemanggilan OpenAPI menghasilkan kesalahan "You are not authorized to perform this operation".

    Penyebab dan solusi

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

    Solusi: Berikan izin OpenAPI yang diperlukan kepada pengguna RAM. Kelola izin pengguna RAM.

    Sebagai contoh, jika pemanggilan operasi atau SendMessageToGlobe menghasilkan kesalahan ini, buat kebijakan izin kustom seperti berikut dan sambungkan ke pengguna RAM.

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "dysms:SendMessageToGlobe",
          "Resource": "*"
        }
      ]
    }
  2. Pemanggilan OpenAPI menghasilkan kesalahan "SDK.EndpointResolvingError" terkait Titik Akhir.

    Penyebab dan solusi

    Penyebab: Titik akhir yang ditentukan tidak didukung oleh API ini.

    Solusi: Perbarui titik akhir ke nilai yang didukung dan coba lagi. Konfigurasi titik akhir.

  3. Pemanggilan OpenAPI menghasilkan kesalahan `AttributeError: 'AttributeError' object has no attribute 'message'` atau `KeyError: 'ALIBABA_CLOUD_ACCESS_KEY_ID'` terkait AccessKey.

    Penyebab dan solusi

    Penyebab: AccessKey Anda tidak diteruskan dengan benar.

    Solusi: Verifikasi bahwa AccessKey diteruskan dengan benar saat menginisialisasi klien. os.environ("XXX") membaca nilai XXX dari variabel lingkungan.

Solusi kesalahan SDK tambahan: FAQ.