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.
Dalam panduan cepat ini, Anda menggunakan Azure App Configuration untuk menyederhanakan penyimpanan dan manajemen pengaturan untuk aplikasi web Go dengan menggunakan Gin framework dan Azure App Configuration Go provider.
Penyedia App Configuration untuk Go menyederhanakan upaya penerapan nilai kunci dari aplikasi Azure App Configuration ke Go. Ini memungkinkan mengatur pengikatan ke struktur Go. Ini menawarkan fitur seperti komposisi konfigurasi dari beberapa label, pemangkasan awalan kunci, resolusi otomatis referensi Key Vault, dan banyak lagi.
Prasyarat
- Sebuah akun Azure dengan langganan aktif. Buat akun gratis.
- Toko Konfigurasi Aplikasi. Buat toko.
- Buka 1.18 atau yang lebih baru. Instal Go.
Menambahkan nilai kunci
Tambahkan nilai kunci berikut ke penyimpanan App Configuration dan biarkan Label dan Tipe Konten dengan nilai defaultnya. Untuk informasi selengkapnya tentang cara menambahkan nilai kunci ke toko menggunakan portal Azure atau CLI, buka Buat nilai kunci.
Kunci | Nilai |
---|---|
Pesan Konfigurasi | Halo dari Azure App Configuration |
Config.App.Name | Aplikasi Sampel Gin |
Config.App.Port | 8080 |
Membuat aplikasi web Go
Buat direktori baru untuk aplikasi web Anda.
mkdir app-configuration-web cd app-configuration-web
Menginisialisasi modul Go baru.
go mod init app-configuration-web
Tambahkan dependensi yang diperlukan.
go get github.com/Azure/AppConfiguration-GoProvider/azureappconfiguration go get github.com/gin-gonic/gin
Buat direktori templat untuk templat HTML Anda.
mkdir templates
Buat templat HTML untuk beranda. Tambahkan konten berikut ke
templates/index.html
:<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>{{.Title}}</title> <style> body { font-family: Arial, sans-serif; margin: 0; padding: 0; background-color: #f5f5f5; } .container { margin: 50px auto; max-width: 800px; text-align: center; background-color: white; padding: 30px; border-radius: 8px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); } h1 { color: #333; } p { color: #666; font-size: 18px; } </style> </head> <body> <div class="container"> <h1>{{.Message}}</h1> <p>{{.App}}</p> </div> </body> </html>
Hubungkan ke Toko Konfigurasi Aplikasi
Buat file bernama appconfig.go
dengan konten berikut. Anda dapat menyambungkan ke penyimpanan App Configuration menggunakan ID Microsoft Entra (disarankan) atau string koneksi.
package main
import (
"context"
"fmt"
"log"
"os"
"time"
"github.com/Azure/AppConfiguration-GoProvider/azureappconfiguration"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
)
func loadAzureAppConfiguration(ctx context.Context) (*azureappconfiguration.Azureappconfiguration, error) {
// Get the endpoint from environment variable
endpoint := os.Getenv("AZURE_APPCONFIG_ENDPOINT")
if endpoint == "" {
log.Fatal("AZURE_APPCONFIG_ENDPOINT environment variable is not set")
}
// Create a credential using DefaultAzureCredential
credential, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("Failed to create credential: %v", err)
}
// Set up authentication options with endpoint and credential
authOptions := azureappconfiguration.AuthenticationOptions{
Endpoint: endpoint,
Credential: credential,
}
// Configure which keys to load and trimming options
options := &azureappconfiguration.Options{
Selectors: []azureappconfiguration.Selector{
{
KeyFilter: "Config.*",
LabelFilter: "",
},
},
TrimKeyPrefixes: []string{"Config."},
}
// Load configuration from Azure App Configuration
appConfig, err := azureappconfiguration.Load(ctx, authOptions, options)
if err != nil {
log.Fatalf("Failed to load configuration: %v", err)
}
return appConfig, nil
}
Membuat aplikasi web dengan Gin
Buat file bernama main.go
dengan konten berikut:
package main
import (
"context"
"fmt"
"log"
"time"
"github.com/gin-gonic/gin"
)
type Config struct {
App App
Message string
}
type App struct {
Name string
Port int
}
func main() {
// Create a context with timeout
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel()
// Load configuration from Azure App Configuration
provider, err := loadAzureAppConfiguration(ctx)
if err != nil {
log.Fatalf("Error loading configuration: %v", err)
}
// Unmarshal the configuration into the application-specific struct
var config Config
if err := provider.Unmarshal(&config, nil); err != nil {
log.Fatalf("Failed to unmarshal configuration: %v", err)
}
// Initialize Gin router
r := gin.Default()
// Load HTML templates
r.LoadHTMLGlob("templates/*")
// Define a route for the homepage
r.GET("/", func(c *gin.Context) {
c.HTML(200, "index.html", gin.H{
"Title": "Home",
"Message": config.Message,
"App": config.App.Name,
})
})
// Use the port from configuration
portStr:= fmt.Sprintf(":%d", config.App.Port)
// Start the server on configured port
log.Printf("Starting %s on http://localhost%s", config.App.Name, portStr)
if err := r.Run(portStr); err != nil {
log.Fatalf("Error starting server: %v", err)
}
}
Jalankan aplikasi web
Atur variabel lingkungan untuk autentikasi.
Atur variabel lingkungan bernama AZURE_APPCONFIG_ENDPOINT ke titik akhir dari penyimpanan App Configuration Anda yang ditemukan di bagian Gambaran Umum penyimpanan Anda pada portal Azure.
Jika Anda menggunakan perintah Windows, jalankan perintah berikut dan hidupkan ulang perintah untuk memungkinkan perubahan berlaku:
setx AZURE_APPCONFIG_ENDPOINT "<endpoint-of-your-app-configuration-store>"
Jika Anda menggunakan PowerShell, jalankan perintah berikut:
$Env:AZURE_APPCONFIG_ENDPOINT = "<endpoint-of-your-app-configuration-store>"
Jika Anda menggunakan macOS atau Linux, jalankan perintah berikut:
export AZURE_APPCONFIG_ENDPOINT='<endpoint-of-your-app-configuration-store>'
Selain itu, pastikan Anda telah masuk dengan Azure CLI atau menggunakan variabel lingkungan untuk autentikasi Azure:
az login
Jalankan aplikasi.
go run main.go
Anda akan melihat output yang mirip dengan ini:
Running in DEBUG mode Starting Gin Web App on http://localhost:8080 [GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached. [GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production. - using env: export GIN_MODE=release - using code: gin.SetMode(gin.ReleaseMode) [GIN-debug] Loading templates from ./templates/* [GIN-debug] GET / --> main.main.func1 (3 handlers) [GIN-debug] [WARNING] You trusted all proxies, this is NOT safe. We recommend you to set a value. Please check https://pkg.go.dev/github.com/gin-gonic/gin#readme-don-t-trust-all-proxies for details. [GIN-debug] Listening and serving HTTP on :8080
Buka browser web dan navigasi ke
http://localhost:8080
. Halaman web terlihat seperti ini:
Membersihkan sumber daya
Jika Anda tidak ingin terus menggunakan sumber daya yang dibuat dalam artikel ini, hapus grup sumber daya yang Anda buat di sini untuk menghindari biaya.
Penting
Penghapusan grup sumber daya tidak bisa dipulihkan. Grup sumber daya dan semua sumber daya di dalamnya dihapus secara permanen. Pastikan Anda tidak menghapus grup atau sumber daya yang salah secara tidak sengaja. Jika Anda membuat sumber daya untuk artikel ini di dalam grup sumber daya yang berisi sumber daya lain yang ingin Anda pertahankan, hapus setiap sumber daya satu per satu dari panel masing-masing, daripada menghapus grup sumber daya tersebut.
- Masuk ke portal Azure, lalu pilih Grup sumber daya.
- Dalam kotak Filter menurut nama, masukkan nama grup sumber daya Anda.
- Dalam daftar hasil, pilih nama grup sumber daya untuk melihat gambaran umum.
- Pilih Hapus grup sumber daya.
- Anda diminta untuk mengonfirmasi penghapusan grup sumber daya. Masukkan nama grup sumber daya Anda untuk mengonfirmasi, dan pilih Hapus.
Setelah beberapa saat, grup sumber daya dan semua sumber dayanya dihapus.
Langkah selanjutnya
Dalam panduan memulai cepat ini, Anda telah membuat aplikasi web Go menggunakan Azure App Configuration. Anda mempelajari cara untuk:
- Memuat konfigurasi dari Azure App Configuration dalam aplikasi web
- Gunakan konfigurasi bertipe ketat dengan Unmarshal
- Mengonfigurasi aplikasi web Anda berdasarkan pengaturan yang disimpan secara terpusat
Untuk mempelajari lebih lanjut tentang Azure App Configuration Go Provider, lihat dokumen referensi.