Skip to content

Commit 9a38e08

Browse files
Support new container role assignment for agent thread-storage bicep (#249)
* support new container role assignment for agent threadstorage bicep * Apply fix to container role assignment name and re-build ARM template * Modify cosmos role assignment resource name
1 parent 1a7c01b commit 9a38e08

File tree

6 files changed

+67
-10
lines changed

6 files changed

+67
-10
lines changed

scenarios/Agents/setup/network-secured-agent-thread-storage/azuredeploy.json

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"_generator": {
66
"name": "bicep",
77
"version": "0.33.93.31351",
8-
"templateHash": "12425839983447429475"
8+
"templateHash": "9204291102583499292"
99
}
1010
},
1111
"parameters": {
@@ -2562,7 +2562,7 @@
25622562
{
25632563
"type": "Microsoft.Resources/deployments",
25642564
"apiVersion": "2022-09-01",
2565-
"name": "[format('cosmos-container-role-assignments-{0}-{1}-deployment', toLower(format('{0}', parameters('defaultAiProjectName'))), parameters('uniqueSuffix'))]",
2565+
"name": "[format('cosmos-ra-{0}-{1}-deployment', toLower(format('{0}', parameters('defaultAiProjectName'))), parameters('uniqueSuffix'))]",
25662566
"subscriptionId": "[variables('cosmosDBSubscriptionId')]",
25672567
"resourceGroup": "[variables('cosmosDBResourceGroupName')]",
25682568
"properties": {
@@ -2591,7 +2591,7 @@
25912591
"_generator": {
25922592
"name": "bicep",
25932593
"version": "0.33.93.31351",
2594-
"templateHash": "3236725067655686559"
2594+
"templateHash": "2433285251744228821"
25952595
}
25962596
},
25972597
"parameters": {
@@ -2620,9 +2620,11 @@
26202620
"variables": {
26212621
"userThreadName": "[format('{0}-thread-message-store', parameters('projectWorkspaceId'))]",
26222622
"systemThreadName": "[format('{0}-system-thread-message-store', parameters('projectWorkspaceId'))]",
2623+
"agentEntityStoreName": "[format('{0}-agent-entity-store', parameters('projectWorkspaceId'))]",
26232624
"roleDefinitionId": "[resourceId('Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions', parameters('cosmosAccountName'), '00000000-0000-0000-0000-000000000002')]",
26242625
"scopeSystemContainer": "[format('/subscriptions/{0}/resourceGroups/{1}/providers/Microsoft.DocumentDB/databaseAccounts/{2}/dbs/enterprise_memory/colls/{3}', subscription().subscriptionId, resourceGroup().name, parameters('cosmosAccountName'), variables('systemThreadName'))]",
2625-
"scopeUserContainer": "[format('/subscriptions/{0}/resourceGroups/{1}/providers/Microsoft.DocumentDB/databaseAccounts/{2}/dbs/enterprise_memory/colls/{3}', subscription().subscriptionId, resourceGroup().name, parameters('cosmosAccountName'), variables('userThreadName'))]"
2626+
"scopeUserContainer": "[format('/subscriptions/{0}/resourceGroups/{1}/providers/Microsoft.DocumentDB/databaseAccounts/{2}/dbs/enterprise_memory/colls/{3}', subscription().subscriptionId, resourceGroup().name, parameters('cosmosAccountName'), variables('userThreadName'))]",
2627+
"scopeAgentEntityContainer": "[format('/subscriptions/{0}/resourceGroups/{1}/providers/Microsoft.DocumentDB/databaseAccounts/{2}/dbs/enterprise_memory/colls/{3}', subscription().subscriptionId, resourceGroup().name, parameters('cosmosAccountName'), variables('agentEntityStoreName'))]"
26262628
},
26272629
"resources": [
26282630
{
@@ -2644,6 +2646,16 @@
26442646
"roleDefinitionId": "[variables('roleDefinitionId')]",
26452647
"scope": "[variables('scopeSystemContainer')]"
26462648
}
2649+
},
2650+
{
2651+
"type": "Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments",
2652+
"apiVersion": "2022-05-15",
2653+
"name": "[format('{0}/{1}', parameters('cosmosAccountName'), guid(parameters('aiProjectId'), resourceId('Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers', parameters('cosmosAccountName'), 'enterprise_memory', variables('agentEntityStoreName')), variables('roleDefinitionId')))]",
2654+
"properties": {
2655+
"principalId": "[parameters('aiProjectPrincipalId')]",
2656+
"roleDefinitionId": "[variables('roleDefinitionId')]",
2657+
"scope": "[variables('scopeAgentEntityContainer')]"
2658+
}
26472659
}
26482660
]
26492661
}

scenarios/Agents/setup/network-secured-agent-thread-storage/main.bicep

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -375,7 +375,7 @@ module addCapabilityHost 'modules-network-secured/network-capability-host.bicep'
375375
}
376376

