Azure Resource Manager テンプレートを使用して Azure Cosmos DB SQL (コア) API リソースを管理するManage Azure Cosmos DB SQL (Core) API resources using Azure Resource Manager Templates

Azure Cosmos アカウント、データベース、コンテナーを作成する Create an Azure Cosmos account, database and container

Azure Resource Manager テンプレートを使用して Azure Cosmos DB リソースを作成します。Create Azure Cosmos DB resources using an Azure Resource Manager template. このテンプレートは、データベース レベルで 400 RU/秒のスループットを共有する 2 つのコンテナーを含む Azure Cosmos アカウントを作成します。This template will create an Azure Cosmos account with two containers that share 400 RU/s throughput at the database level. テンプレートをコピーして次に示すようにデプロイするか、Azure クイック スタート ギャラリーにアクセスして Azure portal からデプロイします。Copy the template and deploy as shown below or visit Azure Quickstart Gallery and deploy from the Azure portal. テンプレートをローカル コンピューターにダウンロードするか、新しいテンプレートを作成して、--template-file パラメーターでローカル パスを指定することもできます。You can also download the template to your local computer or create a new template and specify the local path with the --template-file parameter.

注意

  • 現時点では、Resource Manager テンプレートを使用してユーザー定義関数 (UDF)、ストアド プロシージャおよびトリガーをデプロイすることはできません。Currently you cannot deploy User Defined Functions(UDFs), stored procedures, and triggers by using Resource Manager templates.
  • Azure Cosmos アカウントの場所の追加または削除と他のプロパティの変更を同時に行うことはできません。You cannot simultaneously add or remove locations to an Azure Cosmos account and modify other properties. これらは別の操作として行う必要があります。These must be done as separate operations.
  • アカウント名は小文字とし、31 文字未満にする必要があります。Account names must be lower case and < 31 characters.
{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "accountName": {
            "type": "string",
            "defaultValue": "[concat('sql-', uniqueString(resourceGroup().id))]",
            "metadata": {
                "description": "Cosmos DB account name"
            }
        },
        "location": {
            "type": "string",
            "defaultValue": "[resourceGroup().location]",
            "metadata": {
                "description": "Location for the Cosmos DB account."
            }
        },
        "primaryRegion":{
            "type":"string",
            "metadata": {
                "description": "The primary replica region for the Cosmos DB account."
            }
        },
        "secondaryRegion":{
            "type":"string",
            "metadata": {
              "description": "The secondary replica region for the Cosmos DB account."
          }
        },
        "defaultConsistencyLevel": {
            "type": "string",
            "defaultValue": "Session",
            "allowedValues": [ "Eventual", "ConsistentPrefix", "Session", "BoundedStaleness", "Strong" ],
            "metadata": {
                "description": "The default consistency level of the Cosmos DB account."
            }
        },
        "maxStalenessPrefix": {
            "type": "int",
            "minValue": 10,
            "defaultValue": 100000,
            "maxValue": 2147483647,
            "metadata": {
                "description": "Max stale requests. Required for BoundedStaleness. Valid ranges, Single Region: 10 to 1000000. Multi Region: 100000 to 1000000."
            }
        },
        "maxIntervalInSeconds": {
            "type": "int",
            "minValue": 5,
            "defaultValue": 300,
            "maxValue": 86400,
            "metadata": {
                "description": "Max lag time (seconds). Required for BoundedStaleness. Valid ranges, Single Region: 5 to 84600. Multi Region: 300 to 86400."
            }
        },	
        "multipleWriteLocations": {
            "type": "bool",
            "defaultValue": true,
            "allowedValues": [ true, false ],
            "metadata": {
                "description": "Enable multi-master to make all regions writable."
            }
        },
        "automaticFailover": {
            "type": "bool",
            "defaultValue": false,
            "allowedValues": [ true, false ],
            "metadata": {
                "description": "Enable automatic failover for regions. Ignored when Multi-Master is enabled"
            }
        },
        "databaseName": {
            "type": "string",
            "metadata": {
                "description": "The name for the SQL database"
            }
        },
        "throughput": {
            "type": "int",
            "defaultValue": 400,
            "minValue": 400,
            "maxValue": 1000000,
            "metadata": {
                "description": "The throughput for the database"
            }			
        },
        "container1Name": {
            "type": "string",
            "defaultValue": "container1",
            "metadata": {
                "description": "The name for the first SQL container"
            }
        },
        "container2Name": {
            "type": "string",
            "defaultValue": "container2",
            "metadata": {
                "description": "The name for the second SQL container"
            }
        }
    },
    "variables": {
        "accountName": "[toLower(parameters('accountName'))]",
        "consistencyPolicy": {
            "Eventual": {
                "defaultConsistencyLevel": "Eventual"
            },
            "ConsistentPrefix": {
                "defaultConsistencyLevel": "ConsistentPrefix"
            },
            "Session": {
                "defaultConsistencyLevel": "Session"
            },
            "BoundedStaleness": {
                "defaultConsistencyLevel": "BoundedStaleness",
                "maxStalenessPrefix": "[parameters('maxStalenessPrefix')]",
                "maxIntervalInSeconds": "[parameters('maxIntervalInSeconds')]"
            },
            "Strong": {
                "defaultConsistencyLevel": "Strong"
            }
        },
        "locations": 
        [ 
            {
                "locationName": "[parameters('primaryRegion')]",
                "failoverPriority": 0
            }, 
            {
                "locationName": "[parameters('secondaryRegion')]",
                "failoverPriority": 1
            }
        ]
    },
    "resources": 
    [
        {
            "type": "Microsoft.DocumentDB/databaseAccounts",
            "name": "[variables('accountName')]",
            "apiVersion": "2016-03-31",
            "location": "[parameters('location')]",
            "kind": "GlobalDocumentDB",
            "properties": {
                "consistencyPolicy": "[variables('consistencyPolicy')[parameters('defaultConsistencyLevel')]]",
                "locations": "[variables('locations')]",
                "databaseAccountOfferType": "Standard",
                "enableAutomaticFailover": "[parameters('automaticFailover')]",
                "enableMultipleWriteLocations": "[parameters('multipleWriteLocations')]"
            }
        },
        {
            "type": "Microsoft.DocumentDB/databaseAccounts/apis/databases",
            "name": "[concat(variables('accountName'), '/sql/', parameters('databaseName'))]",
            "apiVersion": "2016-03-31",
            "dependsOn": [ "[resourceId('Microsoft.DocumentDB/databaseAccounts/', variables('accountName'))]" ],
            "properties":{
                "resource":{
                    "id": "[parameters('databaseName')]"
                },
                "options": { "throughput": "[parameters('throughput')]" }
            }
        },
        {
            "type": "Microsoft.DocumentDb/databaseAccounts/apis/databases/containers",
            "name": "[concat(variables('accountName'), '/sql/', parameters('databaseName'), '/', parameters('container1Name'))]",
            "apiVersion": "2016-03-31",
            "dependsOn": [ "[resourceId('Microsoft.DocumentDB/databaseAccounts/apis/databases', variables('accountName'), 'sql', parameters('databaseName'))]" ],
            "properties":
            {
                "resource":{
                    "id":  "[parameters('container1Name')]",
                    "partitionKey": {
                        "paths": [
                        "/MyPartitionKey1"
                        ],
                        "kind": "Hash"
                    },
                    "indexingPolicy": {
                        "indexingMode": "consistent",
                        "includedPaths": [{
                                "path": "/*"
                            }
                        ],
                        "excludedPaths": [{
                                "path": "/MyPathToNotIndex/*"
                            }
                        ]
                    }
                }
            }
        },
        {
            "type": "Microsoft.DocumentDb/databaseAccounts/apis/databases/containers",
            "name": "[concat(variables('accountName'), '/sql/', parameters('databaseName'), '/', parameters('container2Name'))]",
            "apiVersion": "2016-03-31",
            "dependsOn": [ "[resourceId('Microsoft.DocumentDB/databaseAccounts/apis/databases', variables('accountName'), 'sql', parameters('databaseName'))]" ],
            "properties":
            {
                "resource":{
                    "id":  "[parameters('container2Name')]",
                    "partitionKey": {
                        "paths": [
                        "/MyPartitionKey2"
                        ],
                        "kind": "Hash"
                    },
                    "indexingPolicy": {
                        "indexingMode": "consistent",
                        "includedPaths": [{
                                "path": "/*"
                            }
                        ]
                    }
                }
            }
        }
    ]
}

