All Products
Search
Document Center

Alibaba Cloud SDK:FAQ

Last Updated:Jun 28, 2025

Topik ini menjawab pertanyaan umum tentang integrasi Alibaba Cloud SDK for Go, membantu Anda menggunakannya secara efisien dalam pengembangan.

Prasyarat

  • Go 1.10.x atau versi lebih baru telah terinstal.

  • Pastikan API Alibaba Cloud dapat dijangkau melalui jaringan Anda.

Ikhtisar

Masalah dan solusi

Bagaimana cara menangani kesalahan AccessKey?

Masalah: Pesan kesalahan berikut muncul setelah menjalankan kode, menunjukkan bahwa pasangan AccessKey tidak dikonfigurasi dengan benar.

  • Alibaba Cloud SDK V2.0: InvalidCredentials: Harap atur kredensial dengan benar. Jika Anda mengaturnya melalui variabel lingkungan, pastikan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET diatur dengan benar.

  • Alibaba Cloud SDK V1.0: SDK.ServerError InvalidAccessKeyId.NotFound ID akses yang ditentukan tidak ditemukan.

Solusi:

  1. Jalankan perintah berikut untuk memeriksa apakah variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET telah dikonfigurasi.

    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%

    Jika pasangan AccessKey yang valid dikembalikan, variabel lingkungan telah dikonfigurasi dengan benar. Jika tidak ada pasangan AccessKey atau pasangan AccessKey yang tidak valid dikembalikan, konfigurasikan variabel lingkungan sesuai kebutuhan. Untuk informasi lebih lanjut, lihat Konfigurasi variabel lingkungan di Linux, macOS, dan Windows.

  2. Periksa kesalahan terkait pasangan AccessKey dalam kode.

    Contoh permintaan kesalahan:

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

    Contoh permintaan sukses:

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

    os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID") dan os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET") menentukan bahwa ID AccessKey dan rahasia AccessKey diperoleh dari variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET.

    Penting

    Untuk mencegah risiko keamanan, jangan tulis pasangan AccessKey dalam kode online.

Kode kesalahan apa yang dikembalikan jika Alibaba Cloud SDK tidak dapat terhubung ke layanan Alibaba Cloud?

Salah satu dari kode kesalahan berikut dapat dikembalikan:

  • InvalidAccessKeyId: Periksa apakah ID AccessKey Anda valid.

  • SignatureDoesNotMatch: Periksa apakah rahasia AccessKey Anda valid.

Periksa koneksi jaringan Anda dan pastikan bahwa permintaan tidak diblokir oleh firewall.

Apa yang harus saya lakukan jika permintaan API mengalami timeout dan kesalahan "*net.DNSError" atau "net.OpError" dilaporkan?

Banyak faktor dapat menyebabkan timeout permintaan API. Berikut adalah penyebab umum dan solusi yang sesuai:

Masalah koneksi jaringan

Penyebab: Permintaan tidak dapat mencapai server karena koneksi jaringan antara klien dan server gagal atau jaringan tidak stabil.

Solusi:

Jalankan perintah ping atau curl untuk menguji konektivitas antara host lokal dan titik akhir layanan cloud. Sebagai contoh, jalankan perintah ping dysmsapi.aliyuncs.com atau curl -v https://dysmsapi.aliyuncs.com untuk menguji konektivitas antara host lokal Anda dan titik akhir API Layanan Pesan Singkat (SMS).

  • Jika perintah mengalami timeout atau tidak menerima respons, periksa kebijakan pemblokiran pada firewall atau router lokal Anda.

  • Jika respons dikembalikan, kami sarankan Anda menentukan periode timeout yang tepat untuk mencegah kegagalan permintaan yang disebabkan oleh konfigurasi timeout yang tidak tepat. Untuk informasi lebih lanjut, lihat Konfigurasi periode timeout. Contoh kode:

            // Buat instance RuntimeOptions dan tentukan parameter runtime.
    	runtime := &util.RuntimeOptions{}
    	// Konfigurasikan periode timeout untuk permintaan koneksi. Unit: milidetik.
    	runtime.ConnectTimeout = tea.Int(10000) // Atur periode timeout untuk permintaan koneksi menjadi 10 detik.
Lama waktu pemrosesan permintaan API

Penyebab: Waktu untuk memproses permintaan API melebihi periode timeout baca yang ditentukan.

Solusi: Perpanjang periode timeout untuk respons API. Untuk informasi lebih lanjut, lihat Konfigurasi periode timeout. Sebagai contoh, Anda dapat mengonfigurasi parameter timeout baca untuk memperpanjang periode timeout baca. Contoh kode:

        // Buat instance RuntimeOptions dan tentukan parameter runtime.
	runtime := &util.RuntimeOptions{}
	// Konfigurasikan periode timeout untuk permintaan baca. Unit: milidetik.
	runtime.ReadTimeout = tea.Int(10000) // Atur periode timeout untuk permintaan baca menjadi 10 detik.

Apa yang harus saya lakukan jika kompilasi gagal atau pesan kesalahan "missing go.sum entry" dikembalikan karena konflik versi dependensi antara pustaka dependensi yang berbeda?

Pesan kesalahan "missing go.sum entry" dikembalikan karena dependensi yang akan digunakan tidak ada dalam file go.sum. File go.mod dalam proyek Go digunakan untuk mengelola dependensi proyek. Pastikan tidak ada konflik versi dependensi dalam file go.mod. Jalankan perintah berikut di terminal untuk memperbarui dependensi modul saat ini dan memperbarui file go.mod dan go.sum:

go mod tidy

Bagaimana cara menggunakan SDK untuk Go dalam proyek yang sudah ada?

  1. Buka VS Code. Di bilah navigasi atas, pilih File > Buka Folder. Buat dan pilih folder proyek atau pilih folder proyek yang sudah ada. Dalam contoh ini, folder bernama gosdkproject dibuat dan dipilih.

  2. Di bilah navigasi atas, pilih Terminal > Terminal Baru. Jendela TERMINAL muncul di bagian bawah konsol. Jalankan perintah go mod init gosdkprojects di jendela TERMINAL untuk menginisialisasi proyek Go. Setelah proyek Go diinisialisasi, file go.mod dihasilkan di direktori proyek saat ini. File go.mod adalah file modul dalam proyek Go dan digunakan untuk mengelola dependensi dan informasi versi proyek.

image

  1. Pergi ke SDK Center dan pilih layanan cloud yang ingin Anda gunakan. Pilih V2.0 sebagai versi SDK dan Go sebagai bahasa pemrograman. Salin perintah instalasi ke jendela TERMINAL dan tekan tombol Enter.

Apa yang harus saya lakukan jika kesalahan "MissingRequiredParameter" dilaporkan saat saya memanggil operasi API?

Dalam contoh ini, operasi SendSms dari layanan Short Message Service (SMS) dipanggil.

  • Pergi ke OpenAPI Portal. Cari operasi API yang ingin Anda panggil.

  • Periksa apakah parameter yang diperlukan seperti PhoneNumbers dan SignName telah ditentukan dalam objek permintaan yang dibuat. Dalam contoh ini, objek permintaan adalah SendSmsRequest.

  • Verifikasi bahwa semua parameter yang diperlukan telah ditentukan berdasarkan referensi API.

  • Pastikan bahwa nilai parameter yang diperlukan valid. Sebagai contoh, periksa apakah nomor ponsel ditentukan dalam format yang valid.

  • Sebelum SDK mengirimkan permintaan API, SDK secara otomatis memverifikasi parameter. Jika satu atau lebih parameter yang diperlukan tidak ditentukan, kesalahan seperti MissingRequiredParameter dilaporkan. Sebagai contoh, jika parameter phone_numbers tidak ditentukan, kesalahan "MissingPhoneNumbers: code: 400" dilaporkan. Dalam hal ini, tentukan parameter berdasarkan pesan kesalahan.

image

                 sendSmsRequest := &dysmsapi20170525.SendSmsRequest{
		 // Kode template SMS.
		 TemplateCode: tea.String("<YOUR_VALUE>"),
		 // Variabel template SMS. Contoh: {\"code\":\"1234\"}.
		 TemplateParam: tea.String("{\"code\":\"1234\"}"),
		 // Nomor ponsel ke mana Anda ingin mengirim pesan teks.
	         PhoneNumbers: tea.String("<YOUR_VALUE>"),
	         // Nama tanda tangan SMS.
	         SignName: tea.String("<YOUR_VALUE>"),
	}

Apa yang harus saya lakukan jika saya gagal memanggil operasi API karena operasi tersebut tidak didukung di wilayah yang ditentukan dan pesan "404 Not Found" dikembalikan?

Pastikan bahwa wilayah yang Anda pilih mendukung layanan yang ingin Anda akses. Temukan titik akhir layanan di halaman produk di OpenAPI Portal. Gambar berikut menunjukkan cara menemukan titik akhir layanan SMS.

image

Pertanyaan 8: Apa yang harus saya lakukan jika pesan "go: go.mod file not found in current directory or any parent directory." dikembalikan saat saya menjalankan go get perintah?

Pesan tersebut dikembalikan karena file go.mod tidak dapat ditemukan di direktori saat ini atau salah satu direktori induknya saat Anda menjalankan perintah go get. File go.mod digunakan untuk mengelola dependensi dan versi proyek. Anda dapat menjalankan perintah berikut untuk menginisialisasi file go.mod.

# Inisialisasi file go.mod baru di direktori saat ini dan tentukan nama modul. Dalam kebanyakan kasus, nama modul adalah jalur URL ke repositori. Dalam contoh ini, nama domain adalah example.com dan nama proyek adalah goproject.
go mod init example.com/goproject

Daftar periksa pengecualian dasar Go

Pesan kesalahan

Penyebab

Solusi

Nil pointer dereference

Pointer null di-dereference, atau metode dipanggil pada pointer null.

Sebelum menggunakan pointer, pastikan bahwa pointer tersebut bukan nil. Anda dapat menggunakan pernyataan kondisional atau mekanisme penanganan kesalahan untuk memeriksa apakah pointer tersebut nil.

Alamat memori tidak valid atau nil pointer dereference

Alamat memori tidak valid diakses, atau pointer null di-dereference.

Sebelum mengakses alamat memori, pastikan bahwa alamat memori valid dan memori telah dialokasikan ke alamat tersebut. Anda dapat menggunakan pernyataan kondisional atau mekanisme penanganan kesalahan untuk memeriksa validitas alamat memori.

Timeout dan pembatalan

Permintaan jaringan atau operasi mengalami timeout atau dibatalkan.

Sebelum mengirim permintaan jaringan atau melakukan operasi yang memakan waktu, konfigurasikan periode timeout yang tepat dan batalkan permintaan atau operasi sesuai kebutuhan bisnis Anda. Anda dapat menggunakan paket context untuk mengelola timeout dan operasi pembatalan.

Dukungan teknis

FAQ dan solusi di atas bertujuan membantu Anda menggunakan Alibaba Cloud SDK dengan lebih baik. Jika Anda mengalami masalah lain, Anda dapat menghubungi dukungan teknis Alibaba Cloud melalui metode berikut:

  • Ajukan tiket.

  • Jika Anda memiliki pertanyaan atau umpan balik, hubungi dukungan teknis Alibaba Cloud di grup DingTalk (ID: 60965016010).