All Products
Search
Document Center

Alibaba Cloud SDK:FAQ

Last Updated:Jun 18, 2026

Temukan jawaban atas pertanyaan umum mengenai integrasi dan penggunaan Alibaba Cloud SDK untuk Go.

Prasyarat

  • Go 1.10.x atau versi yang lebih baru telah diinstal.

  • Pastikan API Alibaba Cloud dapat diakses melalui jaringan Anda.

Ikhtisar

Permasalahan dan solusi

Bagaimana cara menangani error AccessKey?

Pesan error berikut dikembalikan ketika 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 telah diatur dengan benar.

  • Alibaba Cloud SDK V1.0: SDK.ServerError InvalidAccessKeyId.NotFound Specified access key is not found.

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, berarti 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 selengkapnya, lihat Konfigurasi variabel lingkungan di Linux, macOS, dan Windows.

  2. Periksa adanya error terkait pasangan AccessKey dalam kode.

    Contoh permintaan error:

      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") mengambil ID AccessKey dan Rahasia AccessKey dari variabel lingkungan yang sesuai.

    Penting

    Untuk mencegah risiko keamanan, jangan menyematkan pasangan AccessKey secara langsung dalam kode Anda.

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

Salah satu 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 permintaan tidak diblokir oleh firewall.

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

Timeout pada permintaan API dapat disebabkan oleh berbagai hal. Berikut adalah penyebab umum dan solusinya:

Masalah koneksi jaringan

Penyebab: Koneksi jaringan antara client dan server tidak stabil atau gagal, sehingga permintaan tidak mencapai server.

Solusi:

Jalankan perintah ping atau curl untuk menguji konektivitas antara host lokal dan titik akhir layanan cloud. Misalnya, jalankan perintah ping dysmsapi.aliyuncs.com atau curl -v https://dysmsapi.aliyuncs.com untuk menguji konektivitas antara host lokal Anda dan titik akhir API Short Message Service (SMS).

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

  • Jika respons diterima, kami menyarankan agar Anda menentukan periode timeout yang sesuai untuk mencegah kegagalan permintaan akibat konfigurasi timeout yang tidak tepat. Untuk informasi selengkapnya, lihat Konfigurasi periode timeout. Contoh kode:

            // Buat instance RuntimeOptions dan tentukan parameter runtime. 
    	runtime := &util.RuntimeOptions{}
    	// Konfigurasi periode timeout untuk permintaan koneksi. Satuan: milidetik.
    	runtime.ConnectTimeout = tea.Int(10000) // Atur periode timeout untuk permintaan koneksi menjadi 10 detik.
Waktu pemrosesan permintaan API yang lama

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

Solusi: Tingkatkan periode timeout baca. Untuk informasi selengkapnya, lihat Konfigurasi periode timeout. Contoh kode:

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

Apa yang harus saya lakukan jika kompilasi gagal atau muncul pesan error "missing go.sum entry" akibat konflik versi dependensi antar library?

Error ini terjadi karena dependensi yang diperlukan tidak ada dalam file go.sum. File go.mod mengelola dependensi proyek. Pastikan tidak ada konflik versi dependensi dalam go.mod, lalu jalankan perintah berikut untuk memperbarui dependensi dan menyinkronkan 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 > Open 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 > New Terminal. 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 akan dibuat di direktori proyek saat ini. File go.mod adalah file modul dalam proyek Go yang digunakan untuk mengelola dependensi dan informasi versi proyek.

  1. Buka SDK Center dan pilih produk cloud yang ingin Anda gunakan SDK-nya. Atur SDK version ke V2.0 dan atur bahasa ke Go. Salin perintah instalasi, tempelkan ke terminal, lalu tekan Enter untuk menjalankannya.

Apa yang harus saya lakukan jika muncul error "MissingRequiredParameter" saat memanggil operasi API?

Contoh berikut menggunakan operasi SendSms dari Short Message Service (SMS).

  • Buka halaman API Debugging di OpenAPI Developer Portal dan pilih produk cloud serta operasi API yang sesuai.

  • 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 nilai parameter yang diperlukan valid. Misalnya, periksa apakah nomor ponsel menggunakan format yang valid.

  • SDK secara otomatis memvalidasi parameter sebelum mengirim permintaan API. Jika parameter yang diperlukan tidak ada, error seperti MissingRequiredParameter akan dilaporkan. Misalnya, jika parameter phone_numbers tidak ditentukan, error "MissingPhoneNumbers: code: 400" akan muncul. Tentukan parameter yang hilang berdasarkan pesan error tersebut.

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

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

Pastikan wilayah yang dipilih mendukung layanan yang Anda panggil. Misalnya, untuk Short Message Service (SMS), Anda dapat menemukan titik akhirnya di halaman produknya di OpenAPI Developer Portal.

Di halaman produk, pada bagian Daftar Wilayah Layanan, periksa kolom ID wilayah dan titik akhir untuk mengonfirmasi titik akhir wilayah target Anda. Misalnya, untuk Short Message Service (SMS) (versi API 2017-05-25), titik akhir untuk sebagian besar wilayah adalah dysmsapi.aliyuncs.com.

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

Pesan ini menunjukkan bahwa file go.mod tidak ditemukan di direktori saat ini maupun direktori induk mana pun. File go.mod mengelola dependensi dan versi proyek. Jalankan perintah berikut untuk menginisialisasi file go.mod:

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

Daftar periksa exception dasar Go

Pesan error

Penyebab

Solusi

Nil pointer dereference

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

Sebelum menggunakan pointer, pastikan pointer tersebut tidak nil. Anda dapat menggunakan pernyataan kondisional atau mekanisme penanganan error untuk memeriksa apakah pointer tersebut nil.

Invalid memory address or nil pointer dereference

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

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

Timeouts and cancelations

Permintaan jaringan atau operasi mengalami timeout atau dibatalkan.

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

Dukungan teknis

Jika FAQ di atas tidak menyelesaikan masalah Anda, hubungi dukungan teknis Alibaba Cloud: