Tworzenie stosu wdrożenia

Ukończone

Stos wdrażania platformy Azure to kolekcja zasobów platformy Azure, którymi można zarządzać jako pojedyncza jednostka, nawet jeśli obejmują wiele grup zasobów lub subskrypcji.

Planujesz wdrożenie testowej wersji nowej aplikacji depozytów. Musisz dowiedzieć się więcej na temat tworzenia stosu wdrożenia i weryfikowania zarządzanych zasobów.

W tej lekcji dowiesz się, jak utworzyć stos wdrożenia, zweryfikować jego wdrożenie i wyświetlić listę wszystkich stosów wdrożeń w danym środowisku.

Uwaga

Polecenia w tej lekcji są wyświetlane w celu zilustrowania pojęć. Nie uruchamiaj jeszcze poleceń. Będziesz ćwiczyć to, czego nauczysz się tutaj wkrótce.

Ponownie przeglądane stosy wdrożeń

Stosy wdrażania zmieniają sposób myślenia o organizacji zasobów w grupach zasobów i subskrypcjach. Stos wdrożenia umożliwia grupowanie wszystkich zasobów, które tworzą aplikację, niezależnie od tego, gdzie znajduje się w hierarchii organizacyjnej zasobów platformy Azure. Można nimi zarządzać jako pojedynczą jednostką. W przypadku stosów wdrażania możesz wykonywać operacje cyklu życia w kolekcji zasobów tworzących stos.

Grafika przedstawiająca aplikację i zarządzaną przez stos wdrożenia w zakresie grupy zasobów.

Stosy wdrażania można traktować jako serię wskaźników, które grupuje zasoby aplikacji w jedną jednostkę. Stosy wdrażania można tworzyć w różnych zakresach, takich jak grupy zasobów, subskrypcje i grupy zarządzania.

Definiowanie zasobów

Stosy wdrażania obsługują używanie plików Bicep, szablonów JSON usługi ARM lub specyfikacji szablonów do definiowania zasobów w stosie. Podczas tworzenia stosu wdrożenia przy użyciu interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell możesz wskazać określony plik szablonu (plik Bicep lub szablon USŁUGI ARM JSON) lub specyfikację szablonu. Nie trzeba zmieniać sposobu definiowania zasobów.

Użyjemy następującego pliku Bicep dla naszego pierwszego stosu wdrożenia. Plik definiuje plan usługi App Service i aplikację internetową. Te zasoby stają się zasobami zarządzanymi podczas tworzenia stosu wdrożenia.

// Parameters
@description('The location for all resources.')
param location string = 'eastus'

@description('The name of the web application.')
param webApplicationName string = 'webapp-${uniqueString(resourceGroup().id)}'

// Variables
@description('The name of the app service plan.')
var appServicePlanName = 'plan-deposits'

// Resource - App Service Plan
resource appServicePlan 'Microsoft.Web/serverfarms@2023-12-01' = {
  name: appServicePlanName
  location: location
  sku: {
    name: 'F1'
    capacity: 1
  }
}

// Resource - Web App
resource webApplication 'Microsoft.Web/sites@2023-12-01' = {
  name: webApplicationName
  location: location
  properties: {
    serverFarmId: appServicePlan.id
  }
}

Uwaga

Składnia parametru ${uniqueString(resourceGroup().id)} może być zauważalna webApplicationName . Funkcja uniqueString tworzy ciąg na podstawie identyfikatora grupy zasobów i dodaje go jako sufiks do webapp-deposits. Wiele usług platformy Azure wymaga unikatowych nazw. Ta funkcja pomaga wygenerować unikatową nazwę.

Tworzenie stosu wdrożenia

Tworzenie i wdrażanie stosu wdrożenia i jego zasobów jest niemal identyczne ze standardowym wdrożeniem platformy Azure. Niezależnie od tego, czy używasz interfejsu wiersza polecenia platformy Azure, programu Azure PowerShell, czy infrastruktury jako potoku kodu, proces jest taki sam. Na przykład:

Polecenie interfejsu wiersza polecenia platformy Azure służące do wdrażania pliku Bicep w grupie zasobów to:

az deployment group create \
    --resource-group rg-depositsApplication \
    --template-file ./main.bicep

Polecenie interfejsu wiersza polecenia platformy Azure umożliwiające utworzenie stosu wdrożenia w zakresie grupy zasobów to:

az stack group create \
    --name stack-deposits \
    --resource-group rg-depositsApplication \
    --template-file ./main.bicep \
    --action-on-unmanage detachAll \
    --deny-settings-mode none

Zwróć uwagę, że jedynymi zmianami w poleceniu są słowa deployment i stack, i różnice w użytych parametrach. To samo dotyczy wdrożeń w subskrypcjach i grupach zarządzania.

Uwaga

W kolejnych modułach dowiesz się, jak zarządzać zasobami stosu wdrożenia przy użyciu programu i jak zapobiegać niepożądanym zmianom przy użyciu --action-on-unmanage programu --deny-settings-mode.

Polecenie programu Azure PowerShell w celu wdrożenia pliku Bicep w grupie zasobów to:

New-AzResourceGroupDeployment `
    -ResourceGroupName rg-depositsApplication `
    -TemplateFile ./main.bicep

Polecenie programu Azure PowerShell umożliwiające utworzenie stosu wdrożenia w zakresie grupy zasobów to:

New-AzResourceGroupDeploymentStack `
    -Name stack-deposits `
    -ResourceGroupName rg-depositsApplication `
    -TemplateFile ./main.bicep `
    -ActionOnUnmanage DetachAll `
    -DenySettingsMode None

Zwróć uwagę, że jedyną zmianą w poleceniu jest słowo stack, a różnice w użytych parametrach. To samo dotyczy wdrożeń w subskrypcjach i grupach zarządzania.

Uwaga

W kolejnych modułach dowiesz się, jak zarządzać zasobami stosu wdrożenia przy użyciu programu i jak zapobiegać niepożądanym zmianom przy użyciu -ActionOnUnmanage programu -DenySettingsMode.

Teraz przyjrzyjmy się tworzeniu stosu wdrożenia w zakresie grupy zasobów.

Aby utworzyć stos wdrożenia przy użyciu interfejsu wiersza polecenia platformy az stack group create Azure, użyj polecenia . Następujące polecenia najpierw tworzą grupę zasobów o nazwie rg-depositsApplication , a następnie tworzą stos wdrożenia w zakresie grupy zasobów.

az group create \
    --name rg-depositsApplication \
    --location eastus
az stack group create \
    --name stack-deposits \
    --resource-group rg-depositsApplication \
    --template-file ./main.bicep \
    --action-on-unmanage detachAll \
    --deny-settings-mode none

Aby utworzyć stos wdrożenia przy użyciu programu Azure PowerShell, użyj New-AzResourceGroupDeploymentStack polecenia . Następujące polecenia najpierw tworzą grupę zasobów o nazwie rg-depositsApplication , a następnie tworzą stos wdrożenia w zakresie grupy zasobów.

New-AzResourceGroup `
    -Name rg-depositsApplication `
    -Location eastus
New-AzResourceGroupDeploymentStack `
    -Name stack-deposits `
    -ResourceGroupName rg-depositsApplication `
    -TemplateFile ./main.bicep `
    -ActionOnUnmanage DetachAll `
    -DenySettingsMode None

Wyświetlanie stosów wdrażania

Grupy zasobów mogą mieć zakres wielu stosów wdrożeń. Szczegółowe informacje o określonym stosie wdrożenia można wyświetlić w grupie zasobów.

Aby wyświetlić określony zasób stosu wdrożenia w zakresie grupy zasobów przy użyciu interfejsu wiersza polecenia platformy Azure, użyj az stack group show polecenia , określając nazwę stosu wdrożenia i docelową grupę zasobów.

az stack group show \
    --resource-group rg-depositsApplication \
    --name stack-deposits

Wyniki obejmują właściwości stosu wdrożenia i stan zarządzanych zasobów. Dane wyjściowe powinny wyglądać znajomo w następującej sekcji:

{
  "actionOnUnmanage": {
    "managementGroups": "detach",
    "resourceGroups": "detach",
    "resources": "detach"
  },
  "bypassStackOutOfSyncError": null,
  "correlationId": ".",
  "debugSetting": null,
  "deletedResources": [],
  "denySettings": {
    "applyToChildScopes": false,
    "excludedActions": null,
    "excludedPrincipals": null,
    "mode": "none"
  },
  "deploymentId": "/subscriptions/././rg-depositsApplication/./Microsoft.Resources/deployments/stack-deposits",
  "deploymentScope": null,
  "description": null,
  "detachedResources": [],
  "duration": "PT2M53.2734284S",
  "error": null,
  "failedResources": [],
  "id": "/subscriptions/././rg-depositsApplication/./Microsoft.Resources/deploymentStacks/stack-deposits",
  "location": null,
  "name": "stack-deposits",
  "outputs": null,
  "parametersLink": null,
  "provisioningState": "succeeded",
  "resourceGroup": "rg-depositsApplication",
  "resources": [
    {
      "denyStatus": "none",
      "id": "/subscriptions/././rg-depositsApplication/././serverfarms/plan-deposits",
      "resourceGroup": "rg-depositsApplication",
      "status": "managed"
    },
    {
      "denyStatus": "none",
      "id": "/subscriptions/./resourceGroups/rg-depositsApplication/././sites/webapp-eque2jlrboltq",
      "resourceGroup": "rg-depositsApplication",
      "status": "managed"
    }
  ],
  "systemData": {
    "createdAt": "2024-01-01T00:00:01.000000+00:00",
    "createdBy": "depositsapplication@contoso.com",
    "createdByType": "User",
    "lastModifiedAt": "2024-01-01T00:00:01.000000+00:00",
    "lastModifiedBy": "depositsapplication@contoso.com",
    "lastModifiedByType": "User"
  },
  "tags": {},
  "template": null,
  "templateLink": null,
  "type": "Microsoft.Resources/deploymentStacks"
}

Zwróć uwagę na sekcję zasobów danych wyjściowych. Dla każdego zasobu jego stan managedto , jego grupa zasobów, identyfikator zasobu i ustawienia odmowy.

Aby wyświetlić określony zasób stosu wdrożenia w zakresie grupy zasobów przy użyciu programu Azure PowerShell, użyj Get-AzResourceGroupDeploymentStack polecenia , określając nazwę stosu wdrożenia i docelową grupę zasobów.

Get-AzResourceGroupDeploymentStack `
    -ResourceGroupName rg-depositsApplication `
    -Name stack-deposits

Wyniki obejmują właściwości stosu wdrożenia i stan zarządzanych zasobów. Dane wyjściowe powinny wyglądać znajomo w następującej sekcji:

Id                            : /subscriptions/././rg-depositsApplication/././deploymentStacks/stack-deposits
Name                          : stack-deposits
ProvisioningState             : succeeded
resourcesCleanupAction        : detach
resourceGroupsCleanupAction   : detach
managementGroupsCleanupAction : detach
CorrelationId                 : .
DenySettingsMode              : none
CreationTime(UTC)             : 1/01/2024 0:00:01 AM
DeploymentId                  : /subscriptions/././rg-depositsApplication/././deployments/stack-deposits
Resources                     : /subscriptions/././rg-depositsApplication/././serverfarms/plan-deposits
                                /subscriptions/././rg-depositsApplication/././sites/webapp-eque2jlrboltq

Zwróć uwagę na sekcję zasobów danych wyjściowych. Definiuje zasoby zarządzane przez stos wdrożenia. Zostanie wyświetlony pełny identyfikator zasobu każdego zasobu.

Możesz również wyświetlić stosy wdrożeń w witrynie Azure Portal. Są one dostępne w odpowiednich zakresach. W przypadku grupy zasobów przejdź do grupy zasobów, w której stos wdrożenia ma zakres. W obszarze ustawienia jest widoczna opcja dla stosów wdrożeń.

Zrzut ekranu witryny Azure Portal przedstawiający ustawienia grupy zasobów i miejsca znajdowania stosów wdrożeń.

Po kliknięciu stosów wdrażania zostanie wyświetlona lista wszystkich stosów w zakresie grupy zasobów. Kliknięcie stosu wdrożenia spowoduje przejście do strony właściwości stosów wdrożenia.

Zrzut ekranu witryny Azure Portal przedstawiający właściwości stosu wdrożenia, w tym jej zarządzane zasoby.

Wyświetlanie listy stosów wdrożeń

Można również wyświetlić listę wszystkich stosów wdrożeń o określonym zakresie dla określonej grupy zasobów.

Aby wyświetlić listę wszystkich zasobów stosu wdrożenia w zakresie grupy zasobów przy użyciu interfejsu az stack group list wiersza polecenia platformy Azure, użyj polecenia , określając docelową grupę zasobów.

az stack group list \
    --resource-group rg-depositsApplication

Aby wyświetlić listę wszystkich zasobów stosu wdrożenia w zakresie grupy zasobów przy użyciu programu Azure PowerShell, użyj Get-AzResourceGroupDeploymentStack polecenia , określając docelową grupę zasobów.

Get-AzResourceGroupDeploymentStack `
    -ResourceGroupName rg-depositsApplication

Uwaga

Program Azure PowerShell używa tego samego polecenia dla Get-AzResourceGroupDeploymentStack operacji wyświetlania i wyświetlania listy.