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

如何使用事件网格触发器从Azure功能(powershell)访问blob?

袁谭三
2023-03-14

我正在尝试设置一个 Powershell Azure 函数,该函数在 Blob 存储容器中创建文件时触发。该函数需要处理 Blob 文件并将其保存到其他 Blob 存储容器。

目前这个函数什么都不做,因为我正在尝试处理下面的问题。

我无法从 powershell 函数内部访问 blob。我能够使用属性在c#中实现这一点,但似乎Powershell不支持属性。

我尝试在函数的集成选项卡下添加Azure Blob存储输入,路径为“容器名称/{名称}”。但这只是导致错误:“命名参数'name'没有值。”

如何使用事件网格触发器从 powershell 函数访问 Blob?

谢啦!

功能:

param($eventGridEvent, $TriggerMetadata, $inputBlob)

$fileName = $TriggerMetadata.Name;

Write-Host "file name: $($fileName)";

Push-OutputBinding -Name outputBlob -Value $fileName

function.json

{
  "bindings": [
    {
      "type": "eventGridTrigger",
      "name": "eventGridEvent",
      "direction": "in"
    },
    {
      "name": "outputBlob",
      "path": "https://storage01.blob.core.windows.net/container-name",
      "connection": "Storage01ConnectionString",
      "direction": "out",
      "type": "blob"
    },
    {
      "name": "inputBlob",
      "path": "container-name/{name}",
      "connection": "Storage01ConnectionString",
      "direction": "in",
      "type": "blob"
    }
  ]
}

共有2个答案

皇甫飞飙
2023-03-14

根据<code>的要求,设置Powershell Azure函数,该函数在blob存储容器中创建文件时触发。该函数需要处理blob文件并将其保存到不同的blob存储容器中 我认为您可以通过blob存储触发器和添加输出绑定(使用另一个blob存储容器)来实现这一点。事件网格触发器不是必需的。

如果在<code>samples workitems

咸利
2023-03-14

同一函数上不能有多个触发器(输入绑定),因此需要选择一个:

    < li >或者只使用blob触发器(这是最简单的,但是在创建blob和触发函数之间可能会有很长的等待时间); < li >或者使用事件网格触发器,从事件中检索blob名称,并使用Az模块检索blob内容(性能更高,但需要编写更多代码)。

重要的是每个函数只能有一个输入绑定。

 类似资料:
  • 我已经实现了一个EventGrid触发器来响应Blob存储事件,其逻辑简化如下: 外部API的响应时间不长(1秒或更短),我对主机的配置设置为默认(因此允许无限数量的并发调用)。 当同时添加多个blob(从只有2个blob开始)时,我在日志中得到了很多重复的事件(脚本正在快速地一个接一个地上传blob,中间没有等待时间)。 我觉得这可能是由于我从不承认收到事件,我不知道我是否应该在我的代码中执行此

  • 我们有一个 Azure 设置,其中包含一个 Azure 事件网格主题,并且我们有一个 Azure 函数服务,其中包含大约 15 个函数,这些函数通过不同的前缀筛选器订阅该主题。Azure 函数服务设置为基于消耗的资源,应该能够根据需要进行缩放。 每个订阅都设置为在最多4小时内尝试交付10次,然后放弃活动。到目前为止一切顺利,设置大部分时间都按预期工作。 在某些情况下,对于我们未知的情况,事件网格主

  • 我的Azure Functions事件网格触发器没有触发。我是这么做的。 Key Vault设置为将事件报告给EventGrid系统主题 此主题由将事件传递到Azure Function的订阅订阅 函数有一个事件网格触发器(见下文,默认由门户创建): 我用谷歌搜索了一下,对于这样的入门级方案,没有更多的指导。我想的也许是授权...订阅如何触发该函数?在此过程中(通过GUI /门户配置),没有任何关

  • 如何在事件网格触发器Azure函数中获取已删除blob的元数据?下面是一个C#代码示例- 我可以从EventGridEvent获取吗-- 引用链接-https://docs . Microsoft . com/en-us/azure/event-grid/event-schema-blob-storage

  • 背景 Java Azure 函数 2,将 Blob 存储与 blob 的事件网格子序列结合使用,创建函数(见下文)通过事件触发器绑定到的事件。 问题 不清楚如何从Azure函数绑定blob(请参见< code > @ Blob Input Java annotation)输入Blob绑定,该文档说明了这些函数,但不确定在Java API中是否可能,这与C#中的情况不同。 当函数被调用时,使用注释,

  • 在Azure function中,你可以创建一个函数来监听某个事件的变化,比如消息总线、blob存储等等... 如果您正在使用azure功能,并且您的目标是通过侦听事件(如消息总线、blob存储或任何其他内置触发器)来处理某些事情,那么您有什么理由希望将事件网格放在中间层吗?即,您不希望azure函数直接侦听blob存储更改,而是希望azure函数侦听正在侦听blob存储器更改事件的事件网格。 谢