代码之家  ›  专栏  ›  技术社区  ›  gsscoder

从APIM到Event HUB的日志记录似乎无法正常工作

  •  0
  • gsscoder  · 技术社区  · 5 年前

    我已经按照指示 MS docs .

    我创建了一个 活动中心 托管名为的集线器的命名空间 clicks-hub 由名为的策略保护 ClicksLoggingPolicy 具有 发送 只有索赔。

    然后,我使用以下URL将记录器添加到我的APIM服务中: https://management.azure.com/subscriptions/MY_SUBS/resourceGroups/MY_RESGROUP/providers/Microsoft.ApiManagement/service/MY_APIM/loggers/clicksLogger?api-version=2019-12-01

    使用此有效载荷:

    {
        "properties": {
          "loggerType": "azureEventHub",
          "description": "Logger for click events",
          "credentials": {
            "name": "clicks-hub",
            "connectionString": "Endpoint=sb://myapim.servicebus.windows.net/;SharedAccessKeyName=ClicksLoggingPolicy;SharedAccessKey=****************"
          }
        }
    }
    

    发送后 PUT 我收到的请求 201 created .

    我已经用这个POST操作配置了一个APIM API。它遵循XML策略:

    <policies>
        <inbound>
            <log-to-eventhub logger-id="clicksLogger">@( "LOGGING_FROM_AZURE_APIM" )</log-to-eventhub>
            <mock-response status-code="200" content-type="application/json" />
            <base />
        </inbound>
        <backend>
            <base />
        </backend>
        <outbound>
            <base />
        </outbound>
        <on-error>
            <base />
        </on-error>
    </policies>
    

    我使用APIM触发了各种请求 测试 我可以在面板上看到请求 韵律学 : enter image description here

    但当我查询中心时,什么都没有:

    SELECT
        *
    INTO
        [OutputAlias]
    FROM
        [clicks-hub]
    

    enter image description here

    我试图通过以下方式获取一些测试数据 this tool 我可以看到消息。

    知道我错过了什么吗?

    提前感谢任何愿意提供帮助的人。

    问候,贾科莫S.S。

    0 回复  |  直到 5 年前
        1
  •  1
  •   Kai Walter    5 年前

    似乎你只能在以下情况下查询 活动中心 message是一个对象/是JSON:

    根据此政策

    <policies>
        <inbound>
            <log-to-eventhub logger-id="kai-logger">@( "LOGGING_FROM_AZURE_APIM1" )</log-to-eventhub>
            <log-to-eventhub logger-id="kai-logger">@( "{'message':'LOGGING_FROM_AZURE_APIM2'}" )</log-to-eventhub>
            <mock-response status-code="200" content-type="application/json" />
            <base />
        </inbound>
        <backend>
            <base />
        </backend>
        <outbound>
            <base />
        </outbound>
        <on-error>
            <base />
        </on-error>
    </policies>
    

    仅包含以下信息 LOGGING_FROM_AZURE_APIM2 在查询中显示。

    enter image description here