我需要:
H 210F 211数据工厂是在“主”二头肌之外的一个独立模块中创建的。这是为了防止“主要”模板太大,很难使用-二头肌比手臂模板的主要好处之一。函数应用程序的创建也是如此。
关于角色分配,我有:
resource roleAssignment 'Microsoft.Authorization/roleAssignments@2020-08-01-preview' = {
name: guid(storageAccount.id, contributorRoleId, adfDeploy.outputs.dfId)然后,VSCode提出了以下“问题”:
这个表达式在分配给"Microsoft.Authorization/roleAssignments“类型的"name”属性时使用,该类型需要在部署开始时计算的值。adfDeploy的属性(可以在开头计算)包括"name“。
我无法从字符串(订阅/rg/ storageAccount等)编写Id。因为订阅id也是在运行时确定的,因为调用相同的主二头肌来部署到多个订阅。
有什么方法可以实现所需的,而不把数据工厂和功能应用程序的创建撤回到“主”二头肌?
发布于 2022-08-04 20:26:52
您可以创建用于存储角色分配的通用模块:
// storage-account-role-assignment.bicep
param storageAccountName string
param principalId string
param roleId string
// Get a reference to the storage account
resource storageAccount 'Microsoft.Storage/storageAccounts@2019-06-01' existing = {
name: storageAccountName
}
// Grant permissions to the storage account
resource storageAccountAppRoleAssignment 'Microsoft.Authorization/roleAssignments@2020-04-01-preview' = {
name: guid(storageAccount.id, roleId, principalId)
scope: storageAccount
properties: {
roleDefinitionId: subscriptionResourceId('Microsoft.Authorization/roleDefinitions', roleId)
principalId: principalId
}
}然后从创建数据工厂或函数应用程序的地方调用此模块:
// function-app.bicep
...
resource functionApp 'Microsoft.Web/sites@2021-03-01' = {
name: functionAppName
kind: 'functionapp'
identity: {
type: 'SystemAssigned'
}
...
}
// Create role assignment
module roleAssignment 'storage-account-role-assignment.bicep' = {
name: 'function-storage-account-role-assignment'
scope: resourceGroup()
params:{
storageAccountName: storageAccountName
roleId: '<role-id>'
principalId: functionApp.identity.principalId
}
}
// data-factory.bicep
...
resource dataFactory 'Microsoft.DataFactory/factories@2018-06-01' = {
name: name
identity: {
type: 'SystemAssigned'
}
...
}
// Create role assignment
module roleAssignment 'storage-account-role-assignment.bicep' = {
name: 'data-facory-storage-account-role-assignment'
scope: resourceGroup()
params:{
storageAccountName: storageAccountName
roleId: '<role-id>'
principalId: dataFactory.identity.principalId
}
}https://stackoverflow.com/questions/73232751
复制相似问题