Szybki start: wdrażanie aplikacji internetowej z systemem Linux na platformie Azure przy użyciu szablonu usługi ARM
Usługa Azure DevOps Services
Rozpocznij pracę z szablonami usługi Azure Resource Manager (szablonami usługi ARM), wdrażając aplikację internetową systemu Linux przy użyciu programu MySQL. Szablony usługi ARM umożliwiają zapisanie konfiguracji w kodzie. Użycie szablonu usługi ARM jest przykładem infrastruktury jako kodu i dobrej praktyki metodyki DevOps.
Szablon usługi ARM to plik w formacie JavaScript Object Notation (JSON) definiujący infrastrukturę i konfigurację projektu. W szablonie używana jest składnia deklaratywna. W składni deklaratywnej opisujesz rozwiązanie, które chcesz wdrożyć, bez konieczności pisania sekwencji poleceń programistycznych służących do tworzenia takiego wdrożenia.
Aby wdrożyć zasoby platformy Azure, możesz użyć składni JSON lub Bicep . Dowiedz się więcej o różnicy między formatami JSON i Bicep dla szablonów.
Wymagania wstępne
Przed rozpoczęciem potrzebne są następujące elementy:
- Konto platformy Azure z aktywną subskrypcją. Utwórz bezpłatne konto.
- Aktywna organizacja usługi Azure DevOps. Zarejestruj się w usłudze Azure Pipelines.
- (W przypadku wdrożeń Bicep) Istniejąca grupa zasobów. Utwórz grupę zasobów przy użyciu Azure Portal, interfejsu wiersza polecenia platformy Azure lub Azure PowerShell.
Uzyskiwanie kodu
Rozwidlenie tego repozytorium w usłudze GitHub:
https://github.com/Azure/azure-quickstart-templates/tree/master/quickstarts/microsoft.web/webapp-linux-managed-mysql
Przegląd szablonu
Szablon używany w tym przewodniku Szybki start jest jednym z szablonów szybkiego startu platformy Azure.
Szablon definiuje kilka zasobów:
- Microsoft.Web/serverfarms
- Microsoft.Web/sites
- Microsoft.DBforMySQL/servers
- Microsoft.DBforMySQL/servers/firewallrules
- Microsoft.DBforMySQL/servers/databases
Tworzenie potoku i wdrażanie szablonu
Zaloguj się do organizacji usługi Azure DevOps i przejdź do projektu. Utwórz projekt , jeśli jeszcze go nie masz.
Przejdź do pozycji Potoki, a następnie wybierz pozycję Utwórz potok.
Wybierz pozycję GitHub jako lokalizację kodu źródłowego.
Uwaga
Możesz zostać przekierowany do usługi GitHub, aby się zalogować. Jeśli tak, wprowadź poświadczenia usługi GitHub.
Po wyświetleniu listy repozytoriów wybierz pozycję
yourname/azure-quickstart-templates/
.Uwaga
Możesz zostać przekierowany do usługi GitHub, aby zainstalować aplikację usługi Azure Pipelines. Jeśli tak, wybierz pozycję Zatwierdź i zainstaluj.
Po wyświetleniu karty Konfigurowanie wybierz pozycję
Starter pipeline
.Zastąp zawartość potoku tym kodem:
trigger: - none pool: vmImage: 'ubuntu-latest'
Utwórz trzy zmienne:
siteName
,administratorLogin
iadminPass
.adminPass
musi być zmienną wpisu tajnego.- Wybierz pozycję Zmienne.
-
+
Użyj znaku, aby dodać trzy zmienne. Po utworzeniuadminPass
wybierz pozycję Zachowaj ten klucz tajny wartości. - Po zakończeniu kliknij pozycję Zapisz .
Zmienna Wartość Tajne? Sitename mytestsite
Nie adminUser fabrikam
Nie adminPass Fqdn:5362!
Tak Zamapuj zmienną
$(adminPass)
wpisu tajnego, aby była dostępna w zadaniu wdrażania grupy zasobów platformy Azure. W górnej części pliku YAML zamapuj$(adminPass)
na$(ARM_PASS)
.variables: ARM_PASS: $(adminPass) trigger: - none pool: vmImage: 'ubuntu-latest'
Dodaj zadanie Kopiuj pliki do pliku YAML. Użyjesz
101-webapp-linux-managed-mysql
projektu. Aby uzyskać więcej informacji, zobacz Tworzenie aplikacji internetowej w systemie Linux przy użyciu repozytorium usługi Azure Database for MySQL , aby uzyskać więcej informacji.variables: ARM_PASS: $(adminPass) trigger: - none pool: vmImage: 'ubuntu-latest' steps: - task: CopyFiles@2 inputs: SourceFolder: 'quickstarts/microsoft.web/webapp-linux-managed-mysql/' Contents: '**' TargetFolder: '$(Build.ArtifactStagingDirectory)'
Dodaj i skonfiguruj zadanie wdrażania grupy zasobów platformy Azure .
Zadanie odwołuje się zarówno do artefaktu utworzonego za pomocą zadania Copy Files, jak i zmiennych potoku. Ustaw te wartości podczas konfigurowania zadania.
-
Zakres wdrożenia (deploymentScope): ustaw zakres wdrożenia na
Resource Group
. Wdrożenie można kierować do grupy zarządzania, subskrypcji platformy Azure lub grupy zasobów. - Połączenie usługi Azure Resource Manager (azureResourceManagerConnection): wybierz połączenie usługi Azure Resource Manager. Aby skonfigurować nowe połączenie z usługą, wybierz subskrypcję platformy Azure z listy i kliknij pozycję Autoryzuj. Aby uzyskać więcej informacji, zobacz Nawiązywanie połączenia z platformą Microsoft Azure
- Subskrypcja (subscriptionId): wybierz subskrypcję, w której powinno nastąpić wdrożenie.
-
Akcja (akcja): ustaw wartość na , aby
Create or update resource group
utworzyć nową grupę zasobów lub zaktualizować istniejącą. -
Grupa zasobów: ustaw wartość na
ARMPipelinesLAMP-rg
nazwę nowej grupy zasobów. Jeśli jest to istniejąca grupa zasobów, zostanie zaktualizowana. - Lokalizacja(lokalizacja): lokalizacja wdrażania grupy zasobów. Ustaw najbliższą lokalizację (na przykład Zachodnie stany USA). Jeśli grupa zasobów już istnieje w subskrypcji, ta wartość zostanie zignorowana.
-
Lokalizacja szablonu (templateLocation): ustaw wartość
Linked artifact
. Jest to lokalizacja szablonu i plików parametrów. -
Szablon (csmFile): ustaw wartość
$(Build.ArtifactStagingDirectory)/azuredeploy.json
. Jest to ścieżka do szablonu usługi ARM. -
Parametry szablonu (csmParametersFile): ustaw wartość
$(Build.ArtifactStagingDirectory)/azuredeploy.parameters.json
. Jest to ścieżka do pliku parametrów szablonu usługi ARM. -
Zastąpij parametry szablonu (overrideParameters): ustaw wartość , aby używać
-siteName $(siteName) -administratorLogin $(adminUser) -administratorLoginPassword $(ARM_PASS)
utworzonych wcześniej zmiennych. Te wartości zastąpią parametry ustawione w pliku parametrów szablonu. -
Tryb wdrażania (deploymentMode): sposób wdrażania zasobów. Ustaw wartość
Incremental
. Przyrostowe przechowuje zasoby, które nie znajdują się w szablonie usługi ARM i są szybsze niżComplete
.Validate
tryb umożliwia znalezienie problemów z szablonem przed wdrożeniem.
variables: ARM_PASS: $(adminPass) trigger: - none pool: vmImage: 'ubuntu-latest' steps: - task: CopyFiles@2 inputs: SourceFolder: 'quickstarts/microsoft.web/webapp-linux-managed-mysql/' Contents: '**' TargetFolder: '$(Build.ArtifactStagingDirectory)' - task: AzureResourceManagerTemplateDeployment@3 inputs: deploymentScope: 'Resource Group' azureResourceManagerConnection: '<your-resource-manager-connection>' subscriptionId: '<your-subscription-id>' action: 'Create Or Update Resource Group' resourceGroupName: 'ARMPipelinesLAMP-rg' location: '<your-closest-location>' templateLocation: 'Linked artifact' csmFile: '$(Build.ArtifactStagingDirectory)/azuredeploy.json' csmParametersFile: '$(Build.ArtifactStagingDirectory)/azuredeploy.parameters.json' overrideParameters: '-siteName $(siteName) -administratorLogin $(adminUser) -administratorLoginPassword $(ARM_PASS)' deploymentMode: 'Incremental'
-
Zakres wdrożenia (deploymentScope): ustaw zakres wdrożenia na
Kliknij przycisk Zapisz i uruchom polecenie , aby wdrożyć szablon. Zadanie potoku zostanie uruchomione i po kilku minutach, w zależności od agenta, stan zadania powinien wskazywać .
Success
Przeglądanie wdrożonych zasobów
Sprawdź, czy wdrożone zasoby. Przejdź do
ARMPipelinesLAMP-rg
grupy zasobów w Azure Portal i sprawdź, czy widzisz zasoby serwera App Service, plan App Service i Azure Database for MySQL.Możesz również zweryfikować zasoby przy użyciu interfejsu wiersza polecenia platformy Azure.
az resource list --resource-group ARMPipelinesLAMP-rg --output table
Przejdź do nowej witryny. Jeśli ustawisz wartość
siteName
armpipelinetestsite
, lokacja znajduje się w lokalizacjihttps://armpipelinetestsite.azurewebsites.net/
.
Czyszczenie zasobów
Do usuwania zasobów można również użyć szablonu usługi ARM.
action
Zmień wartość zadania wdrażania grupy zasobów platformy Azure na DeleteRG
. Możesz również usunąć dane wejściowe dla templateLocation
, , csmFile
csmParametersFile
, overrideParameters
i deploymentMode
.
variables:
ARM_PASS: $(adminPass)
trigger:
- none
pool:
vmImage: 'ubuntu-latest'
steps:
- task: CopyFiles@2
inputs:
SourceFolder: 'quickstarts/microsoft.web/webapp-linux-managed-mysql/'
Contents: '**'
TargetFolder: '$(Build.ArtifactStagingDirectory)'
- task: AzureResourceManagerTemplateDeployment@3
inputs:
deploymentScope: 'Resource Group'
azureResourceManagerConnection: '<your-resource-manager-connection>'
subscriptionId: '<your-subscription-id>'
action: 'DeleteRG'
resourceGroupName: 'ARMPipelinesLAMP-rg'
location: ''<your-closest-location>'
Następne kroki
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla