我在Visual Studio中创建了一个简单的blob触发器,init.py如下
import logging
import azure.functions as func
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")
function.json如下
{
"scriptFile": "__init__.py",
"bindings": [
{
"name": "myblob",
"type": "blobTrigger",
"direction": "in",
"path": "mycontainer/{name}",
"connection": "AzureWebJobsStorage"
}
]
}
local.settings。json如下所示
{
"IsEncrypted": false,
"Values": {
"FUNCTIONS_WORKER_RUNTIME": "python",
"AzureWebJobsStorage": "DefaultEndpointsProtocol=https; AccountName=****;AccountKey=*****;EndpointSuffix=core.windows.net"
}
}
此代码在本地计算机上的visual studio中运行良好。但在azure portal上发布时,它无法从函数中读取blob路径。json并给出错误为
Invalid blob path specified : ''. Blob identifiers must be in the format 'container/blob'.
我已经使用命令发布了local.settings.json的contains。
func azure functionapp publish FUNCTIONNAME --build-native-deps --publish-local-settings -i
.有人能告诉我出版后我缺少什么吗?
您是否使用Azure门户中的run按钮来测试您的功能?blob触发器的工作方式是,在右侧的“测试”选项卡中,您可以指定要手动发送触发事件的blob的名称,强制运行函数:
这个想法是您应该编辑请求正文框的内容,并在您的帐户中放入一个有效blob的路径。这样触发器就会运行并找到blob并检索它。因此,如果您不修改请求正文框,那么它将查找一个blob,但找不到它并抛出404错误。
另外,请查看以下配置容器名称的文档
https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-blob#storage-blob-trigger
另请验证你的设置是否已在门户中发布。
func azure functionapp publish "functionname" --publish-local-settings
希望有帮助。
我有两个blob触发器,我想触发。一个有效,一个无效! 我使用Azure Storage Explorer来确保blob被上传到每个blob,< code>scanFiles永远不会触发,而< code>scanExports似乎总是会触发。 问题:什么会导致某些blob无法触发Azure函数?
我是Azure Function应用程序中blob触发器的新手,需要一些帮助。我正在努力寻找有关如何重命名触发该函数的blob的资源。 我有一个函数应用程序,当一个新的blob被上传到容器时触发,文件被处理,我需要一种方法来将其“标记”为已处理,因此我想重命名blob。 这是我的职责: 我该如何重命名该文件?在这种情况下有可能吗?
我使用blob触发器读取blob内容,作为pandas DF进行处理,并将blob附加到我使用的Azure SQL server。 blob触发器没有按预期工作,因此我将main函数中的所有代码都定义为: 但是,我得到了以下错误: 有人可以帮助我找到此问题的原因吗? function.json的配置如下:
我正在使用 Blob 触发器 Azure 函数来获取 Blob 文件数据,只要任何文件上传到容器。 使用上述方法,我能够获取上传的项目的URL。目前,上述代码是使用 Azure 提供的“在门户中开发”选项生成的。 是否有一种方法可以获取已上传的Blob文件的SAS URL?
如果你使用blob存储触发器阅读Azure WebJobs上的留档,它们会提到这不是很可靠: WebJobs SDK扫描日志文件以查看新的或更改的blob。这个过程不是实时的;在创建blob后的几分钟或更长时间内,函数可能不会被触发。此外,存储日志是在“尽力而为”的基础上创建的;无法保证所有事件都将被捕获。在某些情况下,日志可能会丢失。如果您的应用程序无法接受blob触发器的速度和可靠性限制,建议
当我在.NET Core 2.0中使用VS2017创建Azure函数并在本地运行时,我的blob触发器工作正常。但当我发布到Azure时,触发器不会触发,也不会将日志写入Azure门户控制台。 发布后,我转到Azure门户并看到此错误:“未注册绑定类型'bbloTrigger'。 然后我尝试安装Microsoft.Azure.WebJobs.Extensions。但它失败了。(我是通过尝试在门户上