Sleutels en waarden

Azure App Configuration worden configuratiegegevens opgeslagen als sleutelwaarden. Sleutelwaarden zijn een eenvoudige en flexibele weergave van toepassingsinstellingen die door ontwikkelaars worden gebruikt.

Sleutels

Sleutels dienen als id's voor sleutelwaarden en worden gebruikt om bijbehorende waarden op te slaan en op te halen. Het is gebruikelijk om sleutels in een hiërarchische naamruimte te organiseren met behulp van een tekenscheidingsteken, zoals / of :. Gebruik een conventie die het meest geschikt is voor uw toepassing. Voor App Configuration zijn sleutels een op zichzelf staand object. Er worden geen sleutels geparseerd om erachter te komen hoe hun namen zijn gestructureerd en er wordt geen regel op afgedwongen.

Hier volgt een voorbeeld van sleutelnamen die zijn gestructureerd in een hiërarchie op basis van onderdeelservices:

    AppName:Service1:ApiEndpoint
    AppName:Service2:ApiEndpoint

Het gebruik van configuratiegegevens binnen toepassingsframeworks kan specifieke naamgevingsschema's voor sleutelwaarden dicteren. Het Spring Cloud-framework van Java definieert Environment bijvoorbeeld resources die instellingen leveren aan een Spring-toepassing. Deze resources worden geparameteriseerd door variabelen die de toepassingsnaam en het profiel bevatten. Sleutels voor aan Spring Cloud gerelateerde configuratiegegevens beginnen doorgaans met deze twee elementen, gescheiden door een scheidingsteken.

Sleutels die zijn opgeslagen in App Configuration zijn hoofdlettergevoelige tekenreeksen, op basis van Unicode. De sleutels app1 en App1 zijn verschillend in een App Configuration Store. Houd hier rekening mee wanneer u configuratie-instellingen binnen een toepassing gebruikt, omdat sommige frameworks niet hoofdlettergevoelig omgaan met configuratiesleutels. Het wordt afgeraden om hoofdlettergebruik te gebruiken om onderscheid te maken tussen sleutels.

U kunt elk unicode-teken gebruiken in sleutelnamen, met uitzondering van %. Een sleutelnaam kan niet . of .. zijn. Er is een gecombineerde groottelimiet van 10 kB voor een sleutelwaarde. Deze limiet omvat alle tekens in de sleutel, de waarde en alle bijbehorende optionele kenmerken. Binnen deze limiet kunt u veel niveaus voor sleutels gebruiken.

Sleutelnaamruimten ontwerpen

Er worden twee algemene benaderingen voor het benoemen van sleutels gebruikt voor configuratiegegevens: plat of hiërarchisch. Deze methoden zijn vergelijkbaar vanuit het oogpunt van toepassingsgebruik, maar hiërarchische naamgeving biedt veel voordelen:

  • Eenvoudiger te lezen. Scheidingstekens in een hiërarchische sleutelnaam fungeren als spaties in een zin. Ze bieden ook natuurlijke onderbrekingen tussen woorden.
  • Eenvoudiger te beheren. Een hiërarchie voor sleutelnamen vertegenwoordigt logische groepen van configuratiegegevens.
  • Eenvoudiger te gebruiken. Het is eenvoudiger om een query te schrijven die het patroon volgt van sleutels in een hiërarchische structuur, om zo slechts een gedeelte van de configuratiegegevens op te halen. Veel nieuwere programmeerframeworks bieden ook systeemeigen ondersteuning voor hiërarchische configuratiegegevens, zodat uw toepassing gebruik kan maken van specifieke configuratiesets.

U kunt sleutels in App Configuration op allerlei manieren hiërarchisch indelen. Denk aan dergelijke sleutels als URI's. Elke hiërarchische sleutel is een resourcepad dat bestaat uit een of meer onderdelen die met elkaar zijn verbonden door scheidingstekens. Kies welk teken u als scheidingsteken wilt gebruiken op basis van wat uw toepassing, programmeertaal of framework nodig heeft. Gebruik meerdere scheidingstekens voor verschillende sleutels in App Configuration.

Labeltoetsen

Sleutelwaarden kunnen in App Configuration optioneel een kenmerk label hebben. Labels worden gebruikt om onderscheid te maken tussen sleutelwaarden met dezelfde sleutel. Een sleutel-app1 met de labels A en B vormt twee afzonderlijke sleutels in een App Configuration store. Een sleutelwaarde heeft standaard geen label. Als u expliciet wilt verwijzen naar een sleutelwaarde zonder label, gebruikt \0 u (URL gecodeerd als %00).

Label biedt een handige manier om varianten van een sleutel te maken. Labels worden vaak gebruikt om meerdere omgevingen voor dezelfde sleutel op te geven:

    Key = AppName:DbEndpoint & Label = Test
    Key = AppName:DbEndpoint & Label = Staging
    Key = AppName:DbEndpoint & Label = Production

Versiesleutelwaarden

Gebruik labels als een manier om meerdere versies van een sleutelwaarde te maken. Zo kunt u bijvoorbeeld een versienummer van de toepassing of een id van de Git-commit als label toevoegen om sleutelwaarden te identificeren die zijn gekoppeld aan een bepaalde software-build.

Notitie

Als u op zoek bent naar wijzigingsversies, bewaart App Configuration automatisch alle wijzigingen van een sleutelwaarde die zijn opgetreden in de afgelopen bepaalde periode. Zie Momentopname van een bepaald tijdstip voor meer informatie.

Sleutelwaarden opvragen

Elke sleutelwaarde is uniek te identificeren met de sleutel en een label, welke ook \0 kan zijn. U kunt een query uitvoeren op een App Configuration-archief voor sleutelwaarden door een patroon op te geven. Het App Configuration archief retourneert alle sleutelwaarden die overeenkomen met het patroon, inclusief de bijbehorende waarden en kenmerken. Gebruik de volgende belangrijke patronen in REST API-aanroepen om te App Configuration:

Sleutel Beschrijving
key wordt weggelaten of key=* Komt overeen met alle sleutels.
key=abc Komt exact overeen met de sleutelnaam abc .
key=abc* Komt overeen met sleutelnamen die beginnen met abc.
key=abc,xyz Komt overeen met sleutelnamen abc of xyz. Beperkt tot vijf CSV's.

U kunt ook de volgende labelpatronen opnemen:

Label Description
label wordt weggelaten of label=* Komt overeen met elk label, waaronder \0.
label=%00 Komt overeen met label \0.
label=1.0.0 Komt exact overeen met het label 1.0.0 .
label=1.0.* Komt overeen met labels die beginnen met 1.0..
label=%00,1.0.0 Komt overeen met labels \0 of 1.0.0, beperkt tot vijf CSV's.

Notitie

*, ,en \ zijn gereserveerde tekens in query's. Als een gereserveerd teken wordt gebruikt in uw sleutelnamen of labels, moet u deze escapen met behulp van \{Reserved Character} in query's.

Waarden

Waarden die zijn toegewezen aan sleutels zijn ook Unicode-tekenreeksen. U kunt alle Unicode-tekens gebruiken voor waarden.

Inhoudstype gebruiken

Elke sleutelwaarde in App Configuration heeft een inhoudstypekenmerk. U kunt dit kenmerk desgewenst gebruiken om informatie over het type waarde op te slaan in een sleutelwaarde waarmee uw toepassing deze correct kan verwerken. U kunt elke indeling voor het inhoudstype gebruiken. App Configuration gebruikt mediatypen (ook wel MIME-typen genoemd) voor ingebouwde gegevenstypen, zoals functievlagmen, Key Vault verwijzingen en JSON-sleutelwaarden.

Volgende stappen