データベース リソースまたはコンテナー リソースを構成する

完了

各テンプレート リソースでは、同じリソースの種類とバージョンが、Azure Resource Manager テンプレートと Bicep テンプレートの両方で使用されます。 1 つの言語でビルドする方法を学習した場合は、もう一方の言語で簡単に学習できます。

注意

Bicep テンプレートには、"空" のテンプレート構文は必要ありません。 空のファイルで定義の書き込みを開始できます。

アカウント リソース

Bicep の Microsoft.DocumentDB/databaseAccounts リソースには、Azure Resource Manager テンプレートの場合と同じ最小限のプロパティを含める必要があります。

csmsarm というプレフィックスを持つ一意の名前を持ち、米国西部にデプロイされているアカウントの例を次に示します。

resource Account 'Microsoft.DocumentDB/databaseAccounts@2021-05-15' = {
  name: 'csmsbicep${uniqueString(resourceGroup().id)}'
  location: resourceGroup().location
  properties: {
    databaseAccountOfferType: 'Standard'
    locations: [
      {
        locationName: 'westus'
      }
    ]
  }
}

ヒント

このリソースが以前のデプロイから既に存在する場合、Azure Resource Manager ではそのリソースがスキップされ、次に進みます。 これは、テンプレートを段階的にビルドする場合に非常に便利です。

データベース リソース

Microsoft.DocumentDB/databaseAccounts/sqlDatabases リソースのこの例では、データベース リソースを構成します。これは、前のユニットで確認した JSON テンプレートとはわずかに異なります。

Bicep には、詳細な dependsOn プロパティとは対照的に、リレーションシップを定義するプロパティを定義するためのリソースも必要です。

resource Database 'Microsoft.DocumentDB/databaseAccounts/sqlDatabases@2021-05-15' = {
  parent: Account
  name: 'cosmicworks'
  properties: {
    options: {
      
    }
    resource: {
      id: 'cosmicworks'
    }
  }
}

コンテナー リソース

この Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers リソースは、このレベルでスループット プロパティを定義する点を除き、JSON と同等のリソースです。

resource Container 'Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers@2021-05-15' = {
  parent: Database
  name: 'customers'
  properties: {
    resource: {
      id: 'customers'
      partitionKey: {
        paths: [
          '/regionId'
        ]
      }
    }
  }
}

最終的なテンプレート

すべてのリソースが配置されたので、テンプレート ファイルには次のコードが含まれるはずです。

resource Account 'Microsoft.DocumentDB/databaseAccounts@2021-05-15' = {
  name: 'csmsbicep${uniqueString(resourceGroup().id)}'
  location: resourceGroup().location
  properties: {
    databaseAccountOfferType: 'Standard'
    locations: [
      {
        locationName: 'westus'
      }
    ]
  }
}

resource Database 'Microsoft.DocumentDB/databaseAccounts/sqlDatabases@2021-05-15' = {
  parent: Account
  name: 'cosmicworks'
  properties: {
    options: {
      
    }
    resource: {
      id: 'cosmicworks'
    }
  }
}

resource Container 'Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers@2021-05-15' = {
  parent: Database
  name: 'customers'
  properties: {
    resource: {
      id: 'customers'
      partitionKey: {
        paths: [
          '/regionId'
        ]
      }
    }
  }
}