Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ebben a rövid útmutatóban az Azure App Configuration használatával központosíthatja a Go-webalkalmazások alkalmazásbeállításainak tárolását és kezelését a Gin-keretrendszer és az Azure App Configuration Go-szolgáltató használatával.
A Go alkalmazáskonfigurációs szolgáltatója egyszerűbben alkalmazhat kulcsértékeket az Azure App Configurationból a Go-alkalmazásba. Lehetővé teszi a kötési beállítások Go struct-nak való megadását. Olyan funkciókat kínál, mint a több címke konfigurációjának összeállítása, a kulcselőtagok vágása, a Key Vault-hivatkozások automatikus feloldása és még sok más.
Előfeltételek
- Egy Azure-fiók, aktív előfizetéssel. Hozzon létre egyet ingyen.
- Alkalmazáskonfigurációs áruház. Hozzon létre egy áruházat.
- Ugrás 1.21 vagy újabb verzióra. Telepítse a Go-t.
Kulcsértékek hozzáadása
Adja hozzá az alábbi kulcsértékeket az Alkalmazáskonfigurációs áruházhoz, és hagyja meg a címke és a tartalomtípus alapértelmezett értékeit. Ha többet szeretne tudni arról, hogyan adhat hozzá kulcsértékeket egy áruházhoz az Azure Portal vagy a parancssori felület használatával, lépjen a Kulcs-érték létrehozása elemre.
| Kulcs | Érték |
|---|---|
| Konfig.Üzenet | Hello az Azure App Configuration-ból |
| Config.App.Name | Gin mintaalkalmazás |
| Config.App.Port | 8080 |
Go-webalkalmazás létrehozása
Hozzon létre egy új könyvtárat a webalkalmazáshoz.
mkdir app-configuration-web cd app-configuration-webInicializáljon egy új Go-modult.
go mod init app-configuration-webAdja hozzá a szükséges függőségeket.
go get github.com/Azure/AppConfiguration-GoProvider/azureappconfiguration go get github.com/gin-gonic/ginHozzon létre egy sablonkönyvtárat a HTML-sablonokhoz.
mkdir templatesHozzon létre egy HTML-sablont a kezdőlaphoz. Adja hozzá a következő tartalmat ide:
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>
Csatlakozás alkalmazáskonfigurációs áruházhoz
Hozzon létre egy fájlt appconfig.go az alábbi tartalommal. Az alkalmazáskonfigurációs áruházhoz a Microsoft Entra-azonosító (ajánlott) vagy egy kapcsolati sztring használatával csatlakozhat.
package main
import (
"context"
"log"
"os"
"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
}
Webalkalmazás létrehozása a Gin használatával
Hozzon létre egy fájlt main.go a következő tartalommal:
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)
}
}
A webalkalmazás futtatása
Állítsa be a környezeti változót a hitelesítéshez.
Állítsa a AZURE_APPCONFIG_ENDPOINT nevű környezeti változót az Alkalmazáskonfigurációs áruház végpontjára, amely az Azure Portalon található áruház áttekintésében található.
Ha a Windows parancssorát használja, futtassa a következő parancsot, és indítsa újra a parancssort a módosítás érvénybe lépésének engedélyezéséhez:
setx AZURE_APPCONFIG_ENDPOINT "<endpoint-of-your-app-configuration-store>"Ha a PowerShellt használja, futtassa a következő parancsot:
$Env:AZURE_APPCONFIG_ENDPOINT = "<endpoint-of-your-app-configuration-store>"MacOS vagy Linux használata esetén futtassa a következő parancsot:
export AZURE_APPCONFIG_ENDPOINT='<endpoint-of-your-app-configuration-store>'Emellett győződjön meg arról, hogy bejelentkezett az Azure CLI-vel, vagy környezeti változókat használ az Azure-hitelesítéshez:
az loginIndítsa el az alkalmazást.
go mod tidy go run .A következőhöz hasonló kimenetnek kell megjelennie:
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 :8080Nyisson meg egy webböngészőt, majd navigáljon a következő helyre:
http://localhost:8080. A weblap a következőképpen néz ki:
Erőforrások tisztítása
Ha nem szeretné folytatni a cikkben létrehozott erőforrások használatát, törölje az itt létrehozott erőforráscsoportot a díjak elkerülése érdekében.
Fontos
Egy erőforráscsoport törlése visszafordíthatatlan. Az erőforráscsoport és a benne lévő összes erőforrás véglegesen törlődik. Győződjön meg arról, hogy nem véletlenül törli a rossz erőforráscsoportot vagy erőforrásokat. Ha a cikk erőforrásait olyan erőforráscsoporton belül hozta létre, amely más megtartani kívánt erőforrásokat tartalmaz, törölje az egyes erőforrásokat a megfelelő panelről az erőforráscsoport törlése helyett.
- Jelentkezzen be az Azure Portalra, és válassza ki az Erőforráscsoportokat.
- A Szűrés név szerint mezőbe írja be az erőforráscsoport nevét.
- Az eredménylistában válassza ki az erőforráscsoport nevét az áttekintés megtekintéséhez.
- Válassza az Erőforráscsoport törlése lehetőséget.
- A rendszer az erőforráscsoport törlésének megerősítését kéri. Adja meg a megerősítéshez az erőforráscsoport nevét, és válassza a Törlés lehetőséget.
Néhány pillanat múlva az erőforráscsoport és annak összes erőforrása törlődik.
Következő lépések
Ebben a rövid útmutatóban létrehozott egy Go-webalkalmazást az Azure App Configuration használatával. Megtanulta végrehajtani az alábbi műveleteket:
- Konfiguráció betöltése az Azure App Configuration szolgáltatásból egy webalkalmazásban
- Erősen gépelt konfiguráció használata „Unmarshal” segítségével
- A webalkalmazás konfigurálása központilag tárolt beállítások alapján
Az Azure App Configuration Go Provider szolgáltatással kapcsolatos további információkért tekintse meg a referencia-dokumentumot.