Szybki start: kompilowanie i wdrażanie z repozytorium do usługi Azure Container Apps
W tym artykule pokazano, jak utworzyć i wdrożyć mikrousługę w usłudze Azure Container Apps z repozytorium GitHub przy użyciu wybranego języka programowania. W tym przewodniku Szybki start utworzysz przykładową mikrousługę reprezentującą usługę internetowego interfejsu API zaplecza, która zwraca statyczną kolekcję albumów muzycznych.
Ta przykładowa aplikacja jest dostępna w dwóch wersjach. Jedna wersja zawiera kontener, w którym źródło zawiera plik Dockerfile. Druga wersja nie ma pliku Dockerfile. Wybierz wersję, która najlepiej odzwierciedla kod źródłowy. Jeśli dopiero zaczynasz korzystać z kontenerów, wybierz opcję Brak pliku Dockerfile u góry.
Uwaga
Możesz również skompilować i wdrożyć tę przykładową aplikację z lokalnego systemu plików. Aby uzyskać więcej informacji, zobacz Tworzenie z lokalnego kodu źródłowego i wdrażanie aplikacji w usłudze Azure Container Apps.
Poniższy zrzut ekranu przedstawia dane wyjściowe wdrożonej usługi interfejsu API albumu.
Wymagania wstępne
Do ukończenia tego projektu potrzebne są następujące elementy:
Wymaganie | Instrukcje |
---|---|
Konto platformy Azure | Jeśli go nie masz, utwórz bezpłatne konto. Aby kontynuować, musisz mieć uprawnienie Współautor lub Właściciel w subskrypcji platformy Azure. Aby uzyskać szczegółowe informacje, zobacz Przypisywanie ról platformy Azure przy użyciu witryny Azure Portal . |
Konto usługi GitHub | Pobierz go bezpłatnie. |
git | Instalowanie narzędzia git |
Interfejs wiersza polecenia platformy Azure | Zainstaluj interfejs wiersza polecenia platformy Azure. |
Ustawienia
Aby zalogować się do platformy Azure z poziomu interfejsu wiersza polecenia, uruchom następujące polecenie i postępuj zgodnie z monitami, aby ukończyć proces uwierzytelniania.
az login
Aby upewnić się, że używasz najnowszej wersji interfejsu wiersza polecenia, uruchom polecenie uaktualniania.
az upgrade
Następnie zainstaluj lub zaktualizuj rozszerzenie usługi Azure Container Apps dla interfejsu wiersza polecenia.
Jeśli podczas uruchamiania az containerapp
poleceń w interfejsie wiersza polecenia platformy Azure lub poleceniach cmdlet z modułu Az.App
w programie Azure PowerShell wystąpią błędy dotyczące brakujących parametrów, upewnij się, że masz zainstalowaną najnowszą wersję rozszerzenia Azure Container Apps.
az extension add --name containerapp --upgrade
Uwaga
Począwszy od maja 2024 r., rozszerzenia interfejsu wiersza polecenia platformy Azure domyślnie nie włączają funkcji w wersji zapoznawczej. Aby uzyskać dostęp do funkcji usługi Container Apps w wersji zapoznawczej, zainstaluj rozszerzenie Container Apps za pomocą polecenia --allow-preview true
.
az extension add --name containerapp --upgrade --allow-preview true
Teraz, po zainstalowaniu bieżącego rozszerzenia lub modułu Microsoft.App
, zarejestruj przestrzenie nazw i Microsoft.OperationalInsights
.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
Tworzenie zmiennych środowiskowych
Teraz, gdy konfiguracja interfejsu wiersza polecenia platformy Azure została ukończona, możesz zdefiniować zmienne środowiskowe używane w tym artykule.
Zdefiniuj następujące zmienne w powłoce powłoki bash.
export RESOURCE_GROUP="album-containerapps"
export LOCATION="canadacentral"
export ENVIRONMENT="env-album-containerapps"
export API_NAME="album-api"
export GITHUB_USERNAME="<YOUR_GITHUB_USERNAME>"
Przed uruchomieniem tego polecenia pamiętaj, aby zastąpić <YOUR_GITHUB_USERNAME>
ciąg nazwą użytkownika usługi GitHub.
Następnie zdefiniuj unikatową nazwę rejestru kontenerów.
export ACR_NAME="acaalbums"$GITHUB_USERNAME
Przygotowywanie repozytorium GitHub
W oknie przeglądarki przejdź do repozytorium GitHub dla preferowanego języka i rozwidlenia repozytorium.
Wybierz przycisk Rozwidlenie u góry repozytorium interfejsu API albumu, aby rozwidlić repozytorium na koncie. Następnie skopiuj adres URL repozytorium, aby użyć go w następnym kroku.
W oknie przeglądarki przejdź do repozytorium GitHub dla preferowanego języka i rozwidlenia repozytorium , w tym gałęzi.
Wybierz przycisk Rozwidlenie u góry repozytorium interfejsu API albumu, aby rozwidlić repozytorium na koncie. Usuń zaznaczenie pola wyboru "Kopiuj main
tylko gałąź", aby również rozwidlić buildpack
gałąź.
Kompilowanie i wdrażanie aplikacji kontenera
Skompiluj i wdróż pierwszą aplikację kontenera z rozwidlenia repozytorium GitHub za containerapp up
pomocą polecenia . To polecenie spowoduje:
- Tworzenie grupy zasobów
- Tworzenie środowiska usługi Container Apps za pomocą obszaru roboczego usługi Log Analytics
- Tworzenie rejestru Azure Container Registry
- Tworzenie przepływu pracy akcji usługi GitHub w celu kompilowania i wdrażania aplikacji kontenera
- Tworzenie grupy zasobów
- Tworzenie środowiska usługi Container Apps za pomocą obszaru roboczego usługi Log Analytics
- Automatyczne tworzenie rejestru domyślnego w ramach środowiska
- Tworzenie przepływu pracy akcji usługi GitHub w celu kompilowania i wdrażania aplikacji kontenera
Po wypchnięciu nowego kodu do repozytorium akcja usługi GitHub będzie:
- Skompiluj obraz kontenera i wypchnij go do usługi Azure Container Registry
- Wdrażanie obrazu kontenera w utworzonej aplikacji kontenera
Polecenie up
używa pliku Dockerfile w katalogu głównym repozytorium, aby skompilować obraz kontenera. Instrukcja EXPOSE
w pliku Dockerfile definiuje port docelowy. Do utworzenia aplikacji kontenera nie jest wymagany plik platformy Docker.
- Automatyczne wykrywanie języka i środowiska uruchomieniowego
- Kompilowanie obrazu przy użyciu odpowiedniego pakietu BuildPack
- Wypychanie obrazu do domyślnego rejestru usługi Azure Container Apps
Aplikacja kontenera musi być dostępna dla ruchu przychodzącego. Upewnij się, że port 8080 uwidacznia nasłuchiwanie żądań przychodzących.
W poniższym poleceniu zastąp element <YOUR_GITHUB_REPOSITORY_NAME>
nazwą repozytorium GitHub w postaci https://github.com/<OWNER>/<REPOSITORY-NAME>
lub <OWNER>/<REPOSITORY-NAME>
.
W poniższym poleceniu zastąp element <YOUR_GITHUB_REPOSITORY_NAME>
nazwą repozytorium GitHub w postaci https://github.com/<OWNER>/<REPOSITORY-NAME>
lub <OWNER>/<REPOSITORY-NAME>
. --branch buildpack
Użyj opcji , aby wskazać przykładowe źródło bez pliku Dockerfile.
az containerapp up \
--name $API_NAME \
--resource-group $RESOURCE_GROUP \
--location $LOCATION \
--environment $ENVIRONMENT \
--context-path ./src \
--repo <YOUR_GITHUB_REPOSITORY_NAME>
az containerapp up \
--name $API_NAME \
--resource-group $RESOURCE_GROUP \
--location $LOCATION \
--environment $ENVIRONMENT \
--context-path ./src \
--ingress external \
--target-port 8080 \
--repo <YOUR_GITHUB_REPOSITORY_NAME>
--branch buildpack
--
Korzystając z adresu URL i kodu użytkownika wyświetlanego w terminalu, przejdź do strony aktywacji urządzenia GitHub w przeglądarce i wprowadź kod użytkownika na stronie. Postępuj zgodnie z monitami, aby autoryzować interfejs wiersza polecenia platformy Azure w celu uzyskania dostępu do repozytorium GitHub.
Polecenie up
tworzy przepływ pracy akcji usługi GitHub w folderze .github/workflows repozytorium. Przepływ pracy jest wyzwalany w celu skompilowania i wdrożenia aplikacji kontenera podczas wypychania zmian do repozytorium.
Weryfikowanie wdrożenia
Skopiuj nazwę domeny zwróconą przez element containerapp up
do przeglądarki internetowej. W przeglądarce internetowej przejdź do /albums
punktu końcowego adresu URL.
Czyszczenie zasobów
Jeśli nie zamierzasz kontynuować pracy z samouczkiem Wdrażanie frontonu , możesz usunąć zasoby platformy Azure utworzone podczas tego przewodnika Szybki start za pomocą następującego polecenia.
Uwaga
Następujące polecenie usuwa określoną grupę zasobów i wszystkie zawarte w niej zasoby. Jeśli grupa zawiera zasoby poza zakresem tego przewodnika Szybki start, zostaną również usunięte.
az group delete --name $RESOURCE_GROUP
Napiwek
Masz problemy? Poinformuj nas o usłudze GitHub, otwierając problem w repozytorium usługi Azure Container Apps.
Następne kroki
Po ukończeniu tego przewodnika Szybki start możesz przejść do sekcji Samouczek: komunikacja między mikrousługami w usłudze Azure Container Apps , aby dowiedzieć się, jak wdrożyć aplikację frontonu, która wywołuje interfejs API.