Gambaran umum pustaka manajemen Azure SDK for Go
Seperti yang dijelaskan dalam artikel Apa itu Azure SDK untuk Go?, Azure SDK for Go berisi sekumpulan pustaka manajemen dan klien. Pustaka manajemen berbagi banyak fitur seperti dukungan Azure Identity, alur HTTP, dan penanganan kesalahan. Anda dapat menemukan daftar lengkap pustaka manajemen di halaman modul Azure SDK for Go.
Dalam artikel ini, Anda mempelajari langkah-langkah dasar cara 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, gunakan perintah go get
.
Misalnya, untuk menginstal paket armcompute
, Anda menjalankan hal berikut di baris perintah:
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 pernyataanimport
:
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 pada langganan Azure, Anda perlu mengautentikasi ke Azure. Paket azidentity mendukung beberapa opsi untuk mengautentikasi ke Azure. Opsi ini termasuk 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 memiliki kredensial dari Azure Identity, buat klien untuk terhubung ke layanan Azure target.
Misalnya, katakanlah Anda ingin terhubung ke layanan Azure Compute. Paket Compute terdiri dari satu klien atau lebih. 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.
Dalam cuplikan kode berikut, armcompute. Jenis NewVirtualMachinesClient digunakan untuk membuat klien untuk mengelola mesin 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("SubID", cred, nil)
if err != nil {
// handle error
}
}
Menggunakan dokumentasi referensi Azure SDK for Go
Setelah terbentuk, klien digunakan untuk melakukan panggilan API terhadap sumber daya Azure Anda. Untuk skenario manajemen sumber daya, sebagian besar kasus-penggunaan adalah operasi CRUD (Create/Read/Update/Delete).
Untuk mencari operasi untuk jenis tertentu, lakukan langkah-langkah berikut:
- Telusuri dokumentasi referensi Azure SDK for Go.
- Cari halaman untuk paket tersebut. (Menekan <Ctrl+F> secara otomatis memperluas semua simpul di halaman untuk pencarian.)
- Pilih paket .
- Cari halaman paket untuk jenisnya.
- Baca deskripsi dan informasi tipe tentang penggunaannya pada kode Go Anda.
Anda juga dapat membuat URL secara manual dengan menambahkan nama paket ke github.com/Azure/azure-sdk-for-go/sdk/
.
Misalnya, jika Anda mencari compute/armcompute
dokumentasi referensi, URL adalah github.com/Azure/azure-sdk-for-go/sdk/compute/armcompute
.
Contoh berikut menunjukkan cara menemukan dokumentasi referensi untuk operasi grup sumber daya Azure:
- Telusuri ke 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 istilah "resourcegroupsclient.create" (jika Anda ingin membuat grup sumber daya) akan mengarahkan Anda ke fungsi CreateOrUpdate.
- Pada titik ini, Anda dapat membaca cara membuat panggilan API untuk membuat grup sumber daya Azure.
Operasi jangka panjang
Karena beberapa operasi dapat memakan waktu lama untuk diselesaikan, pustaka manajemen berisi fungsi untuk mendukung operasi jangka panjang (LRO) melalui panggilan asinkron. Nama-nama fungsi ini dimulai dengan Begin
. Contoh dari pola ini adalah BeginCreate
dan BeginDelete
.
Karena fungsi-fungsi ini asinkron, kode Anda tidak memblokir sampai fungsi menyelesaikan tugasnya. Sebaliknya, fungsi mengembalikan objek poller segera. 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
PollUntilDone
membutuhkan interval polling yang menentukan seberapa sering harus mencoba untuk mendapatkan status. - Interval ini biasanya pendek. Lihat dokumentasi untuk sumber daya Azure tertentu untuk interval yang disarankan.
- Bagian LRO dari halaman Pedoman Desain Go Azure SDK memiliki contoh lanjutan pemindahan dan pedoman umum untuk LRO.