Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel worden veelvoorkomende patronen en aanbevolen procedures besproken wanneer u Azure App Configuration gebruikt.
Sleutelgroeperingen
App Configuration biedt twee opties voor het ordenen van sleutels:
- Sleutelvoorvoegsels
- Etiketten
U kunt een of beide opties gebruiken om uw sleutels te groeperen.
Met sleutelvoorvoegsels kunt u gerelateerde sleutels groeperen met behulp van een gemeenschappelijk voorvoegsel in hun namen. Voorvoegsels kunnen meerdere segmenten bevatten, gescheiden door scheidingstekens, zoals /
of :
het vormen van een hiërarchische naamruimte. Deze methode is handig bij het opslaan van configuratiesleutels voor meerdere toepassingen of microservices in één App Configuration-archief.
Het is belangrijk te onthouden dat er rechtstreeks naar sleutels wordt verwezen door uw toepassingscode om de bijbehorende waarden op te halen. Daarom moeten sleutels stabiel blijven om codewijzigingen te voorkomen. Indien nodig kunt u de App Configuration-provider gebruiken om sleutelvoorvoegsels tijdens runtime te knippen.
Met labels kunt u variaties van een sleutel maken, zoals verschillende versies of omgevingsspecifieke instellingen. Door labels toe te wijzen, kunt u meerdere waarden voor dezelfde sleutel onderhouden. Uw toepassing kan vervolgens verschillende sets sleutelwaarden ophalen door het juiste label op te geven, zodat uw sleutelverwijzingen in code consistent blijven.
Sleutel-waardesamenstellingen
App Configuration behandelt elke sleutel die erin is opgeslagen als een onafhankelijke entiteit. Er worden geen relaties tussen sleutels afgeleid of waarden overgenomen op basis van de sleutelhiërarchie. U kunt echter meerdere sets sleutels effectief aggregeren met behulp van labels in combinatie met configuratiestacking in uw toepassing.
Bekijk een voorbeeld van een configuratie-instelling met de naam TestApp:MySetting, waarvan de waarde afhankelijk is van de omgeving. U kunt twee sleutels met dezelfde naam maken, maar verschillende labels toewijzen, één zonder label (standaard) en een andere gelabelde ontwikkeling. De niet-gelabelde sleutel bevat de standaardwaarde, terwijl de gelabelde sleutel de omgevingsspecifieke waarde bevat.
In uw toepassingscode laadt u eerst de standaardsleutelwaarden (niet-gelabeld) en laadt u vervolgens de omgevingsspecifieke sleutelwaarden met behulp van het ontwikkelingslabel. Bij het laden van de tweede set overschrijven alle overeenkomende sleutels de eerder geladen waarden. Met deze methode kunt u meerdere configuratiesets 'stapelen', waarbij de laatst geladen waarde prioriteit heeft. App Configuration-providers in ondersteunde talen en platforms bieden deze stacking-mogelijkheid.
In het volgende voorbeeld ziet u hoe u de samenstelling van sleutelwaarden implementeert in een .NET-toepassing:
configBuilder.AddAzureAppConfiguration(options => {
options.Connect(new Uri("<your-app-config-endpoint>"), new DefaultAzureCredential())
// Load all keys that start with `TestApp:` and compose with two different labels
.Select(keyFilter: "TestApp:*", labelFilter: LabelFilter.Null)
.Select(keyFilter: "TestApp:*", labelFilter: "Development");
});
Labels gebruiken om verschillende configuraties voor verschillende omgevingen in te schakelen, biedt een volledig voorbeeld.
Configuratie vernieuwen
Azure App Configuration biedt ondersteuning voor dynamische configuratievernieuwing zonder dat een toepassing opnieuw hoeft te worden opgestart. De App Configuration-providers kunnen configuratiewijzigingen bewaken met behulp van twee benaderingen:
Alle geselecteerde sleutels bewaken
Bij deze benadering bewaakt de provider alle geselecteerde sleutels. Als er een wijziging wordt gedetecteerd in een van de geselecteerde sleutelwaarden, wordt de volledige configuratie opnieuw geladen. Deze aanpak zorgt ervoor dat er onmiddellijk updates worden uitgevoerd zonder dat er extra belangrijke wijzigingen nodig zijn.
configBuilder.AddAzureAppConfiguration(options =>
{
options.Connect(new Uri("<your-app-config-endpoint>"), new DefaultAzureCredential())
// Load all keys that start with `TestApp:` and have no label
.Select(keyFilter: "TestApp:*", labelFilter: LabelFilter.Null)
.ConfigureRefresh(refreshOptions =>
{
// Trigger full configuration refresh when any selected key changes.
refreshOptions.RegisterAll();
});
});
Een sentinel-sleutel bewaken
U kunt ook een afzonderlijke sleutel bewaken, ook wel de sentinel-sleutel genoemd. Deze methode is handig bij het bijwerken van meerdere sleutelwaarden. Als u de sentinel-sleutel pas bijwerkt nadat alle andere configuratiewijzigingen zijn voltooid, zorgt u ervoor dat uw toepassing de configuratie slechts eenmaal opnieuw laadt, zodat de consistentie behouden blijft.
configBuilder.AddAzureAppConfiguration(options =>
{
options.Connect(new Uri("<your-app-config-endpoint>"), new DefaultAzureCredential())
// Load all keys that start with `TestApp:` and have no label
.Select(keyFilter: "TestApp:*", labelFilter: LabelFilter.Null)
.ConfigureRefresh(refreshOptions =>
{
// Trigger full configuration refresh only if the `SentinelKey` changes.
refreshOptions.Register("SentinelKey", refreshAll: true);
});
});
Beide methoden zijn beschikbaar via App Configuration-providers in ondersteunde talen en platforms.
Als u het risico op inconsistenties in de configuratie wilt verminderen, gebruikt u momentopnamen van de configuratie om de configuratie-integriteit te waarborgen.
Verwijzingen naar externe gegevens
App Configuration is ontworpen om configuratiegegevens op te slaan die u normaal gesproken opslaat in configuratiebestanden of omgevingsvariabelen. Sommige typen gegevens zijn echter mogelijk beter geschikt om zich in andere bronnen te bevinden. Sla bijvoorbeeld geheimen op in Key Vault, bestanden in Azure Storage, lidmaatschapsgegevens in Microsoft Entra-groepen of klantlijsten in een database.
U kunt nog steeds profiteren van App Configuration door een verwijzing naar externe gegevens op te slaan in een sleutelwaarde. U kunt inhoudstype gebruiken om elke gegevensbron te onderscheiden. Wanneer uw toepassing een verwijzing leest, worden de werkelijke gegevens uit de bron waarnaar wordt verwezen geladen, ervan uitgaande dat deze over de benodigde machtiging voor de bron beschikt. Als u de locatie van uw externe gegevens wijzigt, hoeft u de verwijzing alleen bij te werken in App Configuration in plaats van uw hele toepassing bij te werken en opnieuw te implementeren.
De referentiefunctie voor App Configuration Key Vault is een voorbeeld in dit geval. Hiermee kunnen de geheimen die vereist zijn voor een toepassing zo nodig worden bijgewerkt, terwijl de onderliggende geheimen zelf in Key Vault blijven.
Bootstrap voor App Configuratie
Voor toegang tot een Azure App Configuration-archief kunt u zich authenticeren met behulp van een verbindingsreeks of Microsoft Entra ID. Hoewel verbindingsreeksen direct beschikbaar zijn in Azure Portal, bevatten ze referentiegegevens en moeten ze worden behandeld als geheimen. Als u deze methode kiest, slaat u de verbindingsreeks veilig op in Azure Key Vault en zorgt u ervoor dat uw toepassing wordt geverifieerd bij Key Vault om deze op te halen.
Een veiligere en aanbevolen benadering is het gebruik van Microsoft Entra ID-verificatie. Als uw toepassing wordt gehost in Azure, zoals in Azure Kubernetes Service, App Service of Azure Functions, kunt u beheerde identiteiten gebruiken die worden geleverd door Microsoft Entra ID. Beheerde identiteiten elimineren de noodzaak om geheimen expliciet te beheren. Met deze methode vereist uw toepassing alleen de URL van het App Configuration-eindpunt, die veilig kan worden ingesloten in uw toepassingscode of configuratiebestanden.
Zie Beheerde identiteiten gebruiken voor toegang tot App Configuration voor meer informatie.
Azure Kubernetes Service heeft toegang tot App Configuration
De volgende opties zijn beschikbaar voor workloads die worden gehost in Azure Kubernetes Service (AKS) voor toegang tot Azure App Configuration. Deze opties zijn ook van toepassing op Kubernetes in het algemeen.
Voeg Azure App Configuration Kubernetes Provider toe aan uw AKS-cluster. De Kubernetes-provider wordt uitgevoerd als een pod in het cluster. Hiermee kunnen ConfigMaps en Secrets worden samengesteld uit sleutelwaarden en Key Vault-verwijzingen in uw App Configuration-archief. De ConfigMap en Secret kunnen worden gebruikt als omgevingsvariabelen of gekoppelde bestanden zonder dat er wijzigingen in uw toepassingscode nodig zijn. Als er meerdere toepassingen worden uitgevoerd in hetzelfde AKS-cluster, hebben ze allemaal toegang tot de gegenereerde ConfigMaps en Geheimen, waardoor er geen afzonderlijke aanvragen meer nodig zijn voor App Configuration. De Kubernetes-provider ondersteunt ook dynamische configuratie-updates. Dit is de aanbevolen optie indien haalbaar voor u.
Werk uw toepassing bij voor het gebruik van Azure App Configuration-providerbibliotheken. De providerbibliotheken zijn beschikbaar in veel frameworks en talen, zoals ASP.NET, .NET, Java Spring, JavaScript/Node.jsen Python. Deze benadering biedt u volledige toegang tot de functionaliteiten van App Configuration, waaronder dynamisch configuratie- en functiebeheer. U hebt gedetailleerde controle over welke gegevens u wilt laden en van welk App Configuration-archief voor elke toepassing.
Integreren met Kubernetes-implementatie met behulp van Helm. Als u uw toepassing niet wilt bijwerken of een nieuwe pod wilt toevoegen aan uw AKS-cluster, hebt u de mogelijkheid om gegevens van App Configuration naar uw Kubernetes-cluster te brengen met behulp van Helm via implementatie. Met deze methode kan uw toepassing toegang blijven krijgen tot de configuratie vanuit Kubernetes-variabelen en -geheimen. U kunt helm-upgrade uitvoeren wanneer u wilt dat uw toepassing nieuwe configuratiewijzigingen bevat.
Toegang tot App Configuration voor App Service of Azure Functions
Gebruik de App Configuration-provider of SDK-bibliotheken om rechtstreeks in uw toepassing toegang te krijgen tot App Configuration. Deze benadering biedt u volledige toegang tot de functionaliteiten van App Configuration, waaronder dynamisch configuratie- en functiebeheer. Uw toepassing die wordt uitgevoerd op App Service of Azure Functions, kan toegang krijgen tot uw App Configuration-archief via een van de volgende methoden:
- Schakel beheerde identiteit in uw App Service of Azure Functions in en verleent deze toegang tot uw App Configuration store. Zie Beheerde identiteiten gebruiken voor toegang tot App Configuration voor meer informatie.
- Sla de verbindingsreeks op in uw App Configuration-archief in de toepassingsinstellingen van App Service of Azure Functions. Voor verbeterde beveiliging slaat u de verbindingsreeks op in Key Vault en verwijst u ernaar vanuit App Service of Azure Functions.
U kunt uw App Configuration-gegevens ook toegankelijk maken voor uw toepassing als toepassingsinstellingen of omgevingsvariabelen. Met deze methode kunt u voorkomen dat u de toepassingscode wijzigt.
- Voeg verwijzingen toe naar uw App Configuration-gegevens in de toepassingsinstellingen van uw App Service of Azure Functions. App Configuration biedt hulpprogramma's voor het exporteren van een verzameling sleutelwaarden als verwijzingen tegelijk. Zie voor meer informatie App Configuration-verwijzingen gebruiken voor App Service en Azure Functions.
- Exporteer uw App Configuration-gegevens naar de toepassingsinstellingen van uw App Service of Azure Functions zonder de optie export-as-reference te selecteren. Exporteer uw gegevens telkens wanneer u nieuwe wijzigingen aanbrengt in App Configuration als u wilt dat uw toepassing de wijziging ophaalt.
Aanvragen voor App Configuration verminderen
Overmatige aanvragen voor App Configuration kunnen leiden tot bandbreedtebeperking of overschrijdingskosten. Het aantal aanvragen beperken:
Verhoog het vernieuwingsinterval, met name als uw configuratiewaarden niet regelmatig veranderen. Geef een nieuw vernieuwingsinterval op met behulp van de
SetRefreshInterval
methode.Bekijk één sentinel-sleutel in plaats van afzonderlijke sleutels te bekijken. Vernieuw alle configuratie alleen als de sentinel-sleutel wordt gewijzigd. Zie Dynamische configuratie gebruiken in een ASP.NET Core-app voor een voorbeeld.
Gebruik de App Configuration Kubernetes-provider als u meerdere workloads uitvoert in een Kubernetes-cluster, waarbij gegevens afzonderlijk uit App Configuration worden opgehaald. De Kubernetes-provider haalt gegevens op uit App Configuration en maakt deze beschikbaar als Kubernetes ConfigMaps en Secrets. Op deze manier hebben uw workloads toegang tot de gegevens via ConfigMaps en Geheimen zonder dat u afzonderlijk gegevens uit App Configuration hoeft op te halen.
Schakel geo-replicatie van uw App Configuration-archief in en verspreid uw aanvragen over meerdere replica's. Gebruik bijvoorbeeld een andere replica dan elke geografische regio voor een wereldwijd geïmplementeerde toepassing. Elke App Configuration-replica heeft het afzonderlijke aanvraagquotum. Deze installatie biedt u een model voor schaalbaarheid en verbeterde tolerantie tegen tijdelijke en regionale storingen.
Configuratiegegevens importeren in App Configuration
App Configuration biedt de mogelijkheid om uw configuratie-instellingen bulksgewijs te importeren uit uw huidige configuratiebestanden met behulp van Azure Portal of CLI. U kunt ook dezelfde opties gebruiken om sleutelwaarden uit App Configuration te exporteren, bijvoorbeeld tussen gerelateerde winkels. Als u configuratie als code gebruikt en uw configuraties beheert in GitHub of Azure DevOps, kunt u doorlopende configuratiebestanden importeren met behulp van GitHub Actions of Azure Pipeline Import Task.
Implementatie met meerdere regio's in App Configuration
Als uw toepassing in meerdere regio's is geïmplementeerd, raden we u aan geo-replicatie van uw App Configuration-archief in te schakelen . U kunt uw toepassing voornamelijk verbinding laten maken met de replica die overeenkomt met de regio waar exemplaren van uw toepassing worden geïmplementeerd en toestaan dat er een failover naar replica's in andere regio's wordt uitgevoerd. Met deze installatie wordt de latentie tussen uw toepassing en App Configuration geminimaliseerd, wordt de belasting verdeeld, omdat elke replica afzonderlijke beperkingsquota heeft en de tolerantie van uw toepassing verbetert tegen tijdelijke en regionale storingen. Zie Tolerantie en herstel na noodgevallen voor meer informatie.
Toepassingen bouwen met hoge tolerantie
Toepassingen zijn vaak afhankelijk van de configuratie om te beginnen, waardoor de hoge beschikbaarheid van Azure App Configuration essentieel is. Voor verbeterde tolerantie moeten toepassingen de betrouwbaarheidsfuncties van App Configuration gebruiken en overwegen de volgende maatregelen te nemen op basis van uw specifieke vereisten.
- Implementeren in regio's met ondersteuning voor Azure-beschikbaarheidszones. Met beschikbaarheidszones kunnen toepassingen bestand zijn tegen storingen in datacenters. App Configuration biedt zoneredundantie voor alle klanten zonder extra kosten. Het wordt aanbevolen om uw App Configuration-opslag te maken in regio's die beschikbaarheidszones ondersteunen. U vindt een lijst met regio's waarvoor ondersteuning voor de beschikbaarheidszone door App Configuration is ingeschakeld.
- Schakel geo-replicatie in en sta toe dat uw toepassing failovers uitvoert of de belasting over replica's distribueert. Deze installatie biedt u een model voor schaalbaarheid en verbeterde tolerantie tegen tijdelijke storingen en regionale storingen. Zie Tolerantie en herstel na noodgevallen voor meer informatie.
- Implementeer configuratie met veilige implementatieprocedures. Onjuiste of onbedoelde configuratiewijzigingen kunnen vaak uitvaltijd van toepassingen veroorzaken. U moet voorkomen dat u configuratiewijzigingen aanbrengt die rechtstreeks van invloed zijn op de productie vanuit azure Portal, bijvoorbeeld wanneer dat mogelijk is. In veilige implementatieprocedures (SDP) gebruikt u een progressief implementatiemodel voor blootstelling om de potentiële straal van door de implementatie veroorzaakte problemen te minimaliseren. Als u SDP gebruikt, kunt u een momentopname van een configuratie bouwen en testen voordat u deze implementeert in productie. Tijdens de implementatie kunt u exemplaren van uw toepassing bijwerken om de nieuwe momentopname geleidelijk op te halen. Als er problemen zijn gedetecteerd, kunt u de wijziging terugdraaien door de laatst bekende goede snapshot (LKG) te herimplementeren. De momentopname is onveranderbaar en garandeert consistentie in alle implementaties. U kunt momentopnamen samen met dynamische configuratie gebruiken. Gebruik een snapshot voor uw basisconfiguratie en dynamische configuratie voor noodwijzigingen en functievlaggen.
- Neem de configuratie op in uw toepassing. Als u ervoor wilt zorgen dat uw toepassing altijd toegang heeft tot een kopie van de configuratie, of als u liever een runtime-afhankelijkheid van App Configuration vermijdt, kunt u de configuratie ophalen uit App Configuration tijdens de build- of releasetijd en deze opnemen in uw toepassing. Bekijk voor meer informatie voorbeelden van het integreren van App Configuration met uw CI/CD-pijplijn of Kubernetes-implementatie.
- App Configuration-providers gebruiken. Toepassingen spelen een belangrijke rol bij het bereiken van hoge tolerantie, omdat ze rekening kunnen houden met problemen die zich voordoen tijdens hun runtime, zoals netwerkproblemen, en sneller kunnen reageren op fouten. De App Configuration-providers bieden een reeks ingebouwde tolerantiefuncties, waaronder automatische replicadetectie, replicafailover, opstartherhalingen met aanpasbare time-outs, configuratiecaching en adaptieve strategieën voor betrouwbare configuratievernieuwing. Het wordt ten zeerste aanbevolen om App Configuration-providers te gebruiken om te profiteren van deze functies. Als dit geen optie is, moet u overwegen vergelijkbare functies in uw aangepaste oplossing te implementeren om het hoogste tolerantieniveau te bereiken.
Clienttoepassingen in App Configuration
Wanneer u App Configuration gebruikt in clienttoepassingen, moet u rekening houden met twee belangrijke factoren. Als u de verbindingsreeks in een clienttoepassing gebruikt, riskeert u dat de toegangssleutel van uw App Configuration-archief wordt blootgesteld aan het publiek. Ten tweede kan de typische schaal van een clienttoepassing leiden tot overmatige aanvragen voor uw App Configuration-opslag, wat kan resulteren in overschrijdingskosten of beperkingen. Zie de veelgestelde vragen voor meer informatie over trafic regulatie.
Om deze problemen op te lossen, raden we u aan een proxyservice te gebruiken tussen uw clienttoepassingen en uw App Configuration-archief. De proxyservice kan zich veilig authenticeren met uw App Configuration-archief zonder dat het risico bestaat dat authenticatie-informatie uitlekt. U kunt een proxyservice bouwen met behulp van een van de App Configuration-providerbibliotheken, zodat u kunt profiteren van ingebouwde caching- en vernieuwingsmogelijkheden voor het optimaliseren van het aantal aanvragen dat naar App Configuration wordt verzonden. Voor meer informatie over het gebruik van App Configuration-providers, zie de artikelen in Snelstartgidsen en Tutorials. De proxyservice levert de configuratie uit zijn cache aan uw clientapplicaties en u voorkomt de twee mogelijke problemen die in deze sectie worden behandeld.
Multitenant-toepassingen in App Configuration
Een multitenant-toepassing is gebouwd op een architectuur waarin een gedeeld exemplaar van uw toepassing meerdere klanten of tenants bedient. U hebt bijvoorbeeld een e-mailservice die uw gebruikers afzonderlijke accounts en aangepaste ervaringen biedt. Uw toepassing beheert meestal verschillende configuraties voor elke tenant. Hier volgen enkele architecturale overwegingen voor het gebruik van App Configuration in een multitenant-toepassing. U kunt ook verwijzen naar de voorbeeldcode voor het instellen van multitenant-toepassingen.
Configuratie als code
Configuratie als code is een praktijk van het beheren van configuratiebestanden onder uw broncodebeheersysteem, bijvoorbeeld een Git-opslagplaats. Het biedt u voordelen, zoals traceerbaarheid en goedkeuringsproces voor eventuele configuratiewijzigingen. Als u configuratie als code gebruikt, beschikt App Configuration over hulpprogramma's om u te helpen bij het beheren van uw configuratiegegevens in bestanden en het implementeren ervan als onderdeel van uw build-, release- of CI/CD-proces. Op deze manier hebben uw toepassingen toegang tot de meest recente gegevens uit uw App Configuration-archief.
- Voor GitHub kunt u configuratiebestanden uit uw GitHub-opslagplaats importeren in uw App Configuration-archief met behulp van GitHub Actions
- Voor Azure DevOps kunt u het Importeren van Azure App Configuration, een Azure-pijplijntaak, opnemen in uw build- of release-pijplijnen voor gegevenssynchronisatie.
- Voor anderen kunt u configuratiebestanden importeren in App Configuration met behulp van Azure CLI als onderdeel van uw CI/CD-systeem. Zie az appconfig kv import voor meer informatie.
Met dit model kunt u validatie- en teststappen opnemen voordat u gegevens doorvoert in App Configuration. Als u meerdere App Configuration-archieven gebruikt, kunt u de configuratiegegevens ook incrementeel of allemaal tegelijk naar deze opslag pushen.