PowerShell 経由でのデプロイDeploy via PowerShell

PowerShell を使用して Resource Manager テンプレートをデプロイするには、スクリプトの [コピー] を実行し、 [試してみる] を選択して、Azure Cloud Shell を開きます。To deploy the Resource Manager template using PowerShell, Copy the script and select Try it to open the Azure Cloud shell. スクリプトを貼り付けるには、シェルを右クリックし、 [貼り付け] を選択します。To paste the script, right-click the shell, and then select Paste:


$resourceGroupName = Read-Host -Prompt "Enter the Resource Group name"
$accountName = Read-Host -Prompt "Enter the account name"
$location = Read-Host -Prompt "Enter the location (i.e. westus2)"
$primaryRegion = Read-Host -Prompt "Enter the primary region (i.e. westus2)"
$secondaryRegion = Read-Host -Prompt "Enter the secondary region (i.e. eastus2)"
$databaseName = Read-Host -Prompt "Enter the database name"
$container1Name = Read-Host -Prompt "Enter the first container name"
$container2Name = Read-Host -Prompt "Enter the second container name"

New-AzResourceGroup -Name $resourceGroupName -Location $location
New-AzResourceGroupDeployment `
    -ResourceGroupName $resourceGroupName `
    -TemplateUri "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-cosmosdb-sql/azuredeploy.json" `
    -accountName $accountName `
    -location $location `
    -primaryRegion $primaryRegion `
    -secondaryRegion $secondaryRegion `
    -databaseName $databaseName `
    -container1Name $container1Name `
    -container2Name $container2Name

 (Get-AzResource --ResourceType "Microsoft.DocumentDb/databaseAccounts" --ApiVersion "2015-04-08" --ResourceGroupName $resourceGroupName).name

Azure Cloud Shell からではなく、PowerShell のローカルでインストールされたバージョンを使用する場合、Azure PowerShell モジュールをインストールする必要があります。If you choose to use a locally installed version of PowerShell instead of from the Azure Cloud shell, you have to install the Azure PowerShell module. バージョンを確認するには、Get-Module -ListAvailable Az を実行します。Run Get-Module -ListAvailable Az to find the version.

Azure CLI によるデプロイDeploy via Azure CLI

Azure CLI を使用して Resource Manager テンプレートをデプロイするには、 [試してみる] を選択して、Azure Cloud Shell を開きます。To deploy the Resource Manager template using Azure CLI, select Try it to open the Azure Cloud shell. スクリプトを貼り付けるには、シェルを右クリックし、 [貼り付け] を選択します。To paste the script, right-click the shell, and then select Paste:

read -p 'Enter the Resource Group name: ' resourceGroupName
read -p 'Enter the location (i.e. westus2): ' location
read -p 'Enter the account name: ' accountName
read -p 'Enter the primary region (i.e. westus2): ' primaryRegion
read -p 'Enter the secondary region (i.e. eastus2): ' secondaryRegion
read -p 'Enter the database name: ' databaseName
read -p 'Enter the first container name: ' container1Name
read -p 'Enter the second container name: ' container2Name

az group create --name $resourceGroupName --location $location
az group deployment create --resource-group $resourceGroupName \
   --template-uri https://raw.githubusercontent.com/azure/azure-quickstart-templates/master/101-cosmosdb-sql/azuredeploy.json \
   --parameters accountName=$accountName primaryRegion=$primaryRegion secondaryRegion=$secondaryRegion databaseName=$databaseName \
   container1Name=$container1Name container2Name=$container2Name

az cosmosdb show --resource-group $resourceGroupName --name accountName --output tsv

az cosmosdb show コマンドは、新しく作成された Azure Cosmos アカウントをそのプロビジョニング後に表示します。The az cosmosdb show command shows the newly created Azure Cosmos account after it has been provisioned. Cloud Shell を使用せずに、Azure CLI のローカルでインストールされたバージョンを使用する場合、「Azure コマンド ライン インターフェイス (CLI)」の記事を参照してください。If you choose to use a locally installed version of Azure CLI instead of using CloudShell, see Azure Command-Line Interface (CLI) article.

データベースのスループット (RU/秒) を更新する Update throughput (RU/s) on a database

次のテンプレートでは、データベースのスループットが更新されます。The following template will update the throughput of a database. テンプレートをコピーして次に示すようにデプロイするか、Azure クイック スタート ギャラリーにアクセスして Azure portal からデプロイします。Copy the template and deploy as shown below or visit Azure Quickstart Gallery and deploy from the Azure portal. テンプレートをローカル コンピューターにダウンロードするか、新しいテンプレートを作成して、--template-file パラメーターでローカル パスを指定することもできます。You can also download the template to your local computer or create a new template and specify the local path with the --template-file parameter.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "accountName": {
            "type": "string",
            "metadata": {
                "description": "Cosmos account name"
            }
        },
        "databaseName": {
            "type": "string",
            "metadata": {
                "description": "Database name"
            }
        },
        "throughput": {
            "type": "int",
            "minValue": 400,
            "maxValue": 1000000,
            "metadata": {
                "description": "Updated throughput"
            }			
        }
    },
    "variables": {
        "accountName": "[toLower(parameters('accountName'))]"
    },
    "resources": 
    [
        {
            "type": "Microsoft.DocumentDB/databaseAccounts/apis/databases/settings",
            "name": "[concat(variables('accountName'), '/sql/', parameters('databaseName'), '/throughput')]",
            "apiVersion": "2016-03-31",
            "properties": {
                "resource": {
                  "throughput": "[parameters('throughput')]"
                }
            }
        }
    ]
}

PowerShell を使用してデータベース テンプレートをデプロイするDeploy database template via PowerShell

PowerShell を使用して Resource Manager テンプレートをデプロイするには、スクリプトの [コピー] を実行し、 [試してみる] を選択して、Azure Cloud Shell を開きます。To deploy the Resource Manager template using PowerShell, Copy the script and select Try it to open the Azure Cloud shell. スクリプトを貼り付けるには、シェルを右クリックし、 [貼り付け] を選択します。To paste the script, right-click the shell, and then select Paste:

$resourceGroupName = Read-Host -Prompt "Enter the Resource Group name"
$accountName = Read-Host -Prompt "Enter the account name"
$databaseName = Read-Host -Prompt "Enter the database name"
$throughput = Read-Host -Prompt "Enter new throughput for database"

New-AzResourceGroupDeployment `
    -ResourceGroupName $resourceGroupName `
    -TemplateUri "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-cosmosdb-sql-database-ru-update/azuredeploy.json" `
    -accountName $accountName `
    -databaseName $databaseName `
    -throughput $throughput

