演習 - Azure Resource Manager 関数を使用して式を作成する
Note
初めてサンドボックスをアクティブ化して利用規約に同意すると、Microsoft アカウントが Microsoft Learn サンドボックスという名前の新しい Azure ディレクトリに関連付けられます。 あなたはコンシェルジェ サブスクリプションという名前の特殊なサブスクリプションに追加されます。
この演習では、Azure Resource Manager (ARM) テンプレート関数を使用して式を作成します。 この式により、プレフィックスの入力とリソース グループ ID のハッシュを組み合わせることによって、リソース グループごとに一意の名前が作成されます。 結果は、dev2hu6sbtr5
や staging5his8hgr67
などの Azure ストレージ アカウント名になります。
この演習では、Azure Resource Manager Tools for Visual Studio Code を使用します。 この拡張機能を Visual Studio Code にインストールしてください。
ARM テンプレート ファイルを作成する
前のモジュールでは、ストレージ アカウントをデプロイする ARM テンプレートを作成しました。 このファイルに、パラメーターと出力を追加しました。 ここでは、そのファイルから始めますが、オーバーヘッドを減らすために出力は削除します。
Visual Studio Code を開き、azuredeploy.json という名前のファイルを作成します。 前のモジュールのファイルがある場合は、そのファイルを使用できます。
ファイルの内容を次のコードに置き換えます。
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "storageName": { "type": "string", "minLength": 3, "maxLength": 24 }, "storageSKU": { "type": "string", "defaultValue": "Standard_LRS", "allowedValues": [ "Standard_LRS", "Standard_GRS", "Standard_RAGRS", "Standard_ZRS", "Premium_LRS", "Premium_ZRS", "Standard_GZRS", "Standard_RAGZRS" ] } }, "functions": [], "variables": {}, "resources": [{ "name": "[parameters('storageName')]", "type": "Microsoft.Storage/storageAccounts", "apiVersion": "2019-06-01", "tags": { "displayName": "[parameters('storageName')]" }, "location": "[resourceGroup().location]", "kind": "StorageV2", "sku": { "name": "[parameters('storageSKU')]" } }], "outputs": {} }
前のモジュールを完了しなかった場合は、少し時間を取ってこのファイルを確認してください。
storageName
パラメーターに注意してください。 このパラメーターは、ストレージ アカウントの一意の名前を渡すために使用されます。
一意のストレージ アカウント名を設定する式を作成する
ストレージ アカウントの名前を渡す代わりに、ストレージ アカウント名のプレフィックスを受け取るようにパラメーターを変更します。 このパラメーターは、式の中で concat
関数に渡されます。
parameters
セクションで、storageName
を storagePrefix に変更します。storagePrefix
パラメーターのmaxLength:
属性の値を 11 に変更します。 ストレージ アカウント名の最大長は 24 文字なので、作成した関数から追加されるハッシュによって、24 文字よりも長い名前にならないようにする必要があります。一意のストレージ アカウント名を設定する式を作成します。
resources
セクションで、name:
属性とdisplayName:
属性の値を"[parameters('storageName')]"
から "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]" に変更します。 この式については、前のユニットで学習しました。 ファイルは次のファイルのようになります。{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "storagePrefix": { "type": "string", "minLength": 3, "maxLength": 11 }, "storageSKU": { "type": "string", "defaultValue": "Standard_LRS", "allowedValues": [ "Standard_LRS", "Standard_GRS", "Standard_RAGRS", "Standard_ZRS", "Premium_LRS", "Premium_ZRS", "Standard_GZRS", "Standard_RAGZRS" ] } }, "functions": [], "variables": {}, "resources": [{ "name": "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]", "type": "Microsoft.Storage/storageAccounts", "apiVersion": "2019-06-01", "tags": { "displayName": "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]" }, "location": "[resourceGroup().location]", "kind": "StorageV2", "sku": { "name": "[parameters('storageSKU')]" } }], "outputs": {} }
ARM テンプレートを Azure にデプロイする
このテンプレートを Azure にデプロイするには、Visual Studio Code ターミナルから Azure アカウントにサインインする必要があります。 Azure CLI ツールがインストールされていることを確認してください。 また、サンドボックスをアクティブ化したのと同じアカウントにサインインしていることを確認してください。
[ターミナル] メニューを使用してターミナル ウィンドウを開きます。
ターミナル ウィンドウの右側にあるドロップダウン メニューに bash が表示されている場合は、適切なシェルが設定されています。 次のセクションにスキップできます。
シェルが適切でない場合は、ドロップダウン メニューで [既定のシェルの選択] を選択します。
bash を選択します。
ターミナルで + を選択して、bash をシェルとして使用する新しいターミナルを作成します。
Azure にサインインする
Visual Studio Code のターミナルから次のコマンドを実行して、Azure にサインインします。 このコマンドを実行すると、ブラウザーが開き、アカウントにサインインできます。
az login
サインインすると、このアカウントに関連付けられているサブスクリプションの一覧がターミナルに表示されます。 サンドボックスをアクティブ化した場合は、コンシェルジェ サブスクリプションという名前のサブスクリプションが表示されます。 このサブスクリプションを、演習の残りの部分で使用します。
このセッションで実行するすべての Azure CLI コマンドに対して、既定のサブスクリプションを設定します。
az account set --subscription "Concierge Subscription"
Note
最近、複数のサンドボックスを使用した場合は、複数のコンシェルジェ サブスクリプションが一覧表示される可能性があります。 その場合は、次の 2 つの手順を使用して既定のサブスクリプションを設定します。 上のコマンドが成功した場合は、次の 2 つの手順をスキップしてください。
コンシェルジェ サブスクリプション ID を取得します。
az account list \ --refresh \ --query "[?contains(name, 'Concierge Subscription')].id" \ --output table
サブスクリプション ID を使用して、既定のサブスクリプションを設定します。
{your subscription ID}
を最新のコンシェルジェ サブスクリプション ID に置き換えます。az account set --subscription {your subscription ID}
既定のリソース グループを設定する
既定のリソース グループを、サンドボックス環境で自動的に作成されたリソース グループに設定します。 これにより、この演習の残りの Azure CLI コマンドでそのパラメーターを省略できるようになります。
az configure --defaults group=<rgn>[sandbox resource group name]</rgn>
テンプレートを Azure にデプロイする
デプロイ コマンドについては前のモジュールで学習しました。 ここでは、Azure CLI の az deployment group create
コマンドを使用します。
Visual Studio Code ターミナルで Azure CLI コマンドを使用して、テンプレートをデプロイします。
{your-prefix}
を別の文字列に置き換えることを忘れないでください。 たとえば、storage などが使用できます。templateFile="azuredeploy.json" today=$(date +"%d-%b-%Y") DeploymentName="addfunction-"$today az deployment group create \ --name $DeploymentName \ --template-file $templateFile \ --parameters storagePrefix={your-prefix}
このコードの最初のセクションで、デプロイするテンプレート ファイルへのパス、およびそのデプロイの名前に対する Azure CLI 変数を設定します。 次に、
az deployment group create
コマンドを使用して、テンプレートを Azure にデプロイしました。ターミナルに
Running...
というメッセージが表示されるはずです。
このテンプレートを Azure にデプロイするには、Visual Studio Code ターミナルから Azure アカウントにサインインする必要があります。 Azure PowerShell ツールがインストールされていること、およびサンドボックスをアクティブ化したものと同じアカウントにサインインしていることを確認してください。
[ターミナル] メニューを使用してターミナル ウィンドウを開きます。
ターミナル ウィンドウの右側にあるドロップダウン メニューに pwsh が表示されている場合は、適切なシェルが設定されています。 次のセクションにスキップできます。
シェルが適切でない場合は、ドロップダウン メニューで [既定のシェルの選択] を選択します。
pwsh を選択します。
ターミナルで + を選択して、pwsh がシェルとなっている新しいターミナルを作成します。
Azure PowerShell を使用して Azure にサインインする
Visual Studio Code のターミナルから次のコマンドを実行して、Azure にサインインします。 このコマンドを実行すると、ブラウザーでアカウントにサインインできる URL を開くよう求められます。 プロンプトにあるコードを使用します。 サンドボックスのアクティブ化に使用したのと同じアカウントでサインインしてください。
Connect-AzAccount
サインインすると、このアカウントに関連付けられているサブスクリプションの一覧がターミナルに表示されます。 サンドボックスをアクティブ化した場合は、コンシェルジェ サブスクリプションという名前のサブスクリプションが表示されます。 このサブスクリプションを、演習の残りの部分で使用します。
このセッションで実行するすべての Azure CLI コマンドに対して、既定のサブスクリプションを設定します。
サブスクリプション ID を取得します。 このコマンドは、サブスクリプションとそれらの ID を一覧表示します。 サブスクリプション ID は 2 番目の列です。
Concierge Subscription
を探し、2 番目の列をコピーします。 次のような画面が表示されますaaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
。Get-AzSubscription
アクティブなサブスクリプションをコンシェルジェ サブスクリプションに変更します。
{Your subscription ID}
を先ほどコピーした ID に置き換えるのを忘れないでください。$context = Get-AzSubscription -SubscriptionId {Your subscription ID} Set-AzContext $context
サンドボックス環境で自分用に作成されたリソース グループに、既定のリソース グループを設定します。 これにより、この演習の残りの Azure PowerShell コマンドでそのパラメーターを省略できるようになります。
Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
テンプレートを Azure にデプロイする
デプロイ コマンドについては前のモジュールで学習しました。 ここでは、Azure PowerShell の New-AzResourceGroupDeployment
コマンドを使用します。
Visual Studio Code ターミナルで、Azure PowerShell コマンドを使用してテンプレートをデプロイします。
{your-prefix}
を別の文字列に置き換えることを忘れないでください。 たとえば、storage などが使用できます。$templateFile = "azuredeploy.json" $today=Get-Date -Format "MM-dd-yyyy" $deploymentName="addfunction-"+"$today" New-AzResourceGroupDeployment ` -Name $deploymentName ` -TemplateFile $templateFile ` -storagePrefix {your-prefix}
このコードの最初のセクションで、デプロイするテンプレート ファイルへのパス、およびそのデプロイの名前に対する Azure PowerShell 変数を設定します。 次に、New-AzResourceGroupDeployment
コマンドを使用して、テンプレートを Azure にデプロイしました。
デプロイをチェックする
デプロイが終わったら、Azure portal に移動し、サンドボックス サブスクリプション内にいることを確認します。 サブスクリプションを確認するには、ページの右上隅にあるアバターを選択します。 [ディレクトリの切り替え] を選択します。 一覧で、[Microsoft Learn サンドボックス] ディレクトリを選択します。
左側のウィンドウで、[リソース グループ] を選択します。
[サンドボックス リソース グループ名] を選択します。[概要] セクションに、1 つのデプロイが成功したことが表示されます。
[1 Succeeded](1 件成功) を選択して、デプロイの詳細を表示します。
addfunction を選択して、デプロイされたリソースを確認します。
このモジュールの後の方でデプロイをもう一度確認できるように、ページはブラウザーで開いたままにしておきます。