1

我希望能够使用 Azure 函数 Python 动态读取 blob 文件 (json),文件名通过 Azure 事件中心消息传递。如何使用 Azure 绑定做到这一点?

函数.json

{
    "scriptFile": "__init__.py",
    "bindings": [
        {
            "type": "eventHubTrigger",
            "name": "events",
            "direction": "in",
            "eventHubName": "beta-api-intergration",
            "connection": "receiverConnectionString",
            "cardinality": "many",
            "consumerGroup": "beta-api-consumer",
            "dataType": "binary"
        },
        {
            "name": "betablob",
            "type": "blob",
            "path": "swuploads/{filename}.json",
            "connection": "AzureWebJobsStorage",
            "direction": "in"
        }
    ]
}

初始化.py

def main(events: List[func.EventHubEvent], betablob: func.InputStream):
    well.login(user,pwd)
    for event in events:
        logging.info('Python EventHub trigger processed an event: %s', event.get_body().decode('utf-8'))

        ###msg contains the file name I want to load in blob
        msg=parse_msg(event) 
        ####how do I pass the file name here ?
        data=load_blob(betablob) 
4

1 回答 1

1

一般情况下,动态绑定可以通过传入json格式的输入(或触发器)来间接实现。

例如,发送这样的消息:

{
   "filename":"test"
}

然后绑定将获得值'test'。(这仅适用于使用声明性绑定的python之类的语言。)

但是好像event hub不能指定传入信息的格式,所以不能实现纯绑定。您需要基于 python 的 Azure SDK 来实现动态绑定。

于 2020-11-18T02:19:24.303 回答