Udostępnij za pośrednictwem


Tworzenie rejestru prywatnego dla modułów Bicep

Aby udostępnić moduły w organizacji, możesz utworzyć rejestr modułów prywatnych. Następnie możesz opublikować moduły w tym rejestrze i udzielić dostępu do odczytu użytkownikom, którzy muszą wdrożyć moduły. Po udostępnieniu modułów w rejestrach można odwoływać się do nich z plików Bicep. Aby użyć modułów publicznych, zobacz Moduły Bicep.

Aby pracować z rejestrami modułów, musisz mieć interfejs wiersza polecenia Bicep w wersji 0.4.1008 lub nowszej. Aby korzystać z interfejsu wiersza polecenia platformy Azure, musisz również mieć wersję 2.31.0 lub nowszą. Aby używać go z programem Azure PowerShell, musisz mieć również wersję 7.0.0 lub nowszą.

Zasoby szkoleniowe

Jeśli wolisz dowiedzieć się więcej o parametrach za pomocą szczegółowych wskazówek, zobacz Udostępnianie modułów Bicep przy użyciu prywatnych rejestrów.

Konfigurowanie rejestru prywatnego

Rejestr Bicep jest hostowany w usłudze Azure Container Registry (ACR). Wykonaj poniższe kroki, aby skonfigurować rejestr dla modułów.

  1. Jeśli masz już rejestr kontenerów, możesz go użyć. Jeśli musisz utworzyć rejestr kontenerów, zobacz Szybki start: tworzenie rejestru kontenerów przy użyciu pliku Bicep.

    Dla rejestru modułów można użyć dowolnego z dostępnych jednostek SKU rejestru. Replikacja geograficzna rejestru zapewnia użytkownikom lokalną obecność lub jako gorącą kopię zapasową.

  2. Pobierz nazwę serwera logowania. Ta nazwa jest potrzebna podczas łączenia z rejestrem z plików Bicep. Format nazwy serwera logowania to: <registry-name>.azurecr.io.

    Aby uzyskać nazwę serwera logowania, użyj polecenia Get-AzContainerRegistry.

    Get-AzContainerRegistry -ResourceGroupName "<resource-group-name>" -Name "<registry-name>"  | Select-Object LoginServer
    
  3. Aby opublikować moduły w rejestrze, musisz mieć uprawnienia do wypychania obrazu. Aby wdrożyć moduł z rejestru, musisz mieć uprawnienia do ściągania obrazu. Aby uzyskać więcej informacji na temat ról, które udzielają odpowiedniego dostępu, zobacz Role i uprawnienia usługi Azure Container Registry.

  4. W zależności od typu konta używanego do wdrożenia modułu może być konieczne dostosowanie używanych poświadczeń. Te poświadczenia są potrzebne do pobrania modułów z rejestru. Domyślnie poświadczenia są uzyskiwane z interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell. Możesz dostosować pierwszeństwo pobierania poświadczeń w pliku bicepconfig.json . Aby uzyskać więcej informacji, zobacz Poświadczenia dotyczące przywracania modułów.

Ważne

Prywatny rejestr kontenerów jest dostępny tylko dla użytkowników z wymaganym dostępem. Dostęp do niego jest jednak uzyskiwany za pośrednictwem publicznego Internetu. Aby uzyskać więcej zabezpieczeń, możesz wymagać dostępu za pośrednictwem prywatnego punktu końcowego. Zobacz Łączenie prywatnie z rejestrem kontenerów platformy Azure przy użyciu usługi Azure Private Link.

Prywatny rejestr kontenerów musi mieć zasady azureADAuthenticationAsArmPolicy ustawione na enabledwartość . Jeśli azureADAuthenticationAsArmPolicy ustawiono wartość disabled, podczas publikowania modułów zostanie wyświetlony komunikat o błędzie 401 (Brak autoryzacji). Zobacz Usługa Azure Container Registry wprowadza zasady dostępu warunkowego.

Publikowanie plików w rejestrze

