【发布时间】:2019-08-03 19:09:09
【问题描述】:
我正在使用 Ubuntu 16.04.5 LTS 本地计算机使用 CLI 和 Azure Functions Core Tools (Ref) 创建 Python Function App 并将其发布到 Azure。我已经配置了 Blob 触发器,我的 function.json 文件如下所示:
{
"disabled": false,
"scriptFile": "__init__.py",
"bindings": [
{
"name": "<Blob Trigger Name>",
"type": "blobTrigger",
"direction": "in",
"path": "<Blob Container Name>/{name}",
"connection": "<Connection String having storage account and key>"
},
{
"name": "outputblob",
"type": "blob",
"path": "<Blob Container Name>",
"connection": "<Connection String having storage account and key>",
"direction": "out"
}
]
}
我的 init.py 函数如下所示。
def main(<Blob Trigger Name>: func.InputStream, doc: func.Out[func.Document]):
logging.info(f"Python blob trigger function processed blob \n"
f"Name: {<Blob Trigger Name>.name}\n"
f"Blob Size: {<Blob Trigger Name>.length} bytes")
logging.basicConfig(filename='example.log',level=logging.DEBUG)
logging.debug('This message should go to the log file')
logging.info('So should this')
logging.warning('And this, too')
# Write text to the file.
file = open("QuickStart.txt", 'w')
file.write("Hello, World!")
file.close()
# Create the BlockBlockService that is used to call the Blob service for the storage account
block_blob_service = BlockBlobService(account_name='<Storage Account Name>', account_key='<Storage Account Key>')
container_name='<Blob Container Name>'
# Set the permission so the blobs are public.
block_blob_service.set_container_acl(container_name, public_access=PublicAccess.Container)
# Upload the created file, use local_file_name for the blob name
block_blob_service.create_blob_from_path(container_name, 'QuickStart.txt', '')
Function App 是“始终开启”,但是当我在存储中上传 blob 时,该功能没有被触发。另一个参考链接是这个(Ref).
怎么了?
感谢和问候, 沙申克
【问题讨论】:
-
您的 Function 主机日志(而不是您自己的 example.log 日志)是什么样的?
-
没有遇到与您相同的问题,但我遇到了这个 SO 帖子,因为我的功能没有被触发。将 "path": "
/" 替换为 "path": " /{name}" 为我解决了这个问题。
标签: python function azure blob azure-triggers