377377
module cosmosContainerRoleAssignments 'modules-network-secured/database/cosmos-container-role-assignment.bicep' = {
378-
name: 'cosmos-container-role-assignments-${toLower('${defaultAiProjectName}')}-${uniqueSuffix}-deployment'
378+
name: 'cosmos-ra-${toLower('${defaultAiProjectName}')}-${uniqueSuffix}-deployment'
379379
scope: resourceGroup(cosmosDBSubscriptionId, cosmosDBResourceGroupName)
380380
params: {
381381
cosmosAccountName: aiDependencies.outputs.cosmosDBName

scenarios/Agents/setup/network-secured-agent-thread-storage/modules-network-secured/database/cosmos-container-role-assignment.bicep

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ param projectWorkspaceId string
1414

1515
var userThreadName = '${projectWorkspaceId}-thread-message-store'
1616
var systemThreadName = '${projectWorkspaceId}-system-thread-message-store'
17+
var agentEntityStoreName = '${projectWorkspaceId}-agent-entity-store'
1718

1819

1920
#disable-next-line BCP081
@@ -41,6 +42,11 @@ resource containerSystemMessageStore 'Microsoft.DocumentDB/databaseAccounts/sqlD
4142
name: systemThreadName
4243
}
4344

45+
#disable-next-line BCP081
46+
resource containerAgentEntityStore 'Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers@2024-12-01-preview' existing = {
47+
parent: database
48+
name: agentEntityStoreName
49+
}
4450

4551
var roleDefinitionId = resourceId(
4652
'Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions',
@@ -50,6 +56,7 @@ var roleDefinitionId = resourceId(
5056

5157
var scopeSystemContainer = '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.DocumentDB/databaseAccounts/${cosmosAccountName}/dbs/enterprise_memory/colls/${systemThreadName}'
5258
var scopeUserContainer = '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.DocumentDB/databaseAccounts/${cosmosAccountName}/dbs/enterprise_memory/colls/${userThreadName}'
59+
var scopeAgentEntityContainer = '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.DocumentDB/databaseAccounts/${cosmosAccountName}/dbs/enterprise_memory/colls/${agentEntityStoreName}'
5360

5461
resource containerRoleAssignmentUserContainer 'Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments@2022-05-15' = {
5562
parent: cosmosAccount
@@ -70,3 +77,13 @@ resource containerRoleAssignmentSystemContainer 'Microsoft.DocumentDB/databaseAc
7077
scope: scopeSystemContainer
7178
}
7279
}
80+
81+
resource containerRoleAssignmentAgentEntityContainer 'Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments@2022-05-15' = {
82+
parent: cosmosAccount
83+
name: guid(aiProjectId, containerAgentEntityStore.id, roleDefinitionId)
84+
properties: {
85+
principalId: aiProjectPrincipalId
86+
roleDefinitionId: roleDefinitionId
87+
scope: scopeAgentEntityContainer
88+
}
89+
}

scenarios/Agents/setup/standard-agent-with-threadstorage/azuredeploy.json

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"_generator": {
66
"name": "bicep",
77
"version": "0.33.93.31351",
8-
"templateHash": "17154956640074748586"
8+
"templateHash": "11260517981500011816"
99
}
1010
},
1111
"parameters": {
@@ -1594,7 +1594,7 @@
15941594
{
15951595
"type": "Microsoft.Resources/deployments",
15961596
"apiVersion": "2022-09-01",
1597-
"name": "[format('cosmos-container-role-assignments-{0}-{1}-deployment', variables('projectName'), variables('uniqueSuffix'))]",
1597+
"name": "[format('cosmos-ra-{0}-{1}-deployment', toLower(format('{0}', variables('projectName'))), variables('uniqueSuffix'))]",
15981598
"subscriptionId": "[variables('cosmosDBSubscriptionId')]",
15991599
"resourceGroup": "[variables('cosmosDBResourceGroupName')]",
16001600
"properties": {
@@ -1623,7 +1623,7 @@
16231623
"_generator": {
16241624
"name": "bicep",
16251625
"version": "0.33.93.31351",
1626-
"templateHash": "4005997312279995865"
1626+
"templateHash": "580164018367721578"
16271627
}
16281628
},
16291629
"parameters": {
@@ -1652,9 +1652,11 @@
16521652
"variables": {
16531653
"userThreadName": "[format('{0}-thread-message-store', parameters('projectWorkspaceId'))]",
16541654
"systemThreadName": "[format('{0}-system-thread-message-store', parameters('projectWorkspaceId'))]",
1655+
"agentEntityStoreName": "[format('{0}-agent-entity-store', parameters('projectWorkspaceId'))]",
16551656
"roleDefinitionId": "[resourceId('Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions', parameters('cosmosAccountName'), '00000000-0000-0000-0000-000000000002')]",
16561657
"scopeSystemContainer": "[format('/subscriptions/{0}/resourceGroups/{1}/providers/Microsoft.DocumentDB/databaseAccounts/{2}/dbs/enterprise_memory/colls/{3}', subscription().subscriptionId, resourceGroup().name, parameters('cosmosAccountName'), variables('systemThreadName'))]",
1657-
"scopeUserContainer": "[format('/subscriptions/{0}/resourceGroups/{1}/providers/Microsoft.DocumentDB/databaseAccounts/{2}/dbs/enterprise_memory/colls/{3}', subscription().subscriptionId, resourceGroup().name, parameters('cosmosAccountName'), variables('userThreadName'))]"
1658+
"scopeUserContainer": "[format('/subscriptions/{0}/resourceGroups/{1}/providers/Microsoft.DocumentDB/databaseAccounts/{2}/dbs/enterprise_memory/colls/{3}', subscription().subscriptionId, resourceGroup().name, parameters('cosmosAccountName'), variables('userThreadName'))]",
1659+
"scopeAgentEntityContainer": "[format('/subscriptions/{0}/resourceGroups/{1}/providers/Microsoft.DocumentDB/databaseAccounts/{2}/dbs/enterprise_memory/colls/{3}', subscription().subscriptionId, resourceGroup().name, parameters('cosmosAccountName'), variables('agentEntityStoreName'))]"
16581660
},
16591661
"resources": [
16601662
{
@@ -1676,6 +1678,16 @@
16761678
"roleDefinitionId": "[variables('roleDefinitionId')]",
16771679
"scope": "[variables('scopeSystemContainer')]"
16781680
}
1681+
},
1682+
{
1683+
"type": "Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments",
1684+
"apiVersion": "2022-05-15",
1685+
"name": "[format('{0}/{1}', parameters('cosmosAccountName'), guid(parameters('aiProjectId'), resourceId('Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers', parameters('cosmosAccountName'), 'enterprise_memory', variables('agentEntityStoreName')), variables('roleDefinitionId')))]",
1686+
"properties": {
1687+
"principalId": "[parameters('aiProjectPrincipalId')]",
1688+
"roleDefinitionId": "[variables('roleDefinitionId')]",
1689+
"scope": "[variables('scopeAgentEntityContainer')]"
1690+
}
16791691
}
16801692
]
16811693
}

scenarios/Agents/setup/standard-agent-with-threadstorage/main.bicep

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ module addCapabilityHost 'modules-standard/add-capability-host.bicep' = {
242242

243243

244244
module cosmosContainerRoleAssignments 'modules-standard/cosmos-container-role-assignment.bicep' = {
245-
name: 'cosmos-container-role-assignments-${projectName}-${uniqueSuffix}-deployment'
245+
name: 'cosmos-ra-${toLower('${projectName}')}-${uniqueSuffix}-deployment'
246246
scope: resourceGroup(cosmosDBSubscriptionId, cosmosDBResourceGroupName)
247247
params: {
248248
cosmosAccountName: aiDependencies.outputs.cosmosDBName

scenarios/Agents/setup/standard-agent-with-threadstorage/modules-standard/cosmos-container-role-assignment.bicep

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ param projectWorkspaceId string
1313

1414
var userThreadName = '${projectWorkspaceId}-thread-message-store'
1515
var systemThreadName = '${projectWorkspaceId}-system-thread-message-store'
16+
var agentEntityStoreName = '${projectWorkspaceId}-agent-entity-store'
1617

1718

1819
resource cosmosAccount 'Microsoft.DocumentDB/databaseAccounts@2024-12-01-preview' existing = {
@@ -36,6 +37,10 @@ resource containerSystemMessageStore 'Microsoft.DocumentDB/databaseAccounts/sqlD
3637
name: systemThreadName
3738
}
3839

40+
resource containerAgentEntityStore 'Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers@2024-12-01-preview' existing = {
41+
parent: database
42+
name: agentEntityStoreName
43+
}
3944

4045
var roleDefinitionId = resourceId(
4146
'Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions',
@@ -45,6 +50,7 @@ var roleDefinitionId = resourceId(
4550

4651
var scopeSystemContainer = '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.DocumentDB/databaseAccounts/${cosmosAccountName}/dbs/enterprise_memory/colls/${systemThreadName}'
4752
var scopeUserContainer = '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.DocumentDB/databaseAccounts/${cosmosAccountName}/dbs/enterprise_memory/colls/${userThreadName}'
53+
var scopeAgentEntityContainer = '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.DocumentDB/databaseAccounts/${cosmosAccountName}/dbs/enterprise_memory/colls/${agentEntityStoreName}'
4854

4955
resource containerRoleAssignmentUserContainer 'Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments@2022-05-15' = {
5056
parent: cosmosAccount
@@ -65,3 +71,13 @@ resource containerRoleAssignmentSystemContainer 'Microsoft.DocumentDB/databaseAc
6571
scope: scopeSystemContainer
6672
}
6773
}
74+
75+
resource containerRoleAssignmentAgentEntityContainer 'Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments@2022-05-15' = {
76+
parent: cosmosAccount
77+
name: guid(aiProjectId, containerAgentEntityStore.id, roleDefinitionId)
78+
properties: {
79+
principalId: aiProjectPrincipalId
80+
roleDefinitionId: roleDefinitionId
81+
scope: scopeAgentEntityContainer
82+
}
83+
}

0 commit comments

Comments
 (0)