Udostępnij za pośrednictwem


Samouczek: wypychanie zaktualizowanego obrazu kontenera do rejestru kontenerów z replikacją geograficzną na potrzeby regionalnych wdrożeń aplikacji internetowych

Niniejszy samouczek jest trzecią częścią trzyczęściowej serii. W poprzednim samouczku skonfigurowano replikację geograficzną dla dwóch różnych regionalnych wdrożeń aplikacji internetowej. W tym samouczku najpierw zmodyfikujesz aplikację, a następnie utworzysz nowy obraz kontenera i wypchniesz go do rejestru replikowanego geograficznie. Na koniec wyświetlisz zmianę, wdrożoną automatycznie przez elementy webhook usługi Azure Container Registry w obu wystąpieniach aplikacji internetowej.

Ten samouczek, będący ostatnią częścią serii, obejmuje:

  • Modyfikowanie kodu HTML aplikacji internetowej
  • Budowanie i tagowanie obrazu platformy Docker
  • Wypychanie zmiany do usługi Azure Container Registry
  • Wyświetlanie zaktualizowanej aplikacji w dwóch różnych regionach

Jeśli jeszcze nie skonfigurowano dwóch regionalnych wdrożeń usługi Web App for Containers, wróć do poprzedniego samouczka z tej serii — Wdrażanie aplikacji internetowej z usługi Azure Container Registry.

Modyfikowanie aplikacji internetowej

W tym kroku należy wprowadzić w aplikacji internetowej zmianę, która będzie dobrze widoczna po wypchnięciu zaktualizowanego obrazu kontenera do usługi Azure Container Registry.

Znajdź plik AcrHelloworld/Views/Home/Index.cshtml w źródle aplikacji sklonowanym z usługi GitHub w poprzednim samouczku i otwórz go w edytorze tekstu. Dodaj następujący wiersz poniżej istniejącego wiersza <h1>:

<h1>MODIFIED</h1>

Zmodyfikowany plik Index.cshtml powinien wyglądać podobnie do poniższego:

@{
    ViewData["Title"] = "Azure Container Registry :: Geo-replication";
}
<style>
    body {
        background-image: url('images/azure-regions.png');
        background-size: cover;
    }
    .footer {
        position: fixed;
        bottom: 0px;
        width: 100%;
    }
</style>

<h1 style="text-align:center;color:blue">Hello World from:  @ViewData["REGION"]</h1>
<h1>MODIFIED</h1>
<div class="footer">
    <ul>
        <li>Registry URL: @ViewData["REGISTRYURL"]</li>
        <li>Registry IP: @ViewData["REGISTRYIP"]</li>
        <li>Registry Region: @ViewData["REGION"]</li>
    </ul>
</div>

Ponowne tworzenie obrazu

Teraz, po zaktualizowaniu aplikacji internetowej, należy ponownie utworzyć obraz jej kontenera. Tak jak wcześniej, użyj w pełni kwalifikowanej nazwy obrazu zawierającej w pełni kwalifikowaną nazwę domeny (FQDN) serwera logowania dla tagu:

docker build . -f ./AcrHelloworld/Dockerfile -t <acrName>.azurecr.io/acr-helloworld:v1

Wypychanie obrazu do usługi Azure Container Registry

Następnie wypchnij zaktualizowany kontener obrazu acr-helloworld do rejestru replikowanego geograficznie. W tym miejscu wykonujesz jedno polecenie docker push, aby wdrożyć zaktualizowany obraz w replikach rejestru w regionach Zachodnie stany USA i Wschodnie stany USA.

docker push <acrName>.azurecr.io/acr-helloworld:v1

Dane wyjściowe docker push będą podobne do następujących:

