你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
配置导出设置并设置存储帐户
FHIR® 服务支持 $export
HL7 为从 FHIR 服务器导出 FHIR 数据指定的操作。 在 FHIR 服务实现中,调用 $export
终结点会导致 FHIR 服务将数据导出到预配置的 Azure 存储帐户。
在配置导出之前,请确保已授予应用程序角色“FHIR 数据导出者角色”。 若要详细了解应用程序角色,请参阅 FHIR 服务的身份验证和授权。
为 FHIR 服务设置 $export
操作有三个步骤-
- 为 FHIR 服务启用托管标识。
- 配置新的或现有的 Azure Data Lake Storage Gen2(ADLS Gen2)帐户,并为 FHIR 服务授予访问该帐户的权限。
- 将 ADLS Gen2 帐户设置为 FHIR 服务的导出目标。
为 FHIR 服务启用托管标识
为 FHIR 数据导出配置环境的第一步是为 FHIR 服务启用系统范围的托管标识。 此托管标识用于对 FHIR 服务进行身份验证,允许在操作期间 $export
访问 ADLS Gen2 帐户。 有关 Azure 中的托管标识的详细信息,请参阅关于 Azure 资源的托管标识。
在此步骤中,浏览到Azure 门户中的 FHIR 服务,然后选择“标识”。 将 “状态 ”选项设置为 “打开”,然后单击“ 保存”。 显示“是”和“否”按钮时,选择“是”以启用 FHIR 服务的托管标识。 启用系统标识后,会看到 FHIR 服务的对象(主体)ID 值。
在存储帐户中授予 FHIR 服务访问权限
转到Azure 门户中的 ADLS Gen2 帐户。 如果尚未部署 ADSL Gen2 帐户,请按照 以下说明 创建 Azure 存储帐户并升级到 ADLS Gen2。 请确保在“高级”选项卡中启用分层命名空间选项以创建 ADLS Gen2 帐户。
在 ADLS Gen2 帐户中,选择“访问控制”(IAM)。
选择“添加”>“添加角色分配”。 如果“添加角色分配”选项灰显,请让 Azure 管理员获取此步骤的帮助。
在 “角色 ”选项卡上,选择“ 存储 Blob 数据参与者 ”角色。
在 “成员 ”选项卡上,选择“ 托管标识”,然后单击“ 选择成员”。
选择 Azure 订阅。
选择 系统分配的托管标识,然后选择以前为 FHIR 服务启用的托管标识。
在“审阅 + 分配”选项卡上,单击“审阅 + 分配”,将存储 Blob 数据参与者角色分配给 FHIR 服务。
若要详细了解如何在 Azure 门户中分配角色,请参阅 Azure 内置角色。
现在,可以通过将 ADLS Gen2 帐户设置为用于导出的默认存储帐户来配置 FHIR 服务。
指定 FHIR 服务导出的存储帐户
最后一步是指定 FHIR 服务在导出数据时使用的 ADLS Gen2 帐户。
注意
在存储帐户中,如果尚未将存储 Blob 数据参与者角色分配给 FHIR 服务,操作$export
将失败。
转到 FHIR 服务设置。
选择“导出”。
从列表中选择存储帐户的名称。 如果需要搜索存储帐户,请使用 “名称”、“ 资源组”或 “区域 ”筛选器。
完成此配置步骤后,即可从 FHIR 服务导出数据。 有关如何使用 FHIR 服务执行$export
操作的详细信息,请参阅如何导出 FHIR 数据。
注意
仅允许将与 FHIR 服务相同的订阅中的存储帐户注册为操作的目标 $export
。
保护 FHIR 服务 $export
操作
若要安全地从 FHIR 服务导出到 ADLS Gen2 帐户,有两个选项:
允许 FHIR 服务以Microsoft受信任的服务的形式访问存储帐户。
允许与 FHIR 服务关联的特定 IP 地址访问存储帐户。 此选项允许两种不同的配置,具体取决于存储帐户是否与 FHIR 服务位于同一 Azure 区域中。
允许 FHIR 服务作为 Microsoft 信任的服务
转到Azure 门户中的 ADLS Gen2 帐户,然后选择“网络”。 从“防火墙和虚拟网络”选项卡下的所选虚拟网络和 IP 地址中选择“已启用”。
从“资源类型”下拉列表中选择Microsoft.HealthcareApis/workspaces,然后从“实例名称”下拉列表中选择工作区。
在“例外”部分下,选择“允许受信任的服务”列表中的 Azure 服务访问此存储帐户的框。 请确保单击“保存”以保留设置。
接下来,运行以下 PowerShell 命令,在本地 Az.Storage
环境中安装 PowerShell 模块。 这允许使用 PowerShell 配置 Azure 存储帐户。
Install-Module Az.Storage -Repository PsGallery -AllowClobber -Force
现在,使用以下 PowerShell 命令将所选 FHIR 服务实例设置为存储帐户的受信任资源。 确保在 PowerShell 环境中定义所有列出的参数。
你需要在本地环境中以管理员身份运行 Add-AzStorageAccountNetworkRule
命令。 有关详细信息,请参阅配置 Azure 存储防火墙和虚拟网络。
$subscription="xxx"
$tenantId = "xxx"
$resourceGroupName = "xxx"
$storageaccountName = "xxx"
$workspacename="xxx"
$fhirname="xxx"
$resourceId = "/subscriptions/$subscription/resourceGroups/$resourceGroupName/providers/Microsoft.HealthcareApis/workspaces/$workspacename/fhirservices/$fhirname"
Add-AzStorageAccountNetworkRule -ResourceGroupName $resourceGroupName -Name $storageaccountName -TenantId $tenantId -ResourceId $resourceId
运行此命令后,在“资源实例”下的“防火墙”部分中,会在“实例名称”下拉列表中看到 2 个选择。 这些是注册为Microsoft受信任资源的工作区实例和 FHIR 服务实例的名称。
现在可以安全地将 FHIR 数据导出到存储帐户。
存储帐户位于所选网络上,无法公开访问。 若要安全地访问文件,可以为存储帐户启用 专用终结点 。
允许特定 IP 地址从其他 Azure 区域访问 Azure 存储帐户
在Azure 门户中,转到 Azure Data Lake Storage Gen2 帐户。
在左侧菜单中选择“网络”。
选择“已从所选虚拟网络和 IP 地址启用”。
在 “防火墙 ”部分的 “地址范围 ”框中,指定 IP 地址。 添加 IP 范围,以允许从 Internet 或本地网络进行访问。 可以在下表中找到预配 FHIR 服务的 Azure 区域的 IP 地址。
Azure 区域 公共 IP 地址 澳大利亚东部 20.53.44.80 加拿大中部 20.48.192.84 美国中部 52.182.208.31 美国东部 20.62.128.148 美国东部 2 20.49.102.228 美国东部 2 EUAP 20.39.26.254 德国北部 51.116.51.33 德国中西部 51.116.146.216 日本东部 20.191.160.26 韩国中部 20.41.69.51 美国中北部 20.49.114.188 北欧 52.146.131.52 南非北部 102.133.220.197 美国中南部 13.73.254.220 东南亚 23.98.108.42 瑞士北部 51.107.60.95 英国南部 51.104.30.170 英国西部 51.137.164.94 美国中西部 52.150.156.44 西欧 20.61.98.66 美国西部 2 40.64.135.77
允许特定 IP 地址访问同一区域中的 Azure 存储帐户
同一区域中 IP 地址的配置过程与上一过程类似,只是使用无类域间路由 (CIDR) 格式的特定 IP 地址范围(即 100.64.0.0/10)。 必须指定 IP 地址范围(100.64.0.0 到 100.127.255.255),因为每次发出操作请求时都会分配 FHIR 服务的 IP 地址。
注意
可以在 10.0.2.0/24 范围内使用专用 IP 地址,但不能保证操作在此类情况下会成功。 如果操作请求失败,可以重试,但在使用 100.64.0.0/10 范围内的 IP 地址之前,请求不会成功。
此 IP 地址范围的网络行为是设计造成的。 变通方法是在其他区域配置存储帐户。
后续步骤
本文介绍了配置环境以允许将数据从 FHIR 服务导出到 Azure 存储帐户的三个步骤。 有关 FHIR 服务中的批量导出功能的详细信息,请参阅以下内容。
注意
FHIR® 是 HL7 的注册商标,经 HL7 许可使用。