配置FHIR OSS指定数据库名称:Azure多实例共用CosmosDB方案
解决FHIR服务器共用CosmosDB时的数据库名称冲突问题
要实现不同资源组的测试/生产FHIR实例共用同一CosmosDB账户且避免数据库名称冲突,只需通过BICEP模板自定义数据库名称参数并关联到对应资源配置,具体操作如下:
1. 添加自定义数据库名称参数
在BICEP模板的参数定义区域,新增一个可自定义的数据库名称参数,默认值可保留通用名称,部署时按需覆盖:
param fhirCosmosDbName string = 'fhir-db'
2. 关联参数到CosmosDB数据库资源
找到模板中创建CosmosDB数据库的资源块,将原固定名称替换为上述参数。同时确保正确引用第三方资源组的CosmosDB账户(使用existing关键字):
// 引用第三方资源组中的CosmosDB账户 resource cosmosDbAccount 'Microsoft.DocumentDB/databaseAccounts@2023-04-15' existing = { name: 'your-cosmosdb-account-name' scope: resourceGroup('third-party-resource-group-name') } // 创建自定义名称的CosmosDB数据库 resource cosmosDbDatabase 'Microsoft.DocumentDB/databaseAccounts/sqlDatabases@2023-04-15' = { parent: cosmosDbAccount name: fhirCosmosDbName properties: { resource: { id: fhirCosmosDbName } } }
3. 配置FHIR服务器指向自定义数据库
修改FHIR服务的配置属性,确保cosmosDbConfiguration中的数据库名称与参数保持一致:
resource fhirService 'Microsoft.HealthcareApis/services@2023-02-28' = { name: 'fhir-service-instance-name' location: resourceGroup().location properties: { cosmosDbConfiguration: { databaseName: fhirCosmosDbName // 其他CosmosDB配置项保持不变 } // 其他FHIR服务配置项保持不变 } }
4. 部署时指定不同环境的数据库名称
部署测试环境时,通过参数传入测试专用数据库名:
az deployment group create --resource-group test-fhir-rg --template-file main.bicep --parameters fhirCosmosDbName='fhir-db-test'
部署生产环境时传入生产专用数据库名:
az deployment group create --resource-group prod-fhir-rg --template-file main.bicep --parameters fhirCosmosDbName='fhir-db-prod'
通过以上配置,测试和生产FHIR实例将共用同一CosmosDB账户,同时使用独立的数据库,彻底避免名称冲突。
内容的提问来源于stack exchange,提问作者acambitsis
相关产品推荐
相关产品推荐

