受控資源

已完成

部署堆疊所管理的 Azure 資源稱為受控資源。 資源定義於建立堆疊時所使用的範本檔案中。

當您為存款應用程式準備下一個短期衝刺時,您會想深入了解部署堆疊如何管理資源。 隨著開發中測試的功能,您預期對應用程式進行快速且頻繁的變更。 在您從應用程式新增、修改或刪除資源之前,您必須先知道這些資源的管理方式。

在此單元中,您會了解受控資源和 action on unmanage 參數。 這個參數會決定 Azure 如何處理不再由部署堆疊管理的資源。

了解受控資源

在開始更新部署堆疊之前,讓我們來看看堆疊如何管理資源。 當您建立部署堆疊時,堆疊會負責管理範本檔案中所述的資源。 這些資源稱為「受控資源」。 只要在部署堆疊的範本檔案中有定義資源,它就會被視為受控資源。 將部署堆疊視為一系列指標,將應用程式的資源分組成單一邏輯單位,而不論這些資源可能部署的位置爲何。

部署堆疊可以在不同的範圍建立,例如資源群組、訂用帳戶和管理群組。 部署堆疊可以管理的資源取決於建立堆疊的範圍。 例如,如果您在訂用帳戶的範圍內部署堆疊,則堆疊可以管理訂用帳戶內的資源群組,以及該相同訂用帳戶內任何資源群組中的資源。

代表部署堆疊和受控資源的圖形。

部署堆疊不再管理的資源會如何處理? 如果範本檔案中不再定義資源並更新堆疊,則資源可能會中斷連結被刪除。 中斷連結的資源是不再由堆疊管理的資源,但資源會繼續存在於 Azure 中。 被刪除的資源是從 Azure 中刪除的資源,而其所有資料都會遺失。

unmanage 上的動作

您可以使用稱為 action on unmanage 參數的屬性,控制 Azure 如何處理已卸離的資源、資源群組和管理群組。 這個參數可以在建立、修改或刪除部署堆疊時設定。

這三個作業都能設定 action on unmanage 參數的行為。 請記住,最近設定的值優先。

例如,如果使用參數集為 --action-on-unmanage detachAll 來建立部署堆疊,Azure 會中斷連結任何堆疊不再管理的資源。 如果執行後續的更新作業,並將參數設定為 --action-on-unmanage deleteAll,則行為預設為 deleteAll

--action-on-unmanage 參數有三個可能值:

  • deleteAll - 刪除資源、資源群組和管理群組
  • deleteResources - 刪除資源、但中斷連結資源群組和管理群組
  • detachAll - 中斷連結資源、資源群組和管理群組

注意

在本課程模組中,我們會使用資源群組範圍的部署堆疊。 在此情況中,資源群組本身不會由堆疊管理。 action on unmanage 參數的 'delete all' 值不會刪除堆疊所在的資源群組。 刪除堆疊及其資源之後,您必須刪除資源群組。

讓我們看看使用 Azure CLI az stack group show 命令搭配為 --action-on-unmanage 參數設定的值時的 JSON 輸出。 注意資源、資源群組和管理群組的行爲。

  1. --action-on-unmanage deleteAll

    "actionOnUnmanage": {
        "managementGroups": "delete",
        "resourceGroups": "delete",
        "resources": "delete"
    },
    
  2. --action-on-unmanage deleteResources

    "actionOnUnmanage": {
        "managementGroups": "detach",
        "resourceGroups": "detach",
        "resources": "delete"
    },
    
  3. --action-on-unmanage detachAll

    "actionOnUnmanage": {
        "managementGroups": "detach",
        "resourceGroups": "detach",
        "resources": "detach"
    },
    

例如,如果使用參數集為 -ActionOnUnmanage DetachAll 來建立部署堆疊,Azure 會中斷連結任何堆疊不再管理的資源。 如果執行後續的更新作業,並將參數設定為 -ActionOnUnmanage DeleteAll,則行為預設為 DeleteAll

-ActionOnUnmanage 參數有三個可能值:

  • DeleteAll - 刪除資源、資源群組和管理群組
  • DeleteResources - 刪除資源、但中斷連結資源群組和管理群組
  • DetachAll - 中斷連結資源、資源群組和管理群組

注意

在本課程模組中,我們會使用資源群組範圍的部署堆疊。 在此情況下,資源群組不會由堆疊管理。 >action on unmanage 參數的 'delete all' 值不會刪除堆疊所在的資源群組。 刪除堆疊及其資源之後,必須刪除資源群組。

讓我們看看使用 Azure PowerShell Get-AzResourceGroupDeploymentStack 命令搭配為 -ActionOnUnmanage 參數設定的值時的 JSON 輸出。 注意資源、資源群組和管理群組的行爲。

  1. -ActionOnUnmanage DeleteAll

    resourcesCleanupAction        : delete
    resourceGroupsCleanupAction   : delete
    managementGroupsCleanupAction : delete
    
  2. -ActionOnUnmanage DeleteResources

    resourcesCleanupAction        : delete
    resourceGroupsCleanupAction   : detach
    managementGroupsCleanupAction : detach
    
  3. -ActionOnUnmanage DetachAll

    resourcesCleanupAction        : detach
    resourceGroupsCleanupAction   : detach
    managementGroupsCleanupAction : detach