当前位置: 首页 > 知识库问答 >
问题:

Azure功能Blob部署

屠盛
2023-03-14

我在这里讨论一下文档:https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-blob-output?tabs=python

以下是我目前掌握的代码:

function.json


{
  "bindings": [
    {
      "queueName": "myqueue-items",
      "connection": "nameofstorageaccount_STORAGE",
      "name": "queuemsg",
      "type": "queueTrigger",
      "direction": "in"
    },
    {
      "name": "inputblob",
      "type": "blob",
      "dataType": "binary",
      "path": "samples-workitems/{queueTrigger}",
      "connection": "nameofstorageaccount_STORAGE",
      "direction": "in"
    },
    {
      "name": "outputblob",
      "type": "blob",
      "dataType": "binary",
      "path": "samples-workitems/{queueTrigger}-Copy",
      "connection": "nameofstorageaccount_STORAGE",
      "direction": "out"
    }
  ],
  "disabled": false,
  "scriptFile": "__init__.py"
}

初始化。py


import logging
import azure.functions as func


def main(queuemsg: func.QueueMessage, inputblob: bytes, outputblob: func.Out[bytes]):
    logging.info(f'Python Queue trigger function processed {len(inputblob)} bytes')
    outputblob.set(inputblob)
    

如果我理解正确,当一个Blob被添加到容器中时,这个函数应该被触发,并且它可以在同一个容器中保存该blob的副本。

这些函数可以运行,但是当一个blob被上传到一个容器时,什么都不会发生?我想在上传blob时触发一些代码,这是我发现的Python和blob触发器的唯一完整示例

感谢任何帮助,谢谢!:)

共有1个答案

鲁滨海
2023-03-14

否。如果您阅读了文档,则说明当消息被发送到队列时,该功能被触发:

以下示例显示函数中的blob输入和输出绑定。json文件和使用绑定的Python代码。该函数生成一个blob的副本。该函数由包含要复制的blob名称的队列消息触发。新的blob名为{originalblobname}-Copy。

如果要在创建blob时执行函数,请参见此处的blob触发器示例:https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-blob-trigger?tabs=python.

 类似资料:
  • 我们目前正在迁移到一个新的Azure订阅,在执行Azure功能时出现问题,这些功能在我们的旧Azure订阅中按预期工作。我们的旧订阅和新订阅之间的主要区别在于,我们已经建立了一个具有子网的虚拟网络,并在子网后面部署了我们的资源。 我们还必须从旧订阅中的Azure应用服务迁移到新订阅中的Azure应用环境。 我们的Azure环境包括: 应用服务环境 应用服务计划I1 Azure应用环境和存储容器位于

  • 我们遇到了Blob触发函数的问题。该函数是用javascript编写的。我们费了很大的劲才把自动化部署流程落实到位。以下是我们遵循的步骤。 > 使用ARM模板和参数文件在现有资源组中创建函数应用程序 通过<code>Kudu<code>api<code>调用RestMethod-Uri“$apiUrl”-方法Put-InFile“$functionCodeArchivePath”-凭证$crede

  • 我们使用Python 3.8长期以来一直存在这个问题。 通过“func start”在本地运行Azure函数并从blob存储下载文件与预期一样快 运行已部署的Azure函数(通过应用服务计划)会导致~50kb/s的下载速度 这里的问题是什么? 我期望部署的函数下载blob文件的速度甚至比在本地运行它更快,因为它们在同一个网络中? 文件大小约为2 MB,使用Azure blob storage v1

  • 我无法理解Function应用程序的工作原理。 我的环境如下:Python3.8、Blob触发器、消费计划 我正在创建一个应用程序,当音频文件上传到容器时触发该应用程序。此音频文件触发Azure函数并使用Azure认知服务运行“语音到文本”(因此我的函数正在等待该服务的回复)。我在5处设置了一个“FUNCTIONS_WORKER_PROCESS_COUNT”,以允许我的每个函数应用程序实例并行运行

  • 我想通过运行在Azure VM上的FTP服务器与用户共享Azure Blob存储中的文件。 据我所知,您不能在VM上挂载Blob存储,但可以使用“网络使用”挂载Azure文件共享。 Blob存储上的文件将以增量方式上载,因此理想情况下,我希望在上载时将其复制到Azure文件,Azure功能似乎是理想的方式,因为它们很容易为我设置和处理Blob存储上的触发器。 我如何使用Azure功能将文件从Blo

  • 我有一个用例,需要以Json格式将调查结果从web应用程序上传到azure blob存储。根据调查问题判断,这些json对象将很小,甚至不会接近1MB。我一直在阅读C#中的azure blob客户端并进行实验。我实现了一个工作单元和存储库设计模式,这意味着每个CRUD操作都会导致与azure存储的连接。我是否应该考虑并行操作或批量调用以降低成本,提高性能和吞吐量?有很多关于并行操作的文章,但他们试