Azure App Configuration metodtips
Den här artikeln beskriver vanliga mönster och metodtips när du använder Azure App Configuration.
Nyckelgruppering
App Configuration två alternativ för att organisera nycklar:
- Nyckelprefix
- Etiketter
Du kan använda ett eller båda alternativen för att gruppera dina nycklar.
Nyckelprefix är de första delarna i nycklarna. Du kan logiskt gruppera en uppsättning nycklar med samma prefix i deras namn. Prefix kan innehålla flera komponenter som är anslutna via en avgränsare, till exempel , som liknar en / URL-sökväg för att bilda ett namnområde. Sådana hierarkier är användbara när du lagrar nycklar för många program och mikrotjänster i ett App Configuration arkivet.
En viktig sak att tänka på är att nycklar är det som din programkod refererar till för att hämta värdena för motsvarande inställningar. Nycklar bör inte ändras, annars måste du ändra koden varje gång det inträffar.
Etiketter är ett attribut för nycklar. De används för att skapa varianter av en nyckel. Du kan till exempel tilldela etiketter till flera versioner av en nyckel. En version kan vara en iteration, en miljö eller någon annan sammanhangsberoende information. Programmet kan begära en helt annan uppsättning nyckelvärden genom att ange en annan etikett. Därför förblir alla nyckelreferenser oförändrade i koden.
Nyckelvärdessammansättningar
App Configuration behandlar alla nycklar som lagras med den som oberoende entiteter. App Configuration inte någon relation mellan nycklar eller att ärva nyckelvärden baserat på deras hierarki. Du kan aggregera flera uppsättningar nycklar, men genom att använda etiketter tillsammans med rätt konfigurationsstackning i programkoden.
Låt oss ta en titt på ett exempel. Anta att du har en inställning med namnet Asset1 vars värde kan variera beroende på utvecklingsmiljön. Du skapar en nyckel med namnet "Asset1" med en tom etikett och en etikett med namnet "Utveckling". I den första etiketten lägger du standardvärdet för Asset1 och sätter ett specifikt värde för "Utveckling" i det senare.
I koden hämtar du först nyckelvärdena utan etiketter och sedan hämtar du samma uppsättning nyckelvärden en andra gång med etiketten "Utveckling". När du hämtar värdena andra gången skrivs de tidigare värdena för nycklarna över. Med .NET Core-konfigurationssystemet kan du "stapla" flera uppsättningar konfigurationsdata ovanpå varandra. Om det finns en nyckel i mer än en uppsättning används den sista uppsättningen som innehåller den. Med ett modernt programmeringsramverk, till exempel .NET Core, får du den här staplingsfunktionerna kostnadsfritt om du använder en inbyggd konfigurationsprovider för att få åtkomst App Configuration. Följande kodfragment visar hur du kan implementera stapling i ett .NET Core-program:
// Augment the ConfigurationBuilder with Azure App Configuration
// Pull the connection string from an environment variable
configBuilder.AddAzureAppConfiguration(options => {
options.Connect(configuration["connection_string"])
.Select(KeyFilter.Any, LabelFilter.Null)
.Select(KeyFilter.Any, "Development");
});
Använd etiketter för att aktivera olika konfigurationer för olika miljöer ger ett komplett exempel.
Referenser till externa data
App Configuration är utformat för att lagra konfigurationsdata som du normalt skulle spara i konfigurationsfiler eller miljövariabler. Vissa typer av data kan dock passa bättre för att lagras i andra källor. Lagra till exempel hemligheter i Key Vault, filer i Azure Storage, medlemskapsinformation i Azure AD-grupper eller kundlistor i en databas.
Du kan fortfarande dra nytta av App Configuration genom att spara en referens till externa data i ett nyckelvärde. Du kan använda innehållstyp för att särskilja varje datakälla. När programmet läser in en referens läser du in data från den refererade källan. Om du ändrar platsen för dina externa data behöver du bara uppdatera referensen i App Configuration i stället för att uppdatera och omdistribuera hela programmet.
Den App Configuration Key Vault referensfunktionen är ett exempel i det här fallet. Det gör att de hemligheter som krävs för att ett program ska uppdateras vid behov medan de underliggande hemligheterna själva finns kvar i Key Vault.
App Configuration bootstrap
Om du vill App Configuration ett arkiv kan du använda dess anslutningssträng, som finns i Azure Portal. Eftersom anslutningssträngar innehåller information om autentiseringsuppgifter betraktas de som hemligheter. Dessa hemligheter måste lagras i Azure Key Vault och koden måste autentiseras för att Key Vault hämta dem.
Ett bättre alternativ är att använda funktionen hanterade identiteter i Azure Active Directory. Med hanterade identiteter behöver du bara url App Configuration slutpunkten för att bootstrap-åtkomst till App Configuration store. Du kan bädda in URL:en i programkoden (till exempel i filen appsettings.json). Mer information finns i Integrera med azure-hanterade identiteter.
App- eller funktionsåtkomst till App Configuration
Du kan ge åtkomst till App Configuration för Web Apps eller Azure Functions med någon av följande metoder:
- Via Azure Portal anger du anslutningssträngen till App Configuration store i programinställningarna för App Service.
- Lagra anslutningssträngen i App Configuration i Key Vault referera till den från App Service.
- Använd Azure-hanterade identiteter för att komma åt App Configuration Store. Mer information finns i Integrera med azure-hanterade identiteter.
- Push-konfiguration från App Configuration till App Service. App Configuration en exportfunktion (i Azure Portal och Azure CLI) som skickar data direkt till App Service. Med den här metoden behöver du inte ändra programkoden alls.
Minska begäranden som görs till App Configuration
För många begäranden App Configuration kan resultera i begränsnings- eller överavgifter. Så här minskar du antalet begäranden som görs:
Öka tidsgränsen för uppdatering, särskilt om dina konfigurationsvärden inte ändras ofta. Ange en ny tidsgräns för uppdatering med hjälp av
SetCacheExpirationmetoden.Titta på en enda sentinel-nyckel i stället för att titta på enskilda nycklar. Uppdatera bara all konfiguration om sentinel-nyckeln ändras. Ett exempel finns i Använda dynamisk konfiguration ASP.NET Core en app.
Använd Azure Event Grid att ta emot meddelanden när konfigurationen ändras, i stället för att kontinuerligt avse ändringar. Mer information finns i Use Event Grid for App Configuration data change notifications.
Sprida dina begäranden över flera App Configuration butiker. Du kan till exempel använda en annan butik från varje geografisk region för ett globalt distribuerat program. Varje App Configuration har en egen kvot för begäran. Den här konfigurationen ger dig en modell för skalbarhet och undviker den enskilda felpunkten.
Importera konfigurationsdata till App Configuration
App Configuration alternativet att massimporta dina konfigurationsinställningar från dina aktuella konfigurationsfiler med hjälp av antingen Azure Portal eller CLI. Du kan också använda samma alternativ för att exportera nyckelvärden från App Configuration, till exempel mellan relaterade butiker. Om du vill konfigurera en pågående synkronisering med din lagringsplatsen i GitHub eller Azure DevOps kan du använda vår GitHub-åtgärd eller Push-uppgift för Azure Pipeline så att du kan fortsätta använda dina befintliga metoder för källkontroll samtidigt som du får fördelarna med App Configuration.
Distribution i flera regioner i App Configuration
App Configuration är regional tjänst. För program med olika konfigurationer per region kan lagring av dessa konfigurationer i en instans skapa en enskild felpunkt. Att distribuera App Configuration instanser per region i flera regioner kan vara ett bättre alternativ. Det kan hjälpa till med regional haveriberedskap, prestanda och säkerhetssilo. Att konfigurera efter region förbättrar också svarstiden och använder avgränsade begränsningskvoter, eftersom begränsningen är per instans. Om du vill åtgärda haveriberedskap kan du använda flera konfigurationslager.
Klientprogram i App Configuration
När du använder App Configuration i klientprogram bör du tänka på två viktiga faktorer. Om du använder anslutningssträngen i ett klientprogram riskerar du först att exponera åtkomstnyckeln för ditt App Configuration store för allmänheten. För det andra kan den typiska skalan för ett klientprogram orsaka orimliga begäranden till App Configuration store, vilket kan leda till överavgifter eller begränsning. Mer information om begränsning finns i Vanliga frågor och svar.
För att lösa dessa problem rekommenderar vi att du använder en proxytjänst mellan dina klientprogram och din App Configuration store. Proxytjänsten kan på ett säkert sätt autentisera med App Configuration arkivet utan att det finns något säkerhetsproblem med att läcka autentiseringsinformation. Du kan skapa en proxytjänst med hjälp av något av App Configuration-providerbiblioteken, så att du kan dra nytta av inbyggda funktioner för cachelagring och uppdatering för att optimera volymen av begäranden som skickas till App Configuration. Mer information om hur du använder App Configuration-leverantörer finns i artiklarna i Snabbstarter och självstudier. Proxytjänsten betjänar konfigurationen från dess cacheminne till dina klientprogram och du undviker de två potentiella problem som beskrivs i det här avsnittet.
Konfiguration som kod
Konfiguration som kod är en metod för att hantera konfigurationsfiler under källkontrollsystemet, till exempel en git-lagringsplats. Det ger dig fördelar som spårnings- och godkännandeprocess för alla konfigurationsändringar. Om du inför konfigurationen som kod App Configuration verktyg som hjälper dig att distribuera konfigurationsdata. På så sätt kan dina program komma åt senaste data från App Configuration lagringslager.
- Du GitHub till exempel aktivera synkroniseringsåtgärden App Configuration Sync GitHub för din lagringsplats. Ändringar i konfigurationsfiler synkroniseras för att App Configuration automatiskt när en pull-begäran sammanslås.
- För Azure DevOps kan du inkludera uppgiften Azure App Configuration Push, en Azure-pipeline i dina bygg- eller lanseringspipelines för datasynkronisering.
- Du kan också importera konfigurationsfiler till App Configuration hjälp av Azure CLI som en del av CI/CD-systemet. Mer information finns i az appconfig kv import.
Med den här modellen kan du inkludera validerings- och testningssteg innan du utför data App Configuration. Om du använder flera App Configuration-lager kan du också skicka konfigurationsdata till dem stegvis eller alla samtidigt.