Po skonfigurowaniu rejestru kontenerów możesz opublikować w nim pliki. Użyj polecenia publish i podaj wszystkie pliki Bicep, które mają być używane jako moduły. Określ lokalizację docelową modułu w rejestrze. Polecenie publikowania tworzy szablon usługi ARM, który jest przechowywany w rejestrze. Oznacza to, że w przypadku publikowania pliku Bicep odwołującego się do innych modułów lokalnych te moduły są w pełni rozwinięte jako jeden plik JSON i publikowane w rejestrze.

Publish-AzBicepModule -FilePath ./storage.bicep -Target br:exampleregistry.azurecr.io/bicep/modules/storage:v1 -DocumentationUri https://www.contoso.com/exampleregistry.html

Przy użyciu interfejsu wiersza polecenia Bicep w wersji 0.27.1 lub nowszej można opublikować moduł z kodem źródłowym Bicep oprócz skompilowanego szablonu JSON. Jeśli moduł zostanie opublikowany przy użyciu kodu źródłowego Bicep do rejestru, możesz nacisnąć F12 (Przejdź do definicji) z programu Visual Studio Code, aby wyświetlić kod Bicep. Rozszerzenie Bicep w wersji 0.27 lub nowej jest wymagane do wyświetlenia pliku Bicep.

Publish-AzBicepModule -FilePath ./storage.bicep -Target br:exampleregistry.azurecr.io/bicep/modules/storage:v1 -DocumentationUri https://www.contoso.com/exampleregistry.html -WithSource

Za pomocą przełącznika źródłowego zobaczysz kolejną warstwę w manifeście:

Zrzut ekranu rejestru modułów bicep ze źródłem.

Jeśli moduł Bicep odwołuje się do modułu w rejestrze prywatnym, punkt końcowy usługi ACR jest widoczny. Aby ukryć pełny punkt końcowy, można skonfigurować alias dla rejestru prywatnego.

Wyświetlanie plików w rejestrze

Aby wyświetlić opublikowany moduł w portalu:

  1. Zaloguj się w witrynie Azure Portal.

  2. Wyszukaj rejestry kontenerów.

  3. Wybierz rejestr.

  4. Wybierz pozycję Usługi -> Repozytoria z menu po lewej stronie.

  5. Wybierz ścieżkę modułu (repozytorium). W poprzednim przykładzie nazwa ścieżki modułu to bicep/modules/storage.

  6. Wybierz etykietę. W poprzednim przykładzie tag to v1.

  7. Odwołanie do artefaktu jest zgodne z odwołaniem używanym w pliku Bicep.

    Dokumentacja artefaktu rejestru modułu Bicep

Teraz możesz odwoływać się do pliku w rejestrze z pliku Bicep. Przykłady składni używanej do odwoływania się do modułu zewnętrznego można znaleźć w temacie Moduły Bicep.


Praca z plikami rejestru Bicep

W przypadku korzystania z plików bicep, które są hostowane w rejestrze zdalnym, ważne jest, aby zrozumieć, jak maszyna lokalna współdziała z rejestrem. Po pierwszym zadeklarowaniu odwołania do rejestru edytor lokalny próbuje nawiązać komunikację z usługą Azure Container Registry i pobrać kopię rejestru do lokalnej pamięci podręcznej.

Lokalna pamięć podręczna znajduje się w:

  • W systemie Windows

    %USERPROFILE%\.bicep\br\<registry-name>.azurecr.io\<module-path\<tag>
    
  • W systemie Linux

    /home/<username>/.bicep
    
  • Na komputerze Mac

    ~/.bicep
    

Komputer lokalny może rozpoznać wszelkie zmiany wprowadzone w rejestrze zdalnym do momentu uruchomienia elementu z określonym plikiem restore zawierającym odwołanie do rejestru.

az bicep restore --file <bicep-file> [--force]

Aby uzyskać więcej informacji, zobacz restore polecenie .

Następne kroki

  • Aby dowiedzieć się więcej o modułach, zobacz Moduły Bicep.
  • Aby skonfigurować aliasy dla rejestru modułów, zobacz Dodawanie ustawień modułu w pliku konfiguracji Bicep.
  • Aby uzyskać więcej informacji na temat publikowania i przywracania modułów, zobacz Polecenia interfejsu wiersza polecenia Bicep.