Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Snapshot-Referenzen sind spezielle Schlüssel-Werte, die auf eine bestimmte Momentaufnahme in einem App-Konfigurationsspeicher verweisen. Sie ermöglichen es Ihnen, die Sicherheit der unveränderlichen Konfiguration (Snapshots) mit der Flexibilität zu kombinieren, zur Laufzeit dynamisch zu bestimmen, welchen Snapshot eine Anwendung verwendet.
Bei der direkten Momentaufnahmeverwendung wählt eine Anwendung eine Momentaufnahme anhand des Namens im Code aus. Das Ändern der zielbezogenen Momentaufnahme erfordert eine neue Bereitstellungs- oder Konfigurationsänderung im Codepfad, der die Konfiguration erstellt. Snapshotverweise entfernen diese Einschränkung: Sie laden einen Referenzschlüsselwert einmal, und wenn sich der Name der Zielmomentaufnahme später ändert, laden Konfigurationsanbieter die Konfiguration automatisch in den neuen unveränderlichen Satz neu.
Warum Snapshotverweise verwenden?
Snapshot-Referenzen bieten Folgendes:
- Einfache Updates: Aktualisieren Sie die referenzierte Momentaufnahme, ohne den Anwendungscode zu berühren, auch während der Laufzeit.
- Unveränderliche Konfigurationssätze: Jede Momentaufnahme bleibt unverändert, wobei Auditierbarkeit und Rollbackgarantien erhalten bleiben.
Funktionsweise
Ein Momentaufnahmeverweis wird als Schlüsselwert gespeichert, dessen Wert den Namen der zu verwendenden Momentaufnahme enthält. Wenn ein Konfigurationsanbieter Schlüsselwerte lädt, werden alle Snapshot-Verweise zwischen den ausgewählten Elementen automatisch aufgelöst. Die Schlüsselwerte der referenzierten Momentaufnahme werden in die Konfiguration der Anwendung zusammengeführt. Wenn sich der Verweis auf eine andere Momentaufnahme ändert, führt die Aktualisierung des Konfigurationsanbieters dazu, dass die Inhalte der neuen Momentaufnahme geladen werden.
Hinweis
Sie müssen keine spezielle API aufrufen, um Snapshotverweise zu aktivieren. Wenn Sie den Schlüsselwert auswählen, der eine Snapshot-Referenz ist, erfolgt die Auflösung automatisch.
Erstellen einer Snapshot-Referenz
- Öffnen Sie Ihren App-Konfigurationsspeicher im Azure-Portal.
- Wählen Sie Konfigurations-Explorer aus.
- Klicken Sie auf Erstellen.
- Wählen Sie Momentaufnahme-Referenz aus.
- Geben Sie einen Schlüssel für den Verweis ein. Legen Sie optional eine Bezeichnung fest.
- Wählen Sie den Zielmomentaufnahmenamen aus der Liste aus (oder geben Sie ihn ein).
- Wählen Sie "Erstellen" aus.
Nach der Erstellung wird der Snapshotverweis zusammen mit anderen Schlüsselwerten im Konfigurations-Explorer angezeigt.
Verbrauch von Snapshot-Verweise
Es ist kein neuer Code erforderlich, um einen Momentaufnahmeverweis zu verwenden. Wenn ein Schlüssel für eine Momentaufnahme-Verweis Teil der ausgewählten Schlüsselwerte beim Erstellen der Konfiguration ist, löst der Anbieter automatisch diesen auf und lädt die Schlüsselwerte der referenzierten Momentaufnahme. Vergleichen Sie dies mit der direkten Nutzung von Snapshots, bei der Sie explizit eine API wie SelectSnapshot("SnapshotName") aufrufen und die Auswahl der Snapshot-Option beim Start festlegen, sodass ein späterer Wechsel eine Codeänderung oder eine erneute Bereitstellung erfordert.
Verhalten bei Aktualisierung
Wenn die Aktualisierung konfiguriert ist, führt das Ändern des Ziel-Snapshot-Namens in einem Snapshot-Verweis dazu, dass die Anwendung nahtlos die neue Snapshot verwendet.
- Die Anwendung wird gestartet.
- Der Konfigurationsanbieter ruft ausgewählte Schlüssel-Werte ab, einschließlich eines Snapshots.
- Der Konfigurationsanbieter löst den Verweis auf Snapshot
Snapshot_Aauf und lädt deren Schlüssel-Werte. - Der Verweis auf die Momentaufnahme wird aktualisiert, um auf
Snapshot_Bzu verweisen (immer noch unveränderlich). - Der Konfigurationsanbieter erkennt, dass sich der Snapshotverweisschlüsselwert geändert hat.
- Der Konfigurationsanbieter wird erneut aufgelöst. Die Schlüsselwerte von
Snapshot_Awerden entladen. Die Konfiguration wird neu geladen und liefert die Schlüssel-Werte vonSnapshot_B.
Hinweis
Bei dieser Sequenz wird davon ausgegangen, dass Sie die Aktualisierung für Ihre Anwendung konfiguriert haben. Ausführliche Informationen zum Konfigurieren der Aktualisierung finden Sie in der dynamischen Konfiguration.
Beispiel für eine Momentaufnahmereferenz
Im folgenden Beispiel wird eine Snapshot-Referenz gezeigt.
{
"key": "app1/snapshot-reference",
"value": "{\"snapshot_name\":\"referenced-snapshot\"}",
"content_type": "application/json; profile=\"https://azconfig.io/mime-profiles/snapshot-ref\"; charset=utf-8",
"tags": {}
}
Wie bereits erwähnt, ist ein Snapshotverweis ein normaler Schlüsselwert mit einigen zusätzlichen Einschränkungen. Konfigurationsanbieter identifizieren Schnappschussverweise anhand ihres spezifischen Inhaltstyps. Der Wert eines Momentaufnahmeverweises ist ein JSON-Objekt mit einer Namenseigenschaft, die auf die Zielmomentaufnahme verweist.
Snapshot-Referenzinhaltstyp: application/json; profile="https://azconfig.io/mime-profiles/snapshot-ref"; charset=utf-8
Wichtige Konfliktlösung
Referenzierte Momentaufnahmen können Schlüssel enthalten, die mit normalen Schlüsselwerten, die sich außerhalb einer Momentaufnahme befinden, in Konflikt stehen. Konfigurationsanbieter lösen diese Konflikte mithilfe des Werts des zuletzt gesehenen Schlüssels. Im Falle von Momentaufnahmen ist die lexikographische Anordnung des Momentaufnahmebezugsschlüssels ein wichtiges Detail, wenn der ultimative Wert eines bestimmten Schlüssels berücksichtigt wird, wenn Konflikte auftreten.
Vereinfachtes Beispiel
Gehen Sie davon aus, dass Ihr Laden über diese normalen Schlüssel-Werte verfügt:
key: message
value: hello-world
key: request-limit
value: 100
Eine Momentaufnahme, die Folgendes enthält:
key: message
value: bye
key: request-limit
value: 8000
Wenn ein Snapshotverweis hinzugefügt wird, der auf die oben genannte Momentaufnahme verweist, hängt die endgültige effektive Konfiguration von der lexikographischen Position des Momentaufnahmeschlüssels ab:
| Momentaufnahmeverweisschlüssel | lexikographische Position vs message, request-limit |
Endgültiger message Wert |
Endgültiger request-limit Wert |
Warum |
|---|---|---|---|---|
a-snapshot-reference |
Vor beiden | Hello-World | 100 | Der Snapshotverweis wird zuerst aufgelöst; normale Schlüssel überschreiben später ihre Duplikate. |
my-snapshot-reference |
Nach message , aber vor request-limit |
Auf Wiedersehen | 100 |
message wird zuerst gesehen. Der Snapshotverweis wird dann aufgelöst und außer Kraft gesetzt message. Schließlich überschreibt der normale request-limit-Wert den request-limit-Wert des Snapshots. |
some-snapshot-reference |
Nach beiden Ereignissen | Auf Wiedersehen | 8.000 | Der Momentaufnahmeverweis wird zuletzt aufgelöst; seine Werte überschreiben frühere Duplikate. |
Überlegungen und Randfälle
- Fehlende Zielmomentaufnahme: Wenn der Verweis auf einen Momentaufnahmenamen verweist, der nicht vorhanden ist oder über die Aufbewahrung hinaus archiviert wird, ignoriert der Anbieter den Verweis.
- Keine transitive Auflösung: Wenn eine referenzierte Momentaufnahme einen Schlüsselwert enthält, der selbst ein Momentaufnahmeverweis ist, wird dieser innere Verweis nicht aufgelöst.
- Zugriffssteuerung: Das Lesen einer Momentaufnahme über einen Verweis erfordert Snapshot-Leseberechtigungen, ähnlich wie das direkte Lesen einer Momentaufnahme.
- Aufbewahrung/Archivierung: Seien Sie vorsichtig beim Verweisen auf archivierte Momentaufnahmen, da die App nach Ablauf der Momentaufnahme nicht mehr auf die enthaltene Konfiguration zugreifen kann.
Verfügbare Sprachen
| Language | Mindestversion /Status |
|---|---|
| .NET | 8.4.0+ |
| Java | Arbeiten in Bearbeitung |
| JavaScript | Arbeiten in Bearbeitung |
| Python | Arbeiten in Bearbeitung |
| Go | Arbeiten in Bearbeitung |
Nächste Schritte
Tiefere Hintergrundinformationen finden Sie in der Übersicht über Momentaufnahmen.