Azure CLI を使用してデータベース テンプレートをデプロイするDeploy database template via Azure CLI

Azure CLI を使用して Resource Manager テンプレートをデプロイするには、 [試してみる] を選択して、Azure Cloud Shell を開きます。To deploy the Resource Manager template using Azure CLI, select Try it to open the Azure Cloud shell. スクリプトを貼り付けるには、シェルを右クリックし、 [貼り付け] を選択します。To paste the script, right-click the shell, and then select Paste:

read -p 'Enter the Resource Group name: ' resourceGroupName
read -p 'Enter the account name: ' accountName
read -p 'Enter the database name: ' databaseName
read -p 'Enter the new throughput: ' throughput

az group deployment create --resource-group $resourceGroupName \
   --template-uri https://raw.githubusercontent.com/azure/azure-quickstart-templates/master/101-cosmosdb-sql-database-ru-update/azuredeploy.json \
   --parameters accountName=$accountName databaseName=$databaseName throughput=$throughput

コンテナーのスループット (RU/秒) を更新する Update throughput (RU/s) on a container

次のテンプレートでは、コンテナーのスループットが更新されます。The following template will update the throughput of a container. テンプレートをコピーして次に示すようにデプロイするか、Azure クイック スタート ギャラリーにアクセスして Azure portal からデプロイします。Copy the template and deploy as shown below or visit Azure Quickstart Gallery and deploy from the Azure portal. テンプレートをローカル コンピューターにダウンロードするか、新しいテンプレートを作成して、--template-file パラメーターでローカル パスを指定することもできます。You can also download the template to your local computer or create a new template and specify the local path with the --template-file parameter.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "accountName": {
            "type": "string",
            "metadata": {
                "description": "Cosmos account name"
            }
        },
        "databaseName": {
            "type": "string",
            "metadata": {
                "description": "SQL database name"
            }
        },
        "containerName": {
            "type": "string",
            "metadata": {
                "description": "SQL container name"
            }
        },
        "throughput": {
            "type": "int",
            "minValue": 400,
            "maxValue": 1000000,
            "metadata": {
                "description": "Updated throughput amount"
            }			
        }
    },
    "variables": {
        "accountName": "[toLower(parameters('accountName'))]"
    },
    "resources": 
    [
        {
            "type": "Microsoft.DocumentDB/databaseAccounts/apis/databases/containers/settings",
            "name": "[concat(variables('accountName'), '/sql/', parameters('databaseName'), '/', parameters('containerName'), '/throughput')]",
            "apiVersion": "2016-03-31",
            "properties": {
                "resource": {
                  "throughput": "[parameters('throughput')]"
                }
            }
        }
    ]
}

