Az モジュール
現時点(2019年2月)最新のAzureリソースをマネージするためのコマンドラインパッケージです。呼び名は「Azure PowerShell Az Module」とか「Az PowerShell 1.2」とか統一感がないんですが、「Az」というのが目立ちます。
ローカルPowerShellに導入
ドキュメンテーションでは旧バージョンのAzureRMをまずアンインストールすることを推奨しています。
PowerShellコマンドプロンプトを管理者権限で開いてから:
Install-Module -Name Az -AllowClobber
もしくは、管理者権限なしのコマンドからPowerShellコマンドプロンプトから
Install-Module -Name Az -AllowClobber -Scope CurrentUser
でインストールします。
警告が出るけど「Yes」でオッケーです(詳細は上のリンクからドキュメンテーションを参照)
Azure につなげるには
Connect-AzAccount
おなじみのログインウィンドウがポップアップするので認証手続きを完了します。これでAzureリソースをマネージする準備が出来ました。
サブスクリプション選び
とりあえずは何をするにしろ「話はサブスクリプションを選んでから」ですね。
このドキュメンテーションにこじんまりとまとまってました。使うコマンドは:
Get-AzSubsctiption // 自分がアクセスできるサブスクリプションを一覧表示
Select-AzSubscription // 特定のサブスクリプションを選択
Get-AzContext // 目的のサブスクリプションが選択されているかを確認
この流れを覚えておけばOK。
Cloudで導入(Azure Cloud Shellを使うだけ)
Azure Cloud Shellを使えばすぐにAzを使えます。リソースをブラウズしたり確認するだけならこっちの方が手っ取り早いですね。自分もこれからはAzureポータルのUI以外にもCloud Shellを使えるようになろうと思います。リソースの種類や確認したい内容によってはCloud Shellの方が効率がよい場合があると見た。
Cosmos DB アカウントでも作って見ましょう
ARMテンプレートで作ります。通常、テンプレートファイルとパラメーターファイルの二つのファイルを書いて、コマンドラインで実行します。
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"DatabaseAccountName": {
"type": "string",
"metadata": {
"description": "The Azure Cosmos DB account name."
}
},
"Location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Location for all resources."
}
}
},
"resources": [
{
"apiVersion": "2015-04-08",
"type": "Microsoft.DocumentDB/databaseAccounts",
"kind": "GlobalDocumentDB",
"name": "[parameters('DatabaseAccountName')]",
"location": "[parameters('Location')]",
"properties": {
"databaseAccountOfferType": "Standard",
"locations": [
{
"locationName": "[parameters('Location')]",
"failoverPriority": 0
}
],
"capabilities": []
},
"tags": {
"defaultExperience": "Core SQL API"
}
}
]
}
ちなみに「Core SQL」のAPIを使う際は上記のようにcapabilities
パラメーターに空の配列を指定します。そうすると、デフォルトで「Core SQL」になります。SQL以外のものを使いたい場合は、例えば['EnableGremlin']のように指定します。
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"DatabaseAccountName": {
"value": "my-cosmos-db-acount"
},
"Location": {
"value": "East US"
}
}
}
PowerShell Az moduleを使って、ARMテンプレートを元にCosmosDBアカウントを作成します。
New-AzResourceGroupDeployment -Name TestDeployment -ResourceGroupName <your-resource-group> -TemplateFile .\MyCosmosDb.Template.json -TemplateParameterFile .MyCosmosDb.Parameters.json
4,5分ぐらい待ったら成功するはずです。
まとめ
また新しいコマンドラインパッケージが出ましたね。Azureもどんどん成熟してきてるので名前や手順のコンベンションも統一感が出てきました。この新しいAzモジュールも、より簡単になったというのが売りのようです。