从 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
的消息。
我已按照 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
的消息。