Azure 函数 blob 触发 blob 参数错误
Azure function blob trigger blob paratemer error
我正在使用 blob 触发器读取 blob 内容,作为 pandas DF 处理并将 blob 附加到我正在使用的 Azure SQL 服务器。
blob 触发器没有按预期工作,所以我在 main 函数中定义了所有代码:
def main(myblob: func.InputStream):
logging.info(f"Python blob trigger function processed blob \n"
f"Name: {myblob.name}\n"
f"Blob Size: {myblob.length} bytes")
file = re.sub(r'^(.*?)\/','',myblob.name)
if file not in processedfiles:
stream = BytesIO((myblob.read()))
stream.seek(0)
但是我收到以下错误:
Exception: FunctionLoadError: cannot load the BlobFileTrigger function:
binding myblob has invalid non-type annotation <sqlalchemy.sql.functions._FunctionGenerator object at 0x7faa340f6a00>
谁能帮我找出这个问题的原因?
function.json配置如下:
{
"scriptFile": "__init__.py",
"disabled": false,
"bindings": [
{
"name": "myblob",
"type": "blobTrigger",
"direction": "in",
"path": "input/{name}",
"connection":"StorageConnection"
}
]
}
配置的function.json
文件没问题
如果你得到一个空字节字符串,那么首先使用 seek(0)
方法,然后从 stream
.
中使用 Read()
确保 if
条件在 processedfiles
上是正确的,因为如果在 processedfiles 中没有找到任何文件,那么只有你的案子将被执行。
即:- stream = BytesIO((myblob.read()))
参考:
我正在使用 blob 触发器读取 blob 内容,作为 pandas DF 处理并将 blob 附加到我正在使用的 Azure SQL 服务器。
blob 触发器没有按预期工作,所以我在 main 函数中定义了所有代码:
def main(myblob: func.InputStream):
logging.info(f"Python blob trigger function processed blob \n"
f"Name: {myblob.name}\n"
f"Blob Size: {myblob.length} bytes")
file = re.sub(r'^(.*?)\/','',myblob.name)
if file not in processedfiles:
stream = BytesIO((myblob.read()))
stream.seek(0)
但是我收到以下错误:
Exception: FunctionLoadError: cannot load the BlobFileTrigger function:
binding myblob has invalid non-type annotation <sqlalchemy.sql.functions._FunctionGenerator object at 0x7faa340f6a00>
谁能帮我找出这个问题的原因?
function.json配置如下:
{
"scriptFile": "__init__.py",
"disabled": false,
"bindings": [
{
"name": "myblob",
"type": "blobTrigger",
"direction": "in",
"path": "input/{name}",
"connection":"StorageConnection"
}
]
}
配置的
function.json
文件没问题如果你得到一个空字节字符串,那么首先使用
中使用seek(0)
方法,然后从stream
.Read()
确保
if
条件在processedfiles
上是正确的,因为如果在 processedfiles 中没有找到任何文件,那么只有你的案子将被执行。即:-
stream = BytesIO((myblob.read()))
参考: