Развертывание службы FHIR в службах данных Работоспособности Azure с помощью шаблона ARM
В этой статье вы узнаете, как развернуть службу FHIR в службах данных Работоспособности Azure (тем самым называется службой FHIR) с помощью шаблона Azure Resource Manager (шаблона ARM). Мы предоставляем два варианта с помощью PowerShell или с помощью интерфейса командной строки.
Шаблон ARM — это JSON-файл, определяющий инфраструктуру и конфигурацию проекта. В шаблоне используется декларативный синтаксис. В декларативном синтаксисе вы можете описать предполагаемое развертывание без написания последовательности команд программирования для создания развертывания.
Необходимые компоненты
- Учетная запись Azure с активной подпиской. Создайте ее бесплатно.
- Если вы хотите выполнить код локально:
Просмотр шаблона ARM
Шаблон, используемый в этой статье, взят из шаблонов быстрого запуска Azure.
Шаблон определяет три ресурса Azure:
- Microsoft.HealthcareApis/workspaces
- Microsoft.HealthcareApis/workspaces/fhirservices
- Microsoft.Storage/storageAccounts
Примечание.
Локальный RBAC не рекомендуется. Конфигурация политик доступа, связанная с локальным RBAC в шаблоне ARM, устарела. К ноября 2024 года существующим клиентам, использующим локальный RBAC, необходимо выполнить миграцию в Azure RBAC. Для вопросов обратитесь к нам.
Вы можете развернуть ресурс службы FHIR, удалив ресурс рабочих областей, ресурс хранилища и dependsOn
свойство в ресурсе Microsoft.HealthcareApis/workspaces/fhirservices.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"authorityurl": {
"type": "string",
"defaultValue": "https://login.microsoftonline.com"
},
"tagName": {
"type": "string",
"defaultValue": "My Deployment"
},
"region": {
"type": "string",
"allowedValues": [
"australiaeast",
"canadacentral",
"eastus",
"eastus2",
"germanywestcentral",
"japaneast",
"northcentralus",
"northeurope",
"southafricanorth",
"southcentralus",
"southeastasia",
"switzerlandnorth",
"uksouth",
"ukwest",
"westcentralus",
"westeurope",
"westus2"
]
},
"workspaceName": {
"type": "string"
},
"fhirServiceName": {
"type": "string"
},
"tenantid": {
"type": "string"
},
"storageAccountName": {
"type": "string"
},
"storageAccountConfirm": {
"type": "bool",
"defaultValue": true
},
"AccessPolicies": {
"type": "array",
"defaultValue": []
},
"smartProxyEnabled": {
"type": "bool",
"defaultValue": false
}
},
"variables": {
"authority": "[Concat(parameters('authorityurl'), '/', parameters('tenantid'))]",
"createManagedIdentity": true,
"managedIdentityType": {
"type": "SystemAssigned"
},
"storageBlobDataContributerRoleId": "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Authorization/roleDefinitions/', 'ba92f5b4-2d11-453d-a403-e96b0029c9fe')]"
},
"resources": [
{
"type": "Microsoft.HealthcareApis/workspaces",
"name": "[parameters('workspaceName')]",
"apiVersion": "2023-11-01",
"location": "[parameters('region')]",
"properties": {}
},
{
"type": "Microsoft.HealthcareApis/workspaces/fhirservices",
"kind": "fhir-R4",
"name": "[concat(parameters('workspaceName'), '/', parameters('fhirServiceName'))]",
"apiVersion": "2023-11-01",
"location": "[parameters('region')]",
"dependsOn": [
"[resourceId('Microsoft.HealthcareApis/workspaces', parameters('workspaceName'))]"
],
"tags": {
"environmentName": "[parameters('tagName')]"
},
"properties": {
"accessPolicies": "[parameters('AccessPolicies')]",
"authenticationConfiguration": {
"authority": "[variables('Authority')]",
"audience": "[concat('https//', parameters('workspaceName'), '-', parameters('fhirServiceName'), '.fhir.azurehealthcareapis.com')]",
"smartProxyEnabled": "[parameters('smartProxyEnabled')]"
},
"corsConfiguration": {
"allowCredentials": false,
"headers": ["*"],
"maxAge": 1440,
"methods": ["DELETE", "GET", "OPTIONS", "PATCH", "POST", "PUT"],
"origins": ["https://localhost:6001"]
},
"exportConfiguration": {
"storageAccountName": "[parameters('storageAccountName')]"
}
},
"identity": "[if(variables('createManagedIdentity'), variables('managedIdentityType'), json('null'))]"
},
{
"name": "[parameters('storageAccountName')]",
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2019-06-01",
"location": "[resourceGroup().location]",
"properties": {
"supportsHttpsTrafficOnly": "true"
},
"condition": "[parameters('storageAccountConfirm')]",
"dependsOn": [
"[parameters('fhirServiceName')]"
],
"sku": {
"name": "Standard_LRS"
},
"kind": "Storage",
"tags": {
"environmentName": "[parameters('tagName')]",
"test-account-rg": "true"
}
}
],
"outputs": {
}
}
Развертывание шаблона ARM
Шаблон ARM можно развернуть с помощью двух вариантов: PowerShell или CLI.
В примере кода, приведенном ниже, используется шаблон в подпапке "шаблоны" подпапки "src". Возможно, потребуется изменить путь к расположению, чтобы правильно ссылаться на файл шаблона.
Процесс развертывания занимает несколько минут. Запишите имена службы FHIR и группы ресурсов, которые будут использоваться позже.
Развертывание шаблона: с помощью PowerShell
Запустите код в PowerShell локально, в Visual Studio Code или в Azure Cloud Shell, чтобы развернуть службу FHIR.
Если вы еще не вошли в Azure, используйте команду Подключение-AzAccount для входа. После входа используйте Get-AzContext, чтобы проверить подписку и клиент, которые вы хотите использовать. При необходимости можно изменить подписку и клиент.
Вы можете создать новую группу ресурсов или использовать существующую, пропустив шаг или закомментируя строку, начиная с New-AzResourceGroup.
### variables
$resourcegroupname="your resource group"
$location="South Central US"
$workspacename="your workspace name"
$fhirservicename="your fhir service name"
$tenantid="xxx"
$subscriptionid="xxx"
$storageaccountname="storage account name"
$storageaccountconfirm=1
### login to azure
Connect-AzAccount
#Connect-AzAccount SubscriptionId $subscriptionid
Set-AzContext -Subscription $subscriptionid
Connect-AzAccount -Tenant $tenantid -SubscriptionId $subscriptionid
#Get-AzContext
### create resource group
New-AzResourceGroup -Name $resourcegroupname -Location $location
### deploy the resource
New-AzResourceGroupDeployment -ResourceGroupName $resourcegroupname -TemplateFile "src/templates/fhirtemplate.json" -region $location -workspaceName $workspacename -fhirServiceName $fhirservicename -tenantid $tenantid -storageAccountName $storageaccountname -storageAccountConfirm $storageaccountconfirm
Просмотр развернутых ресурсов
Вы можете убедиться, что служба FHIR запущена и запущена, открыв браузер и перейдя к ней https://<yourfhir servic>.azurehealthcareapis.com/metadata
. Если оператор возможностей отображается или загружается автоматически, развертывание успешно завершено.
Очистка ресурсов
Если ресурс больше не нужен, выполните приведенный ниже код, чтобы удалить группу ресурсов.
$resourceGroupName = “your resource group name”
Remove-AzResourceGroup -Name $resourceGroupName
Следующие шаги
В этом кратком руководстве описано, как развернуть службу FHIR в службах данных Работоспособности Azure с помощью шаблона ARM. Дополнительные сведения о поддерживаемых функциях службы FHIR см. в статье.
FHIR® является зарегистрированным товарным знаком HL7 и используется с разрешением HL7 .