从 APIM 登录到 Event HUB 似乎无法正常工作

Logging from APIM to Event HUB seems not working properly

我已按照 MS docs 中的说明进行操作。

我创建了一个 Event Hub 名称空间,它托管一个名为 clicks-hub 的集线器,该集线器由名为 ClicksLoggingPolicy 的策略和 Send 保护 仅声明。

然后我使用此 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 Test 面板触发了各种请求,我可以在 Metrics 上看到请求:

但是当我查询集线器时什么也没有:

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

我尝试使用 this tool 提取一些测试数据,我可以看到消息。

知道我遗漏了什么吗?

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

此致,贾科莫 S.S.

好像只有当EventHub消息是对象/是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 的消息。