问题描述
我有一个由EventGridEvents
触发的Azure函数。
-
function.json
进行相应设置:
{
"scriptFile": "__init__.py","bindings": [{
"name": "event","type": "eventGridTrigger","direction": "in"
}]
}
-
__init__.py
已拨入(此处仅显示摘录):
def main(event: func.EventGridEvent):
result = json.dumps({
'id' : event.id,'data' : event.get_json(),'topic' : event.topic,'subject' : event.subject,'event_type' : event.event_type
})
- 功能已成功部署
- EventGrid触发器创建成功
- 我在此处成功发布了
EventGrid
条消息:
- 但是该功能从未触发。
我现在想查看实际的EventGrid
消息,并调试为什么该函数未触发但我找不到可以查看该消息的地方!
我等待了大约30分钟,刷新了多次,甚至还观看了AppInsights实时日志,没有触发。
- 成功发布
EventGrid
消息后在哪里查看 - 我应该如何调试此功能?
编辑1:
闲逛了一会儿,我发现另一个显示“ 0的事件”的“度量”
事件如何“已发布”而不是“已交付”?
解决方法
我已经做了测试。在我这边似乎没问题。
也许你和我的有所不同。
请检查:
_init_.py
import json
import logging
import azure.functions as func
def main(event: func.EventGridEvent):
result = json.dumps({
'id': event.id,'data': event.get_json(),'topic': event.topic,'subject': event.subject,'event_type': event.event_type,})
logging.info('Python EventGrid trigger processed an event: %s',result)
function.json
{
"scriptFile": "__init__.py","bindings": [
{
"type": "eventGridTrigger","name": "event","direction": "in"
}
]
}
这是我的eventgrid订阅:(我将blob添加到特定的容器中并将其删除。请注意,eventgrid订阅的指标可能需要大约5分钟才能显示出来,但是会立即触发您的终结点函数。)
这是我的eventgrid订阅的过滤器:
我希望在测试容器中创建和删除的Blob触发端点Azure功能,因此我在“主题始于”部分添加了/blobServices/default/containers/test
。
然后我的功能正常工作: