Teilen über


Schlüssel und Werte

Die Azure App-Konfiguration speichert Konfigurationsdaten als Schlüsselwerte. Schlüsselwerte sind eine einfache und flexible Darstellung von Anwendungseinstellungen, die von Entwicklern verwendet werden.

Schlüssel

Schlüssel dienen als Bezeichner für Schlüsselwerte und werden zum Speichern und Abrufen entsprechender Werte verwendet. Es ist eine häufige Vorgehensweise, Schlüssel mit einem Trennzeichen (z. B. / oder :) in einem hierarchischen Namespace zu organisieren. Verwenden Sie eine Konvention, die am besten für Ihre Anwendung geeignet ist. Die App-Konfiguration behandelt Schlüssel als Ganzes. Es analysiert keine Schlüssel, um herauszufinden, wie ihre Namen strukturiert sind, noch wendet es irgendeine Regel auf sie an.

Hier sehen Sie ein Beispiel für Schlüsselnamen in einer Hierarchiestruktur, die auf Komponentendiensten basiert:

    AppName:Service1:ApiEndpoint
    AppName:Service2:ApiEndpoint

Bei Verwendung von Konfigurationsdaten in Anwendungsframeworks sind möglicherweise bestimmte Benennungsschemas für Schlüssel-Wert-Paare vorgegeben. Beispielsweise definiert das Spring Cloud-Framework von Java Environment-Ressourcen, die Einstellungen für eine Spring-Anwendung bereitstellen. Diese Ressourcen werden durch Variablen parametrisiert, die den Anwendungsnamen und das Profil enthalten. Schlüssel für Spring Cloud-bezogene Konfigurationsdaten beginnen normalerweise mit diesen beiden Elementen, die durch ein Trennzeichen getrennt sind.

Für in App Configuration gespeicherte Schlüssel wird die Groß-/Kleinschreibung beachtet, und es handelt sich um Unicode-basierte Zeichenfolgen. Die Schlüssel "app1 " und "App1 " unterscheiden sich in einem App-Konfigurationsspeicher. Beachten Sie dies, wenn Sie in einer Anwendung Konfigurationseinstellungen verwenden, da für Konfigurationsschlüssel in einigen Frameworks die Groß-/Kleinschreibung nicht beachtet wird. Schlüssel sollten nicht durch Groß-/Kleinschreibung unterschieden werden.

Sie können ein beliebiges Unicode-Zeichen in Schlüsselnamen verwenden, mit Ausnahme von %. Ein Schlüsselname kann weder . noch .. sein. Es gibt eine kombinierte Größenbeschränkung von 10 KB für einen Schlüsselwert. Dieser Grenzwert umfasst alle Zeichen im Schlüssel, seinen Wert und alle zugehörigen optionalen Attribute. Innerhalb dieses Grenzwerts können Sie viele hierarchische Ebenen für Schlüssel haben.

Design-Schlüssel-Namespaces

Zwei allgemeine Ansätze für die Benennung von Schlüsseln werden für Konfigurationsdaten verwendet: flach oder hierarchisch. Vom Standpunkt der Anwendungsnutzung aus gesehen sind diese Methoden ähnlich, aber die hierarchische Benennung bietet viele Vorteile:

  • Einfacher zu lesen. Trennzeichen in hierarchischen Schlüsselnamen fungieren wie Leerzeichen in einem Satz. Sie stellen auch natürliche Umbrüche zwischen Wörtern bereit.
  • Einfacher zu verwalten. Eine Schlüsselnamenhierarchie stellt logische Gruppen von Konfigurationsdaten dar.
  • Einfacher zu verwenden. Es ist einfacher, eine Abfrage zu schreiben, die Schlüssel per Muster in einer hierarchischen Struktur abgleicht und nur einen Teil der Konfigurationsdaten abruft. Außerdem verfügen viele neuere Programmierframeworks über systemeigene Unterstützung für hierarchische Konfigurationsdaten, sodass Ihre Anwendung bestimmte Konfigurationsgruppen verwenden kann.

Sie können Schlüssel in der App-Konfiguration hierarchisch auf vielfältige Weise organisieren. Stellen Sie sich solche Schlüssel wie URIs vor. Jeder hierarchische Schlüssel ist ein Ressourcenpfad , der aus einer oder mehreren Komponenten besteht, die durch Trennzeichen miteinander verbunden sind. Wählen Sie aus, welches Zeichen als Trennzeichen verwendet werden soll, basierend auf den Anforderungen Ihrer Anwendung, Programmiersprache oder des Frameworks. Verwenden Sie mehrere Trennzeichen für verschiedene Schlüssel in der App-Konfiguration.

