通过blob触发事件触发azure功能。
- 触发器从
new-container
向函数提供myblob
的csv文件。 - 该函数还从
base-container
获取base.csv
作为base
。 - 两个CSV文件都通过Pandas库读取。
- 进行一些处理以创建
df_final
。 df_final
通过to_csv()
转换为字符串表示。- CSV的字符串表示形式转换为utf-8编码。
blobout.set()
将编码为CSV的base-container
存储为base.csv
。
一切都按预期运行,但唯一的问题是当base.csv
通过blobout.set
存储时,它是一个0字节大小的空bile,尽管df_final有记录。
初始化.py
import logging
import pandas as pd
import azure.functions as func
from io import BytesIO
def main(myblob: func.InputStream, base: func.InputStream, blobout: func.Out[bytes]):
df_base = pd.read_csv(BytesIO(base.read()))
df_new = pd.read_csv(BytesIO(myblob.read()))
df_final = process_data(df_base, df_new)
df_final = df_final.to_csv(index=False)
blobout.set(df_final.encode())
函数.json
{
"scriptFile": "__init__.py",
"bindings": [
{
"name": "myblob",
"type": "blobTrigger",
"direction": "in",
"path": "new-container/{name}",
"connection": "my_storage"
},
{
"type": "blob",
"name": "base",
"path": "base-container/base.csv",
"connection": "my_storage",
"direction": "in"
},
{
"name": "blobout",
"type": "blob",
"direction": "out",
"path": "base-container/base.csv",
"connection": "my_storage"
}
]
}
1条答案
按热度按时间gcuhipw91#
从我的端重现之后,这是工作正常。我相信没有值从
process_data
得到返回。确保没有空值从process_data
得到返回。下面是我在process_data
中使用的一个示例代码,它给了我预期的结果。