Udostępnij przez


Odwołania do migawek

Odwołania do migawek to specjalne kluczowe wartości, które wskazują na określoną migawkę w magazynie App Configuration. Umożliwiają one połączenie bezpieczeństwa niezmiennej konfiguracji (migawek) z elastycznością dynamicznego zmieniania, którą migawkę aplikacja wykorzystuje podczas działania.

W przypadku bezpośredniego użycia migawki aplikacja wybiera migawkę według nazwy w kodzie. Zmiana docelowej migawki wymaga zmiany wdrożenia lub konfiguracji w ścieżce kodu, która kompiluje konfigurację. Odwołania do migawek usuwają to ograniczenie: raz załadujesz wartość klucza odniesienia, a jego docelowa nazwa migawki zmieni się później, dostawcy konfiguracji automatycznie ponownie załaduj konfigurację do nowego zestawu niezmiennego.

Dlaczego warto używać odwołań do migawek?

Odwołania do migawek zapewniają:

  • Łatwe aktualizacje: zaktualizuj przywołyną migawkę bez dotykania kodu aplikacji, nawet w czasie wykonywania.
  • Niezmienne zestawy konfiguracji: każda migawka pozostaje niezmieniona, zachowując gwarancje audytowalności i odwracalności.

Jak działają

Odwołanie do migawki jest przechowywane jako wartość klucza, którego wartość zawiera nazwę migawki do użycia. Gdy dostawca konfiguracji ładuje pary klucz-wartość, wszystkie odwołania do snapshotów między wybranymi elementami są automatycznie rozwiązywane. Przywoływane wartości kluczowe migawki są łączone z konfiguracją aplikacji. Jeśli wskaźnik zmieni się tak, aby wskazywał na inną migawkę, odświeżenie dostawcy konfiguracji spowoduje załadowanie zawartości nowej migawki.

Uwaga / Notatka

Nie musisz wywoływać wyspecjalizowanego interfejsu API, aby wyrazić zgodę na odwołania do migawek. Jeśli wybierzesz wartość klucza, która jest odwołaniem do migawki, rozwiązanie jest automatyczne.

Tworzenie odniesienia do zrzutu

  1. Otwórz sklep App Configuration w witrynie Azure Portal.
  2. Wybierz pozycję Eksplorator konfiguracji.
  3. Wybierz pozycję Utwórz.
  4. Wybierz Odniesienie migawki.
  5. Wprowadź klucz referencyjny. Jeśli chcesz, ustaw etykietę.
  6. Wybierz docelową nazwę migawki z listy (lub wprowadź ją).
  7. Wybierz Utwórz.

Po utworzeniu odwołanie do migawki zostanie wyświetlone wraz z innymi kluczami-wartościami w Eksploratorze konfiguracji.

Konsumpcja odwołań do migawki

Do korzystania z odwołania do migawki nie jest wymagany żaden nowy kod. Jeśli klucz odwołania do migawki jest częścią wybranych wartości klucza podczas kompilowania konfiguracji, dostawca automatycznie rozpoznaje i ładuje przywołyną wartość klucza migawki. Porównaj to z bezpośrednim użyciem zrzutu, w którym jawnie wywołujesz interfejs API, taki jak SelectSnapshot("SnapshotName"), utrwalając wybór zrzutu podczas uruchomienia, co oznacza, że późniejsze przełączanie wymaga zmiany kodu lub ponownego wdrożenia.

Zachowanie odświeżania

Gdy odświeżanie jest skonfigurowane, zmieniając nazwę docelowej migawki w odwołaniu migawki, bez problemu przełącza aplikację na użycie nowej migawki.

  1. Aplikacja zostanie uruchomiona.
  2. Dostawca konfiguracji pobiera wybrane wartości kluczy, w tym referencję do migawki.
  3. Dostawca konfiguracji rozpoznaje odwołanie do migawki Snapshot_A i ładuje jego klucz-wartości.
  4. Odwołanie do migawki zostaje zaktualizowane, aby wskazywać Snapshot_B (nadal niezmienne).
  5. Dostawca konfiguracji wykrywa, że zmieniły się wartości klucza referencyjnego dla migawki.
  6. Dostawca konfiguracji zostanie ponownie rozwiązany. Wartości kluczowe Snapshot_A są zwalniane. Ponowne załadowanie konfiguracji zwraca pary klucz-wartość Snapshot_B.

