Delen via


Sleutels en waarden

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

Sleutels

Sleutels fungeren als id's voor sleutelwaarden en worden gebruikt om overeenkomende waarden op te slaan en op te halen. Het is gebruikelijk om sleutels te ordenen in een hiërarchische naamruimte 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 of om regels af te dwingen.

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 in 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 naam en het profiel van de toepassing bevatten. Sleutels voor Spring Cloud-gerelateerde configuratiegegevens beginnen meestal 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-configuratie-opslagplaats. Houd er rekening mee dat wanneer u configuratie-instellingen binnen een toepassing gebruikt, omdat sommige frameworks hoofdlettergevoelig omgaan met configuratiesleutels. We raden u niet aan om gebruik te maken van hoofdlettergevoeligheid om onderscheid tussen toetsen te maken.

U kunt elk Unicode-teken in sleutelnamen gebruiken, met uitzondering van %. Een sleutelnaam kan ook 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 naamgevingssleutels 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 werken als spaties in een zin. Ze bieden ook natuurlijke pauzes 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 veel manieren hiërarchisch organiseren. Denk aan sleutels als URI's. Elke hiërarchische sleutel is een resourcepad dat bestaat uit een of meer onderdelen die zijn samengevoegd 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.

Label sleutels

Sleutelwaarden kunnen in App Configuration optioneel een kenmerk label hebben. Labels worden gebruikt om onderscheid te maken tussen sleutelwaarden met dezelfde sleutel. Een sleutelapp1 met labels A en B vormt twee afzonderlijke sleutels in een App Configuration-opslag. 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. Een veelvoorkomend gebruik van labels is het opgeven van meerdere omgevingen voor dezelfde sleutel:

    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. U kunt bijvoorbeeld een versienummer van een toepassing of een Git-doorvoer-id invoeren in labels om sleutelwaarden te identificeren die zijn gekoppeld aan een bepaalde software-build.

Opmerking

Als u op zoek bent naar wijzigingsversies, bewaart App Configuration alle wijzigingen van een sleutelwaarde die zich in de afgelopen bepaalde periode automatisch heeft voorgedaan. 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 naar App Configuration:

Sleutelcode 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:

Etiket Beschrijving
label wordt weggelaten of label=* Komt overeen met elk label, inclusief \0.
label=%00 Komt overeen met \0 label.
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.

Opmerking

*, ,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} 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 op te slaan over het type waarde in een sleutelwaarde waarmee uw toepassing deze correct kan verwerken. U kunt elke indeling gebruiken voor het inhoudstype. App Configuration maakt gebruik van mediatypen (ook wel MIME-typen genoemd) voor ingebouwde gegevenstypen, zoals functievlagken, Key Vault-verwijzingen en JSON-sleutelwaarden.

Volgende stappen