$ docker push uniqueregistryname.azurecr.io/acr-helloworld:v1
The push refers to a repository [uniqueregistryname.azurecr.io/acr-helloworld]
5b9454e91555: Pushed
d6803756744a: Layer already exists
b7b1f3a15779: Layer already exists
a89567dff12d: Layer already exists
59c7b561ff56: Layer already exists
9a2f9413d9e4: Layer already exists
a75caa09eb1f: Layer already exists
v1: digest: sha256:4c3f2211569346fbe2d1006c18cbea2a4a9dcc1eb3a078608cef70d3a186ec7a size: 1792

Wyświetlanie dzienników elementów webhook

Gdy obraz jest replikowany, możesz zobaczyć wyzwalane elementy webhook usługi Azure Container Registry.

Aby wyświetlić regionalne elementy webhook utworzone podczas wdrażania kontenera w usłudze Web App for Containers w poprzednim samouczku, przejdź do usługi Container Registry w witrynie Azure Portal, a następnie wybierz pozycję Elementy webhook w obszarze USŁUGI.

Elementy webhook usługi Container Registry w witrynie Azure Portal

Wybierz każdy element webhook, aby wyświetlić historię jego wywołań i odpowiedzi. W dziennikach obu elementów webhook powinien być wyświetlony wiersz akcji push (wypychanie). Tutaj dziennik dla elementu webhook w regionie Zachodnie stany USA wyświetla akcję push wyzwoloną przez polecenie docker push w poprzednim kroku:

Dziennik elementów webhook usługi Container Registry w witrynie Azure Portal (Zachodnie stany USA)

Wyświetlanie zaktualizowanej aplikacji internetowej

Elementy webhook powiadamiają usługę Web Apps o wypchnięciu nowego obrazu do rejestru, co automatycznie powoduje wdrożenie zaktualizowanego kontenera w dwóch regionalnych aplikacjach internetowych.

Sprawdź, czy aplikacja została zaktualizowana w obu wdrożeniach, przechodząc do obu regionalnych wdrożeń aplikacji internetowej w przeglądarce internetowej. Przypominamy, że adres URL wdrożonej aplikacji internetowej można znaleźć w prawym górnym rogu każdej karty Przegląd usługi App Service.

Przegląd usługi App Service w witrynie Azure Portal

Aby wyświetlić zaktualizowaną aplikację, wybierz link w obszarze Przegląd usługi App Service. Oto przykładowy widok aplikacji uruchomionej w regionie Zachodnie stany USA:

Wyświetlany w przeglądarce widok zmodyfikowanej aplikacji internetowej uruchomionej w regionie Zachodnie stany USA

Sprawdź, czy zaktualizowany obraz kontenera został również wdrożony we wdrożeniu dla regionu Wschodnie stany USA, wyświetlając go w przeglądarce.

Wyświetlany w przeglądarce widok zmodyfikowanej aplikacji internetowej uruchomionej w regionie Wschodnie stany USA

Za pomocą jednej aplikacji docker push została automatycznie zaktualizowana aplikacja internetowa działająca w obu regionalnych wdrożeniach aplikacji internetowej. Usługa Azure Container Registry przesłała do kontenera obrazy z repozytoriów znajdujących się najbliżej poszczególnych wdrożeń.

Następne kroki

Podczas pracy z samouczkiem utworzono i wypchnięto nową wersję kontenera aplikacji internetowej do rejestru replikowanego geograficznie. Elementy webhook w usłudze Azure Container Registry powiadomiły o aktualizacji usługę Web Apps for Containers, która wyzwoliła lokalne ściągnięcie z najbliższej repliki rejestru.

Kompilacja ACR: zautomatyzowana kompilacja obrazu i poprawka

Oprócz replikacji geograficznej kompilacja ACR jest kolejną funkcją usługi Azure Container Registry, która może ułatwić optymalizację potoku wdrożenia kontenera. Rozpocznij od przeglądu kompilacji ACR, aby poznać jej możliwości:

Automatyzacja systemu operacyjnego i poprawianie struktury przy użyciu kompilacji ACR