PowerShell を使用してコンテナー テンプレートをデプロイするDeploy container template via PowerShell

PowerShell を使用して Resource Manager テンプレートをデプロイするには、スクリプトの [コピー] を実行し、 [試してみる] を選択して、Azure Cloud Shell を開きます。To deploy the Resource Manager template using PowerShell, Copy the script and select Try it to open the Azure Cloud shell. スクリプトを貼り付けるには、シェルを右クリックし、 [貼り付け] を選択します。To paste the script, right-click the shell, and then select Paste:

$resourceGroupName = Read-Host -Prompt "Enter the Resource Group name"
$accountName = Read-Host -Prompt "Enter the account name"
$databaseName = Read-Host -Prompt "Enter the database name"
$containerName = Read-Host -Prompt "Enter the container name"
$throughput = Read-Host -Prompt "Enter new throughput for container"

New-AzResourceGroupDeployment `
    -ResourceGroupName $resourceGroupName `
    -TemplateUri "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-cosmosdb-sql-container-ru-update/azuredeploy.json" `
    -accountName $accountName `
    -databaseName $databaseName `
    -containerName $containerName `
    -throughput $throughput

Azure CLI を使用してコンテナー テンプレートをデプロイするDeploy container template via Azure CLI

Azure CLI を使用して Resource Manager テンプレートをデプロイするには、 [試してみる] を選択して、Azure Cloud Shell を開きます。To deploy the Resource Manager template using Azure CLI, select Try it to open the Azure Cloud shell. スクリプトを貼り付けるには、シェルを右クリックし、 [貼り付け] を選択します。To paste the script, right-click the shell, and then select Paste:

read -p 'Enter the Resource Group name: ' resourceGroupName
read -p 'Enter the account name: ' accountName
read -p 'Enter the database name: ' databaseName
read -p 'Enter the container name: ' containerName
read -p 'Enter the new throughput: ' throughput

az group deployment create --resource-group $resourceGroupName \
   --template-uri https://raw.githubusercontent.com/azure/azure-quickstart-templates/master/101-cosmosdb-sql-container-ru-update/azuredeploy.json \
   --parameters accountName=$accountName databaseName=$databaseName containerName=$containerName throughput=$throughput

次の手順Next Steps

次にその他のリソースを示します。Here are some additional resources: