Share via


ARM şablonunu kullanarak Azure Health Data Services içinde FHIR hizmeti dağıtma

Bu makalede, Azure Resource Manager şablonunu (ARM şablonu) kullanarak Azure Health Data Services (burada FHIR hizmeti olarak adlandırılır) içinde FHIR hizmetini dağıtmayı öğreneceksiniz. Size PowerShell veya CLI kullanarak iki seçenek sunuyoruz.

ARM şablonu, projenizin altyapısını ve yapılandırmasını tanımlayan bir JSON dosyasıdır. Bu şablonda, bildirim temelli sözdizimi kullanılır. Bildirim temelli sözdiziminde, dağıtım oluşturmak için programlama komutlarının dizisini yazmadan amaçladığınız dağıtımı ifade edersiniz.

Önkoşullar

  • Etkin aboneliği olan bir Azure hesabı. Ücretsiz bir tane oluşturun.
  • Kodu yerel olarak çalıştırmak istiyorsanız:

ARM şablonunu gözden geçirme

Bu makalede kullanılan şablon Azure Hızlı Başlangıç Şablonları'ndan alınmıştı.

Şablon üç Azure kaynağı tanımlar:

  • Microsoft.HealthcareApis/workspaces
  • Microsoft.HealthcareApis/workspaces/fhirservices
  • Microsoft.Storage/storageAccounts

Dekont

Yerel RBAC kullanım dışı bırakıldı. ARM şablonunda Yerel RBAC ile ilişkili Erişim İlkeleri yapılandırması kullanım dışıdır. Yerel RBAC kullanan mevcut müşterilerin Kasım 2024'e kadar Azure RBAC'ye geçişleri gerekir. Sorularınız için lütfen bizimle iletişime geçin.

"Microsoft.HealthcareApis/workspaces/fhirservices" kaynağındaki çalışma alanı kaynağını, depolama kaynağını ve dependsOn özelliği kaldırarak FHIR hizmet kaynağını dağıtabilirsiniz.

{
    "$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 şablonunu dağıtma

ARM şablonunu iki seçenek kullanarak dağıtabilirsiniz: PowerShell veya CLI.

Aşağıda sağlanan örnek kod, "src" alt klasörünün "templates" alt klasöründeki şablonu kullanır. Şablon dosyasına düzgün başvurmak için konum yolunu değiştirmek isteyebilirsiniz.

Dağıtım işleminin tamamlanması birkaç dakika sürer. Daha sonra kullanacağınız FHIR hizmetinin ve kaynak grubunun adlarını not alın.

Şablonu dağıtma: PowerShell kullanarak

FHIR hizmetini dağıtmak için kodu Yerel olarak PowerShell'de, Visual Studio Code'da veya Azure Cloud Shell'de çalıştırın.

Azure'da oturum açmadıysanız oturum açmak için "Bağlan-AzAccount" kullanın. Oturum açtıktan sonra kullanmak istediğiniz aboneliği ve kiracıyı doğrulamak için "Get-AzContext" kullanın. Gerekirse aboneliği ve kiracıyı değiştirebilirsiniz.

Yeni bir kaynak grubu oluşturabilir veya adımı atlayarak veya "New-AzResourceGroup" ile başlayan satırı açıklama satırı yaparak mevcut bir kaynak grubunu kullanabilirsiniz.

### 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

Dağıtılan kaynakları gözden geçirme

Tarayıcıyı açıp adresine giderek https://<yourfhir servic>.azurehealthcareapis.com/metadataFHIR hizmetinin çalışır durumda olduğunu doğrulayabilirsiniz. Yetenek deyimi otomatik olarak görüntülenir veya indirilirse dağıtımınız başarılı olur.

Kaynakları temizleme

Kaynağa artık gerek kalmadığında, kaynak grubunu silmek için aşağıdaki kodu çalıştırın.

$resourceGroupName = “your resource group name”
Remove-AzResourceGroup -Name $resourceGroupName

Sonraki adımlar

Bu hızlı başlangıç kılavuzunda, ARM şablonu kullanarak Azure Health Veri Hizmetleri'nde FHIR hizmetini dağıttınız. FHIR hizmeti tarafından desteklenen özellikler hakkında daha fazla bilgi için bkz.

FHIR®, HL7'nin tescilli ticari markasıdır ve HL7'nin izniyle kullanılır.