Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu hızlı başlangıçta, Gin çerçevesini ve Azure App Configuration Go sağlayıcısını kullanarak Go web uygulaması için uygulama ayarlarının depolamasını ve yönetimini merkezileştirmek için Azure Uygulama Yapılandırması'nı kullanacaksınız.
Go için Uygulama Yapılandırma sağlayıcısı, Azure Uygulama Yapılandırması'ndan Go uygulamasına anahtar değerleri uygulama çabasını basitleştirir. Go yapısına bağlama ayarlarını etkinleştirir. Birden fazla etiketten yapılandırma kombinasyonu, anahtar ön ekini kırpma, Key Vault referanslarının otomatik çözümü gibi özellikler ve çok daha fazlasını sunar.
Önkoşullar
- Aktif bir aboneliğe sahip bir Azure hesabı. Ücretsiz bir tane oluşturun.
- Bir Uygulama Yapılandırma Mağazası. Mağaza oluşturma.
- 1.21 veya sonraki bir sürüme geçin. Go'u yükleyin.
Anahtar-değer ekleme
aşağıdaki anahtar değerlerini Uygulama Yapılandırması deposuna ekleyin ve Etiket ve İçerik Türü değerlerini varsayılan değerleriyle bırakın. Azure portalını veya CLI'yı kullanarak bir depoya anahtar-değer ekleme hakkında daha fazla bilgi için Anahtar-değer oluşturma bölümüne gidin.
| Anahtar | Değer |
|---|---|
| Yapılandırma.Mesaj | Azure Uygulama Yapılandırması'ndan merhaba |
| Config.App.Name | Gin Örnek Uygulaması |
| Config.App.Port | 8080 |
Go web uygulaması oluşturma
Web uygulamanız için yeni bir dizin oluşturun.
mkdir app-configuration-web cd app-configuration-webYeni bir Go modülü başlatın.
go mod init app-configuration-webGerekli bağımlılıkları ekleyin.
go get github.com/Azure/AppConfiguration-GoProvider/azureappconfiguration go get github.com/gin-gonic/ginHTML şablonlarınız için bir şablon dizini oluşturun.
mkdir templatesGiriş sayfası için bir HTML şablonu oluşturun. Aşağıdaki içeriği
templates/index.htmliçerisine ekleyin:<!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>
Uygulama Yapılandırması deposuna bağlanma
Aşağıdaki içeriğe sahip adlı appconfig.go bir dosya oluşturun. Microsoft Entra Id (önerilen) veya bağlantı dizesi kullanarak Uygulama Yapılandırması mağazanıza bağlanabilirsiniz.
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
}
Gin ile web uygulaması oluşturma
Aşağıdaki içeriğe sahip adlı main.go bir dosya oluşturun:
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)
}
}
Web uygulamasını çalıştırma
Kimlik doğrulaması için ortam değişkenini ayarlayın.
AZURE_APPCONFIG_ENDPOINT adlı ortam değişkenini Azure portalındaki mağazanıza genel bakış bölümünde bulunan Uygulama Yapılandırma deponuzun uç noktasına ayarlayın.
Windows komut istemini kullanıyorsanız, aşağıdaki komutu çalıştırın ve değişikliğin etkili olması için komut istemini yeniden başlatın:
setx AZURE_APPCONFIG_ENDPOINT "<endpoint-of-your-app-configuration-store>"PowerShell kullanıyorsanız aşağıdaki komutu çalıştırın:
$Env:AZURE_APPCONFIG_ENDPOINT = "<endpoint-of-your-app-configuration-store>"macOS veya Linux kullanıyorsanız aşağıdaki komutu çalıştırın:
export AZURE_APPCONFIG_ENDPOINT='<endpoint-of-your-app-configuration-store>'Ayrıca Azure CLI ile oturum açtığınızdan veya Azure kimlik doğrulaması için ortam değişkenlerini kullandığınızdan emin olun:
az loginUygulamayı çalıştırın.
go mod tidy go run .Şuna benzer bir çıktı görmeniz gerekir:
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 :8080Bir web tarayıcısı açın ve
http://localhost:8080adresine gidin. Web sayfası şöyle görünür:
Kaynakları temizle
Bu makalede oluşturulan kaynakları kullanmaya devam etmek istemiyorsanız ücretlerden kaçınmak için burada oluşturduğunuz kaynak grubunu silin.
Önemli
Bir kaynak grubunu silmek geri alınamaz. Kaynak grubu ve içindeki tüm kaynaklar kalıcı olarak silinir. Yanlış kaynak grubunu veya kaynakları yanlışlıkla silmediğinizden emin olun. Bu makalenin kaynaklarını, saklamak istediğiniz diğer kaynakları içeren bir kaynak grubu içinde oluşturduysanız, kaynak grubunu silmek yerine her kaynağı ilgili bölmeden tek tek silin.
- Azure portalında oturum açın ve Kaynak grupları'nı seçin.
- Ada göre filtrele kutusuna kaynak grubunuzun adını girin.
- Genel bir bakış görmek için sonuç listesinde kaynak grubu adını seçin.
- Kaynak grubunu sil seçeneğini seçin.
- Kaynak grubunun silinmesini onaylamanız istenir. Onaylamak için kaynak grubunuzun adını girin ve Sil'i seçin.
Birkaç dakika sonra kaynak grubu ve tüm kaynakları silinir.
Sonraki Adımlar
Bu hızlı başlangıçta Azure Uygulama Yapılandırması ile bir Go web uygulaması oluşturdunuz. Nasıl yapılacağını öğrendinsiniz:
- Web uygulamasında Azure Uygulama Yapılandırması'ndan yapılandırmayı yükleme
- Unmarshal ile kesin türemiş yapılandırma kullanma
- Web uygulamanızı merkezi olarak depolanan ayarlara göre yapılandırma
Azure App Configuration Go Sağlayıcısı hakkında daha fazla bilgi edinmek için başvuru belgesine bakın.