Co nowego w narzędziu Azure VM Image Builder

Dotyczy: ✔️ Maszyny wirtualne z systemem Linux Maszyny ✔️ wirtualne z systemem Windows ✔️ — elastyczne zestawy ✔️ skalowania

Ten artykuł zawiera wszystkie istotne zmiany interfejsu API i aktualizacje funkcji dla usługi Azure VM Image Builder (AIB).

Aktualizacje

Maj 2024 r.

Zmiana powodująca niezgodność: ważność wielkości liter

Od 21 maja 2024 r. interfejs API programu Azure VM Image Builder w wersji 2024-02-02-01 i poza nią będzie wymuszać ważność wielkości liter dla wszystkich pól. Oznacza to, że wielkość liter w żądaniach interfejsu API musi być zgodna dokładnie z oczekiwanym formatem.

Ważna uwaga dla istniejących użytkowników narzędzia Azure Image Builder

Jeśli jesteś istniejącym użytkownikiem narzędzia Azure VM Image Builder, upewnij się, że ta zmiana nie wpłynie na istniejące zasoby. Wymuszanie poufności sprawy dotyczy tylko nowo utworzonych zasobów przy użyciu interfejsu API w wersji 2024-02-01 lub nowszej. Istniejące zasoby będą nadal działać zgodnie z oczekiwaniami bez żadnych zmian.

Jeśli napotkasz jakiekolwiek problemy związane z poufnością przypadków, zapoznaj się ze zaktualizowaną dokumentacją interfejsu API narzędzia Azure Image Builder, aby uzyskać wskazówki.

Wcześniej interfejs API narzędzia Azure Image Builder był bardziej forgiving pod względem przypadku, ale w przyszłości precyzja jest kluczowa. Podczas wykonywania wywołań interfejsu API upewnij się, że używasz poprawnej wielkości liter nazw pól, parametrów i wartości. Jeśli na przykład pole nosi nazwę "vmBoot", musisz użyć polecenia "vmBoot" (nie "VMBoot" lub "vmboot").

Jeśli wyślesz żądanie interfejsu API do interfejsu API usługi Azure Image Builder w wersji 2024-02-01 lub nowszej z nieprawidłowymi przypadkami lub nierozpoznanymi polami, usługa ją odrzuci. Zostanie wyświetlona odpowiedź o błędzie wskazująca, że żądanie jest nieprawidłowe. Błąd będzie wyglądać mniej więcej tak:

Unmarshalling entity encountered error: unmarshalling type *v2024_02_01.ImageTemplate: struct field Properties: unmarshalling type *v2024_02_01.ImageTemplateProperties: struct field Optimize: unmarshalling type *v2024_02_01.ImageTemplatePropertiesOptimize: unmarshalling type *v2024_02_01.ImageTemplatePropertiesOptimize, unknown field \"vmboot\". There is an issue with the syntax with the JSON template you are submitting. Please check the JSON template for syntax and grammar. For more information on the syntax and grammar of the JSON template, visit http://aka.ms/azvmimagebuildertmplref.

Komunikat o błędzie będzie zawierać informacje o "nieznanym polu" i przekierowuje Cię do oficjalnej dokumentacji: Tworzenie szablonu JSON szablonu narzędzia Azure Image Builder lub arm.

Odwołaj się do struktury Swagger narzędzia Azure Image Builder na potrzeby wywołań interfejsu API

Podczas wykonywania wywołań do usługi Azure Image Builder zawsze należy odwołać się do dokumentacji struktury Swagger, która służy jako ostateczne źródło prawdy dla specyfikacji interfejsu API usługi Azure Image Builder. Chociaż publiczna dokumentacja została zaktualizowana w celu uwzględnienia odpowiednich nazw liter i pól przed wydaniem interfejsu API, definicja struktury Swagger zawiera szczegółowe informacje o każdym interfejsie API AIB, aby upewnić się, że wykonywane wywołania usługi są poprawne.

Poniżej znajduje się lista zmian w dokumentacji, które zostały wprowadzone w celu dopasowania nazw pól w interfejsie API w wersji 2024-02-01:

W dokumentacji szablonu JSON szablonu tworzenie narzędzia Azure Image Builder Bicep lub ARM:

Zaktualizowane pola:

  • Zamieniono kilka wzmianek o vmbootvmBoot
  • Zamieniono jedną wzmiankę o imageVersionIDimageVersionId

Usunięto pole:

  • apiVersion: Zalecamy unikanie dołączania tego pola do żądań, ponieważ nie jest on jawnie określony w naszym interfejsie API, dlatego uwzględnienie go w szablonie JSON może prowadzić do błędów w kompilacji obrazu.

W dokumentacji opcji sieci narzędzia Image Builder maszyny wirtualnej platformy Azure:

Zaktualizowano pole:

  • Zamieniono jedną wzmiankę o VirtualNetworkConfigvnetConfig

Pola usunięte:

  • subnetNamevnetConfig w właściwości — to pole jest przestarzałe, a nowe pole jestsubnetId
  • resourceGroupNamevnetConfig w właściwości — to pole jest przestarzałe, a nowe pole jestsubnetId

Jak przypiąć do starszej wersji interfejsu API programu Azure Image Builder

Ważne zagadnienia dotyczące przypinania do starszych wersji interfejsu API

Przypinanie do starszej wersji interfejsu API programu Azure Image Builder może zapewnić zgodność z istniejącymi szablonami, ale nie jest to zalecane ze względu na następujące czynniki:

  • Ryzyko wycofania: starsze wersje interfejsu API mogą zostać ostatecznie przestarzałe.

  • Brakujące funkcje: przypinając do starszej wersji interfejsu API, pominięto najnowsze funkcje i ulepszenia wprowadzone w nowszych wersjach. Te ulepszenia często zwiększają wydajność, bezpieczeństwo i funkcjonalność.

Jeśli chcesz uniknąć wprowadzania zmian we właściwościach w szablonach obrazów ze względu na nowe reguły poufności przypadków, możesz przypiąć wywołania interfejsu API konstruktora obrazów maszyny wirtualnej platformy Azure do poprzedniej wersji interfejsu API. Dzięki temu można nadal korzystać ze znanego zachowania bez żadnych modyfikacji.

Aby zapewnić zgodność z istniejącymi szablonami, podczas tworzenia lub aktualizowania szablonu obrazu określ żądaną wersję interfejsu API (np. api-version=2022-07-01), dołączając api-version parametr w wywołaniu usługi. Przykład:

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.VirtualMachineImages/imageTemplates/{imageTemplateName}?api-version=2022-07-01