你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

快速入门:使用 Azure Data Share 和 Bicep 共享数据

了解如何从 Azure 存储帐户使用 Bicep 设置新的 Azure Data Share,然后开始与 Azure 组织外部的客户和合作伙伴共享数据。 有关支持的数据存储的列表,请参阅 Azure Data Share 中支持的数据存储

Bicep 是一种特定于域的语言 (DSL),使用声明性语法来部署 Azure 资源。 它提供简明的语法、可靠的类型安全性以及对代码重用的支持。 Bicep 会针对你的 Azure 基础结构即代码解决方案提供最佳创作体验。

先决条件

如果没有 Azure 订阅,请在开始之前创建一个免费帐户

查阅 Bicep 文件

本快速入门中使用的 Bicep 文件来自 Azure 快速入门模板

@description('Specify a project name that is used to generate resource names.')
param projectName string

@description('Specify the location for the resources.')
param location string = resourceGroup().location

@description('Specify an email address for receiving data share invitations.')
param invitationEmail string

@description('Specify snapshot schedule recurrence.')
@allowed([
  'Day'
  'Hour'
])
param syncInterval string = 'Day'

@description('Specify snapshot schedule start time.')
param syncTime string = utcNow('yyyy-MM-ddTHH:mm:ssZ')

var storageAccountName = '${projectName}store'
var containerName = '${projectName}container'
var dataShareAccountName = '${projectName}shareaccount'
var dataShareName = '${projectName}share'
var roleAssignmentName = guid(sa.id, storageBlobDataReaderRoleDefinitionId, dataShareAccount.id)
var inviteName = '${dataShareName}invite'
var storageBlobDataReaderRoleDefinitionId = resourceId('Microsoft.Authorization/roleDefinitions', '2a2b9908-6ea1-4ae2-8e65-a410df84e7d1')

resource sa 'Microsoft.Storage/storageAccounts@2021-04-01' = {
  name: storageAccountName
  location: location
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
  properties: {
    accessTier: 'Hot'
  }
}

resource container 'Microsoft.Storage/storageAccounts/blobServices/containers@2021-04-01' = {
  name: '${sa.name}/default/${containerName}'
}

resource dataShareAccount 'Microsoft.DataShare/accounts@2021-08-01' = {
  name: dataShareAccountName
  location: location
  identity: {
    type: 'SystemAssigned'
  }
  properties: {}
}

resource dataShare 'Microsoft.DataShare/accounts/shares@2021-08-01' = {
  parent: dataShareAccount
  name: dataShareName
  properties: {
    shareKind: 'CopyBased'
  }
}

resource roleAssignment 'Microsoft.Authorization/roleAssignments@2020-04-01-preview' = {
  scope: sa
  name: roleAssignmentName
  properties: {
    roleDefinitionId: storageBlobDataReaderRoleDefinitionId
    principalId: dataShareAccount.identity.principalId
    principalType: 'ServicePrincipal'
  }
}

resource dataSet 'Microsoft.DataShare/accounts/shares/dataSets@2021-08-01' = {
  parent: dataShare
  name: containerName
  kind: 'Container'
  dependsOn: [ // this is used to delay this resource until the roleAssignment replicates
    container
    invitation
    synchronizationSetting
  ]
  properties: {
    subscriptionId: subscription().subscriptionId
    resourceGroup: resourceGroup().name
    storageAccountName: sa.name
    containerName: containerName
  }
}

resource invitation 'Microsoft.DataShare/accounts/shares/invitations@2021-08-01' = {
  parent: dataShare
  name: inviteName
  properties: {
    targetEmail: invitationEmail
  }
}

resource synchronizationSetting 'Microsoft.DataShare/accounts/shares/synchronizationSettings@2021-08-01' = {
  parent: dataShare
  name: '${dataShareName}_synchronizationSetting'
  kind: 'ScheduleBased'
  properties: {
    recurrenceInterval: syncInterval
    synchronizationTime: syncTime
  }
}

Bicep 文件中定义了以下资源:

部署 Bicep 文件

  1. 将该 Bicep 文件另存为本地计算机上的 main.bicep。

  2. 使用 Azure CLI 或 Azure PowerShell 来部署该 Bicep 文件。

    az group create --name exampleRG --location eastus
    az deployment group create --resource-group exampleRG --template-file main.bicep --parameters projectName=<project-name> invitationEmail=<invitation-email>
    

    注意

    将 <project-name> 替换为项目名称。 此项目名称将用于生成资源名称。 将 <invitation-email> 替换为用于接收数据共享邀请的电子邮件地址。

    部署完成后,应会看到一条指出部署成功的消息。

查看已部署的资源

使用 Azure 门户、Azure CLI 或 Azure PowerShell 列出资源组中已部署的资源。

az resource list --resource-group exampleRG

清理资源

如果不再需要资源组及其资源,请使用 Azure 门户、Azure CLI 或 Azure PowerShell 将其删除。

az group delete --name exampleRG

后续步骤

本快速入门介绍了如何创建 Azure Data Share 并邀请收件人。 若要了解有关数据使用者如何接受和接收数据共享,请继续学习接受和接收数据教程。