クイックスタート: Bicep を使用してデプロイ スタックを作成してデプロイする
このクイックスタートでは、デプロイ スタックを作成する方法について説明します。
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます。
- Azure PowerShell バージョン 12.0.0 以降または Azure CLI バージョン 2.61.0 以降。
- Bicep 拡張機能を含む Visual Studio Code。
Bicep ファイルを作成する
Bicep ファイルを作成して、ストレージ アカウントと仮想ネットワークを作成します。
param resourceGroupLocation string = resourceGroup().location
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'
param vnetName string = 'vnet${uniqueString(resourceGroup().id)}'
resource storageAccount 'Microsoft.Storage/storageAccounts@2023-04-01' = {
name: storageAccountName
location: resourceGroupLocation
kind: 'StorageV2'
sku: {
name: 'Standard_LRS'
}
}
resource virtualNetwork 'Microsoft.Network/virtualNetworks@2023-11-01' = {
name: vnetName
location: resourceGroupLocation
properties: {
addressSpace: {
addressPrefixes: [
'10.0.0.0/16'
]
}
subnets: [
{
name: 'Subnet-1'
properties: {
addressPrefix: '10.0.0.0/24'
}
}
{
name: 'Subnet-2'
properties: {
addressPrefix: '10.0.1.0/24'
}
}
]
}
}
Bicep ファイルを main.bicep として保存します。
デプロイ スタックを作成する
このクイックスタートでは、リソース グループ スコープでデプロイ スタックを作成します。 サブスクリプション スコープまたは管理グループ スコープでデプロイ スタックを作成することもできます。 詳細については、「デプロイ スタックを作成する」を参照してください。
az group create \
--name 'demoRg' \
--location 'centralus'
az stack group create \
--name demoStack \
--resource-group 'demoRg' \
--template-file './main.bicep' \
--action-on-unmanage 'detachAll' \
--deny-settings-mode 'none'
action-on-unmanage
と deny-setting-mode
の詳細については、「デプロイ スタック」を参照してください。
デプロイを検証する
デプロイされたデプロイ スタックをリソース グループ レベルで一覧表示するには:
az stack group show \
--resource-group 'demoRg' \
--name 'demoStack'
出力には、2 つの管理対象リソース (1 つのストレージ アカウントと 1 つの仮想ネットワーク) が表示されます。
{
"actionOnUnmanage": {
"managementGroups": "detach",
"resourceGroups": "detach",
"resources": "detach"
},
"debugSetting": null,
"deletedResources": [],
"denySettings": {
"applyToChildScopes": false,
"excludedActions": null,
"excludedPrincipals": null,
"mode": "none"
},
"deploymentId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/demoRg/providers/Microsoft.Resources/deployments/demoStack-24051714epybc",
"deploymentScope": null,
"description": null,
"detachedResources": [],
"duration": "PT32.5330364S",
"error": null,
"failedResources": [],
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/demoRg/providers/Microsoft.Resources/deploymentStacks/demoStack",
"location": null,
"name": "demoStack",
"outputs": null,
"parameters": {},
"parametersLink": null,
"provisioningState": "succeeded",
"resourceGroup": "demoRg",
"resources": [
{
"denyStatus": "none",
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/demoRg/providers/Microsoft.Network/virtualNetworks/vnetthmimleef5fwk",
"resourceGroup": "demoRg",
"status": "managed"
},
{
"denyStatus": "none",
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/demoRg/providers/Microsoft.Storage/storageAccounts/storethmimleef5fwk",
"resourceGroup": "demoRg",
"status": "managed"
}
],
"systemData": {
"createdAt": "2024-05-17T14:50:18.382948+00:00",
"createdBy": "johndoe@contoso.com",
"createdByType": "User",
"lastModifiedAt": "2024-05-17T14:50:18.382948+00:00",
"lastModifiedBy": "johndoe@contoso.com",
"lastModifiedByType": "User"
},
"tags": {},
"template": null,
"templateLink": null,
"type": "Microsoft.Resources/deploymentStacks"
}
デプロイ スタック内の管理対象リソースを一覧表示して、デプロイを確認することもできます。
az stack group show \
--name 'demoStack' \
--resource-group 'demoRg' \
--output 'json'
次のように出力されます。
{
"actionOnUnmanage": {
"managementGroups": "detach",
"resourceGroups": "detach",
"resources": "detach"
},
"debugSetting": null,
"deletedResources": [],
"denySettings": {
"applyToChildScopes": false,
"excludedActions": null,
"excludedPrincipals": null,
"mode": "none"
},
"deploymentId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/demoRg/providers/Microsoft.Resources/deployments/demoStack-24051714epybc",
"deploymentScope": null,
"description": null,
"detachedResources": [],
"duration": "PT32.5330364S",
"error": null,
"failedResources": [],
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/demoRg/providers/Microsoft.Resources/deploymentStacks/demoStack",
"location": null,
"name": "demoStack",
"outputs": null,
"parameters": {},
"parametersLink": null,
"provisioningState": "succeeded",
"resourceGroup": "demoRg",
"resources": [
{
"denyStatus": "none",
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/demoRg/providers/Microsoft.Network/virtualNetworks/vnetthmimleef5fwk",
"resourceGroup": "demoRg",
"status": "managed"
},
{
"denyStatus": "none",
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/demoRg/providers/Microsoft.Storage/storageAccounts/storethmimleef5fwk",
"resourceGroup": "demoRg",
"status": "managed"
}
],
"systemData": {
"createdAt": "2024-05-17T14:50:18.382948+00:00",
"createdBy": "johndoe@contoso.com",
"createdByType": "User",
"lastModifiedAt": "2024-05-17T14:50:18.382948+00:00",
"lastModifiedBy": "johndoe@contoso.com",
"lastModifiedByType": "User"
},
"tags": {},
"template": null,
"templateLink": null,
"type": "Microsoft.Resources/deploymentStacks"
}
スタックが作成されたら、Azure portal を介してスタック自体とそれに関連付けられている管理対象リソースの両方にアクセスして表示できます。 スタックがデプロイされているリソース グループに移動すると、関連するすべての情報と設定にアクセスできます。
デプロイ スタックを更新する
デプロイ スタックを更新するには、基になる Bicep ファイルを変更し、デプロイ スタックの作成コマンドを再実行します。
main.bicep を編集して、SKU 名を Standard_GRS
から Standard_LRS
に変更します。
次のコマンドを実行します。
az stack group create \
--name 'demoStack' \
--resource-group 'demoRg' \
--template-file './main.bicep' \
--action-on-unmanage 'detachAll' \
--deny-settings-mode 'none'
Azure portal から、ストレージ アカウントのプロパティをチェックして、変更を確認します。
同じ方法を使用して、デプロイ スタックにリソースを追加するか、デプロイ スタックから管理対象リソースを削除できます。 詳細については、「デプロイ スタックにリソースを追加する」および「デプロイ スタックから管理対象リソースを削除する」を参照してください。
デプロイ スタックを削除する
デプロイ スタックと管理対象リソースを削除するには:
az stack group delete \
--name 'demoStack' \
--resource-group 'demoRg' \
--action-on-unmanage 'deleteAll'
デプロイ スタックを削除するが、マネージド リソースを保持する場合:
az stack group delete \
--name 'demoStack' \
--resource-group 'demoRg' \
--action-on-unmanage 'detachAll'
詳細については、「デプロイ スタックを削除する」参照してください。
remove コマンドを使用すると、管理対象リソースと管理対象リソース グループが排他的に削除されます。 デプロイ スタックで管理されていないリソース グループは、依然としてユーザーが削除する必要があります。
リソースをクリーンアップする
管理対象外のリソース グループを削除します。
az group delete \
--name 'demoRg'