当前位置: 首页 > 知识库问答 >
问题:

在服务总线资源管理器未触发的情况下创建的Azure主题订阅规则

董俊晖
2023-03-14

我正在使用Service Bus Explorer作为一种快速测试规则的方法,该规则在通过ARM部署时不起作用。

在JavaScript中,Azure函数中,我将主题消息设置为:

context.bindings.outputSbMsg = { Indicator: 'Itinerary'};

在Service Bus Explorer中,我正在使用以下字符串对订阅设置规则:

Indicator = 'Itinerary'

>

  • 我似乎没有访问Indicator属性的权限。作为测试,我在1=1规则上创建了一个动作,该动作附加到Indicator属性,结果为空。

    如果我有一个由1=1规则触发的函数,那么我就可以访问JavaScript中的Indicator属性,因此该属性就在那里。

  • 共有1个答案

    濮阳钟展
    2023-03-14

    这条规则行不通是因为

    1. 该规则适用于系统或用户定义的属性,而不是消息正文。
    2. js函数输出的只是消息正文,即context.bindings.outputsbmsg={indicator:'itinerary'};发送消息{indicator:'itinerary'},我们没有设置任何属性。

    而缺省规则1=1 true筛选器允许将所有消息选择到订阅中,因此您可以看到消息一直在那里。查看主题过滤器的文档以了解更多详细信息。

    const azuresb = require("azure-sb");
    const connStr = "ServiceBusConnectionString";
    const mytopic = "mytopic";
    
    var serviceBus = azuresb.createServiceBusService(connStr);
    const msg =
    {
      body: "Testing",
      customProperties: {
        Indicator: 'Itinerary'
      }
    };
    serviceBus.sendTopicMessage(mytopic, msg, function(error) {
        if (error) {
            context.log(error);
        }
        else{
            context.log("Message Sent");
        }
    });
    
     类似资料:
    • 我们使用服务总线主题作为pub/sub系统的引擎。我们的逻辑涉及我们的NodeJS服务用多个订阅连接到一个主题。对于每个订阅,我们删除$default(TrueFilter),并在消息头的Label属性上创建一个CorrelationFilter,并且不在订阅中应用AutoDeleteOnIdle设置,因为我们希望确保订阅服务器功能在服务启动之前一直运行。 这个问题可以归结为这样:某件事能导致规则

    • 这似乎是最简单的解决办法。让我们看看流程: 第三方向RESTful API发送请求,以获取Windows Azure服务总线连接字符串-凭据-。 一旦拥有连接字符串,第三方就会连接到Windows服务总线,并开始从某个主题订阅接收消息。注意:连接字符串是在服务器端加密的,只能由接受的客户端解密。 优点 null null 第三方请求一个类似于RESTful的TCP API,以便订阅一些Window

    • 我想将一个小的JSON消息放入中。消息将具有附加到它的“ProviderID”属性,并且根据筛选规则,该消息将被筛选到特定于提供程序的上 但是,我似乎无法在上指定共享访问策略,以限制第三方提供商仅连接到他们自己的 我假设应该在订阅上设置以便将这些消息发送到另一个并在那里应用特定于提供程序的安全性,这样做是否正确。 或者有其他/更好的/推荐的方法来做这件事。

    • 我有一个启用了分区的Azure Service Bus主题。我可以在主题下以编程方式创建订阅,但当我尝试添加自定义规则时,会出现以下异常: “已启用分区的实体不支持此操作。” 我的代码只是使用SubscriptionClient的AddRur方法和使用Rule定义。顺便说一句,如果主题没有分区,我没有问题。

    • https://github.com/azure/azure-service-bus/tree/master/samples/dotnet/gettingstart/microsoft.azure.servicebus/topicsubscriptionwithruleoperationssample 现在我想添加一个筛选器/规则,这样只有通过筛选器中定义的特定条件的消息才应该给订阅。 例如,下面