Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Seperti yang dijelaskan dalam artikel Apa itu Azure SDK for Go?, Azure SDK for Go memiliki sekumpulan pustaka manajemen dan klien. Pustaka manajemen berbagi fitur seperti dukungan Azure Identity, alur HTTP, dan penanganan kesalahan. Untuk daftar lengkap pustaka manajemen, lihat Modul Azure SDK for Go.
Dalam artikel ini, Anda mempelajari langkah-langkah dasar untuk menggunakan pustaka manajemen untuk berinteraksi dengan sumber daya Azure.
Menginstal paket Go
Di sebagian besar proyek, Anda menginstal paket Go untuk penerapan versi dan manajemen dependensi.
Untuk menginstal paket Go, jalankan go get perintah .
Misalnya, untuk menginstal armcompute paket, jalankan perintah berikut:
go get github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute
Di sebagian besar aplikasi Go, Anda menginstal paket berikut untuk autentikasi:
- github.com/Azure/azure-sdk-for-go/sdk/azcore/to
- github.com/Azure/azure-sdk-for-go/sdk/azidentity
Mengimpor paket ke dalam kode Go Anda
Setelah diunduh, paket diimpor ke aplikasi Anda melalui import pernyataan :
import (
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute"
)
Mengautentikasi ke Azure
Untuk menjalankan kode terhadap langganan Azure, Anda perlu mengautentikasi ke Azure. Paket azidentitas mendukung beberapa opsi untuk mengautentikasi ke Azure. Opsi ini mencakup klien/rahasia, sertifikat, dan identitas terkelola.
Opsi autentikasi default adalah DefaultAzureCredential, yang menggunakan variabel lingkungan yang ditetapkan sebelumnya dalam artikel ini. Dalam kode Go, Anda membuat azidentity objek sebagai berikut:
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
// handle error
}
Membuat klien Manajemen Sumber Daya
Setelah Anda mendapatkan kredensial dari Azure Identity, buat klien untuk menyambungkan ke layanan Azure target.
Misalnya, Anda ingin menyambungkan ke layanan Azure Compute . Paket Komputasi terdiri dari satu atau beberapa klien. Klien mengelompokkan sekumpulan API terkait, menyediakan akses ke fungsionalitasnya dalam langganan yang ditentukan. Anda membuat satu atau beberapa klien untuk mengakses API yang Anda butuhkan.
Kode berikut menggunakan armcompute. Jenis NewVirtualMachinesClient untuk membuat klien untuk mengelola komputer virtual:
client, err := armcompute.NewVirtualMachinesClient("<subscription ID>", cred, nil)
if err != nil {
// handle error
}
Pola yang sama digunakan untuk terhubung dengan layanan Azure lainnya. Misalnya, instal paket armnetwork dan buat klien jaringan virtual untuk mengelola sumber daya jaringan virtual (VNET).
client, err := armnetwork.NewVirtualNetworksClient("<subscription ID>", cred, nil)
if err != nil {
// handle error
}
Sampel kode:
package main
import (
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute"
)
func main() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
// handle error
}
client, err := armcompute.NewVirtualMachinesClient("<subscription ID>", cred, nil)
if err != nil {
// handle error
}
}
Menggunakan dokumentasi referensi Azure SDK for Go
Setelah Anda membuat instans klien, gunakan untuk melakukan panggilan API ke sumber daya Azure Anda. Untuk skenario manajemen sumber daya, sebagian besar kasus penggunaan adalah operasi CRUD (buat, baca, perbarui, hapus).
Untuk menemukan operasi untuk jenis tertentu, ikuti langkah-langkah berikut:
- Buka dokumentasi referensi Azure SDK for Go.
- Cari paket. (Menekan <Ctrl+F> secara otomatis memperluas semua simpul di halaman untuk pencarian.)
- Pilih paket.
- Cari jenis di halaman paket.
- Baca deskripsi jenis dan informasi penggunaan untuk kode Go Anda.
Anda juga dapat membangun URL secara manual dengan menambahkan nama paket ke github.com/Azure/azure-sdk-for-go/sdk/.
Misalnya, jika Anda menginginkan compute/armcompute dokumentasi referensi, URLnya adalah github.com/Azure/azure-sdk-for-go/sdk/compute/armcompute.
Contoh ini memperlihatkan cara menemukan dokumentasi referensi untuk operasi grup sumber daya Azure:
- Buka dokumentasi referensi Azure SDK for Go utama di pkg.go.dev.
- Pilih <Ctrl+F> dan masukkan
resourcemanager/resources/armresources. Saat Anda mengetik istilah pencarian, Anda akan melihat kecocokan dekat dengan paket sumber daya/armresources . - Pilih paket yang sesuai untuk aplikasi Anda.
- Baca bagian "Memulai" atau cari operasi tertentu. Misalnya, mencari "resourcegroupsclient.create" (untuk membuat grup sumber daya) mengarahkan Anda ke fungsi CreateOrUpdate.
- Baca cara melakukan panggilan API untuk membuat grup sumber daya Azure.
Operasi jangka panjang
Beberapa operasi dapat memakan waktu lama untuk diselesaikan, sehingga pustaka manajemen memiliki fungsi yang mendukung operasi jangka panjang (LRO) melalui panggilan asinkron. Nama fungsi ini dimulai dengan Begin, seperti BeginCreate dan BeginDelete.
Karena fungsi-fungsi ini asinkron, kode Anda tidak memblokir saat fungsi menyelesaikan tugasnya. Sebagai gantinya, fungsi segera mengembalikan objek poller . Kode Anda kemudian memanggil fungsi poller sinkron yang kembali saat fungsi asinkron asli selesai.
Cuplikan kode berikut menunjukkan contoh pola ini.
ctx := context.Background()
// Call an asynchronous function to create a client. The return value is a poller object.
poller, err := client.BeginCreate(ctx, "resource_identifier", "additional_parameter")
if err != nil {
// handle error...
}
// Call the poller object's PollUntilDone function that will block until the poller object
// has been updated to indicate the task has completed.
resp, err = poller.PollUntilDone(ctx, nil)
if err != nil {
// handle error...
}
// Print the fact that the LRO completed.
fmt.Printf("LRO done")
// Work with the response ("resp") object.
Poin utama:
- Fungsi
PollUntilDonememerlukan interval polling yang menentukan seberapa sering fungsi tersebut mencoba mendapatkan status. - Interval biasanya singkat. Silakan merujuk ke dokumentasi sumber daya Azure tertentu untuk interval yang direkomendasikan.
- Bagian LRO dari halaman Panduan Desain Go Azure SDK memiliki contoh yang lebih maju dan panduan umum untuk LRO.