Labelschlüssel

Schlüsselwerte in App Configuration können optional über das Attribut label (Bezeichnung) verfügen. Bezeichnungen werden genutzt, um zwischen Schlüsselwerten mit demselben Schlüssel zu unterscheiden. Eine Schlüssel app1 mit den Beschriftungen A und B bildet zwei separate Schlüssel in einem App-Konfigurationsspeicher. Standardmäßig weist ein Schlüssel-Wert-Paar keine Bezeichnung auf. Verwenden Sie \0 (URL-codiert als %00), um explizit auf ein Schlüssel-Wert-Paar ohne Bezeichnung zu verweisen.

Ein Label bietet eine bequeme Möglichkeit, Varianten eines Schlüssels zu erstellen. Eine häufige Verwendung von Bezeichnungen besteht darin, mehrere Umgebungen für denselben Schlüssel anzugeben:

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

Versionsschlüsselwerte

Verwenden Sie Bezeichnungen als Möglichkeit, mehrere Versionen eines Schlüsselwerts zu erstellen. Sie können beispielsweise eine Anwendungsversionsnummer oder eine Git-Commit-ID in Bezeichnungen eingeben, um Schlüsselwerte zu identifizieren, die einem bestimmten Softwarebuild zugeordnet sind.

Hinweis

Wenn Sie nach Änderungsversionen suchen, speichert App Configuration alle Änderungen eines Schlüsselwerts, die in einem bestimmten Zeitraum aufgetreten sind. Weitere Informationen finden Sie unter Point-in-Time Snapshot.

Abfragen von Schlüssel-Wert-Paaren

Jeder Schlüsselwert wird anhand seines Schlüssels und einer Bezeichnung, die auch \0 lauten kann, eindeutig identifiziert. Sie können einen App Configuration-Speicher auf Schlüssel-Wert-Paare abfragen, indem Sie ein Muster angeben. Der App Configuration-Speicher gibt alle Schlüssel-Wert-Paare zurück, die mit dem Muster und den entsprechenden Werten und Attributen übereinstimmen. Verwenden Sie die folgenden Schlüsselmuster in REST-API-Aufrufen für die App-Konfiguration:

Schlüssel BESCHREIBUNG
key wird weggelassen oder key=* Passt zu allen Schlüsseln.
key=abc Entspricht exakt dem Schlüsselnamen abc .
key=abc* Schlüsselbezeichnungen, die mit abc beginnen, abgleichen.
key=abc,xyz Entspricht den Schlüsselnamen abc oder xyz. Beschränkt auf fünf CSVs.

Sie können auch die folgenden Bezeichnungsmuster einschließen:

Etikett BESCHREIBUNG
label wird weggelassen oder label=* Passt zu jedem Etikett, einschließlich \0.
label=%00 Übereinstimmung mit der Bezeichnung \0.
label=1.0.0 Exakte Übereinstimmung mit der Bezeichnung 1.0.0.
label=1.0.* Entspricht Bezeichnungen, die mit 1.0. beginnen.
label=%00,1.0.0 Übereinstimmung mit den Bezeichnungen \0 oder 1.0.0 auf fünf CSVs beschränkt.

Hinweis

*, ,und \ sind reservierte Zeichen in Abfragen. Wenn ein reserviertes Zeichen in Ihren Schlüsselnamen oder Bezeichnungen verwendet wird, müssen Sie diese in Abfragen mit dem Escapezeichen \{Reserved Character} versehen.

Werte

Bei Werten, die Schlüsseln zugewiesen sind, handelt es sich ebenfalls um Unicode-Zeichenfolgen. Sie können alle Unicode-Zeichen für Werte verwenden.

Inhaltstyp verwenden

Jeder Schlüsselwert in der App-Konfiguration weist ein Inhaltstyp-Attribut auf. Sie können dieses Attribut optional verwenden, um Informationen über den Typ des Werts in einem Schlüsselwert zu speichern, der Ihrer Anwendung hilft, sie ordnungsgemäß zu verarbeiten. Sie können ein beliebiges Format für den Inhaltstyp verwenden. Die App-Konfiguration verwendet Medientypen (auch als MIME-Typen bezeichnet) für integrierte Datentypen wie Featurekennzeichnungen, Key Vault-Verweise und JSON-Schlüsselwerte.

Nächste Schritte