Loading source
Pulling the file list, source metadata, and syntax-aware rendering for this listing.
Source from repo
Prepare applications for Azure deployment by generating infrastructure code, Dockerfiles, and config files.
Files
Skill
Size
Entrypoint
Format
Open file
Syntax-highlighted preview of this file as included in the skill package.
references/services/service-bus/bicep.md
1# Service Bus - Bicep Patterns23## Namespace45```bicep6resource serviceBus 'Microsoft.ServiceBus/namespaces@2022-10-01-preview' = {7name: '${resourcePrefix}-sb-${uniqueHash}'8location: location9sku: {10name: 'Standard'11tier: 'Standard'12}13}14```1516## Queue1718```bicep19resource queue 'Microsoft.ServiceBus/namespaces/queues@2022-10-01-preview' = {20parent: serviceBus21name: 'orders'22properties: {23maxDeliveryCount: 1024deadLetteringOnMessageExpiration: true25defaultMessageTimeToLive: 'P14D'26lockDuration: 'PT5M'27}28}29```3031## Topic and Subscription3233```bicep34resource topic 'Microsoft.ServiceBus/namespaces/topics@2022-10-01-preview' = {35parent: serviceBus36name: 'events'37properties: {38defaultMessageTimeToLive: 'P14D'39}40}4142resource subscription 'Microsoft.ServiceBus/namespaces/topics/subscriptions@2022-10-01-preview' = {43parent: topic44name: 'order-processor'45properties: {46maxDeliveryCount: 1047deadLetteringOnMessageExpiration: true48lockDuration: 'PT5M'49}50}51```5253## Subscription Filters5455### SQL Filter5657```bicep58resource filterRule 'Microsoft.ServiceBus/namespaces/topics/subscriptions/rules@2022-10-01-preview' = {59parent: subscription60name: 'high-priority'61properties: {62filterType: 'SqlFilter'63sqlFilter: {64sqlExpression: 'priority = \'high\''65}66}67}68```6970### Correlation Filter7172```bicep73resource correlationRule 'Microsoft.ServiceBus/namespaces/topics/subscriptions/rules@2022-10-01-preview' = {74parent: subscription75name: 'orders-only'76properties: {77filterType: 'CorrelationFilter'78correlationFilter: {79label: 'order'80}81}82}83```8485## Managed Identity Access8687### Service Bus Data Receiver (for triggers/consumers)8889```bicep90resource serviceBusReceiverRole 'Microsoft.Authorization/roleAssignments@2022-04-01' = {91name: guid(serviceBus.id, principalId, 'Azure Service Bus Data Receiver')92scope: serviceBus93properties: {94roleDefinitionId: subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '4f6d3b9b-027b-4f4c-9142-0e5a2a2247e0')95principalId: principalId96principalType: 'ServicePrincipal'97}98}99```100101### Service Bus Data Sender (for producers)102103```bicep104resource serviceBusSenderRole 'Microsoft.Authorization/roleAssignments@2022-04-01' = {105name: guid(serviceBus.id, principalId, 'Azure Service Bus Data Sender')106scope: serviceBus107properties: {108roleDefinitionId: subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '69a216fc-b8fb-44d8-bc22-1f3c2cd27a39')109principalId: principalId110principalType: 'ServicePrincipal'111}112}113```114115### Both Sender and Receiver116117```bicep118// Grant both sender and receiver roles for bidirectional messaging119resource serviceBusReceiverRole 'Microsoft.Authorization/roleAssignments@2022-04-01' = {120name: guid(serviceBus.id, principalId, 'receiver')121scope: serviceBus122properties: {123roleDefinitionId: subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '4f6d3b9b-027b-4f4c-9142-0e5a2a2247e0')124principalId: principalId125principalType: 'ServicePrincipal'126}127}128129resource serviceBusSenderRole 'Microsoft.Authorization/roleAssignments@2022-04-01' = {130name: guid(serviceBus.id, principalId, 'sender')131scope: serviceBus132properties: {133roleDefinitionId: subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '69a216fc-b8fb-44d8-bc22-1f3c2cd27a39')134principalId: principalId135principalType: 'ServicePrincipal'136}137}138```139140> 💡 **Role Selection:**141> - Use **Data Receiver** for Function triggers or message consumers142> - Use **Data Sender** for applications that send messages143> - Use **both roles** for bidirectional communication144> - Roles can be scoped to namespace (all queues/topics) or specific queue/topic145