Uwaga / Notatka

W tej sekwencji przyjęto założenie, że skonfigurowano odświeżanie aplikacji. Aby uzyskać szczegółowe informacje na temat konfigurowania odświeżania, zobacz konfiguracja dynamiczna.

Przykładowe odwołanie do migawki

W poniższym przykładzie pokazano odniesienie do migawki

{
    "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": {}
}

Jak wspomniano, odwołanie do migawki jest normalną wartością klucza z pewnymi ograniczeniami dodanymi. Dostawcy konfiguracji identyfikują odwołania do migawek według specyficznego typu zawartości. Wartość odwołania do migawki to obiekt JSON z właściwością o nazwie 'name', która wskazuje na migawkę docelową.

Typ zawartości odwołania do migawki: application/json; profile="https://azconfig.io/mime-profiles/snapshot-ref"; charset=utf-8

Rozwiązywanie konfliktów kluczy

Przywołane migawki mogą zawierać klucze, które konfliktują z normalnymi kluczowymi wartościami (które nie są częścią migawki). Dostawcy konfiguracji rozwiązują te konflikty przy użyciu wartości ostatniego widocznego klucza. W przypadku migawek, ponieważ są one rozwiązywane natychmiast po obejrzeniu, kolejność leksykograficznego klucza odniesienia migawki jest ważnym szczegółem podczas rozważania ostatecznej wartości danego klucza w przypadku konfliktów.

Uproszczony przykład

Załóżmy, że sklep ma następujące normalne wartości klucza:

key: message
value: hello-world

key: request-limit
value: 100

I migawka zawierająca:

key: message
value: bye

key: request-limit
value: 8000

Jeśli zostanie dodane odwołanie do migawki wskazujące wyżej wymienioną migawkę, ostateczna efektywna konfiguracja zależy od pozycji leksykograficznej klucza odniesienia migawki:

Klucz referencyjny migawki pozycja leksykograficzna vs message, request-limit Wartość końcowa message Wartość końcowa request-limit Dlaczego
a-snapshot-reference Przed oboma hello-world 100 Odwołanie do migawki zostało rozwiązane jako pierwsze; później zwykłe klucze zastępują ich duplikaty.
my-snapshot-reference Po message , ale przed request-limit Do widzenia 100 message jest widoczny jako pierwszy. Odwołanie do migawki jest następnie rozwiązywane i zastępuje element message. Na koniec normalna request-limit zastępuje wartość migawki request-limit .
some-snapshot-reference Po obu Do widzenia osiem tysięcy Odwołanie do migawki zostało rozwiązane ostatnio; jego wartości zastępują wcześniejsze duplikaty.

Zagadnienia i przypadki brzegowe

  • Brak migawki docelowej: jeśli odwołanie wskazuje nazwę migawki, która nie istnieje lub jest archiwizowana poza okresem przechowywania, dostawca ignoruje odwołanie.
  • Brak przejściowej rozdzielczości: jeśli przywołyna migawka zawiera wartość klucz-wartość, która sama jest odwołaniem migawki, odwołanie wewnętrzne nie zostanie rozwiązane.
  • Kontrola dostępu: odczytywanie migawki za pośrednictwem odwołania wymaga uprawnień do odczytu migawki, podobnie jak bezpośrednie odczytywanie migawki.
  • Przechowywanie/archiwizowanie: należy zachować ostrożność podczas odwoływania się do zarchiwizowanych migawek, ponieważ po wygaśnięciu migawki aplikacja nie będzie już mogła uzyskać dostępu do zawartej konfiguracji.

Dostępność języków

Język Minimalna wersja/stan
.NET 8.4.0+
Java Praca w toku
JavaScript Praca w toku
Python Praca w toku
Go Praca w toku

Dalsze kroki

Aby uzyskać więcej informacji, zobacz Omówienie migawek.