Azure Powershell 函数应用程序与 Blob 交互

Azure Powershell Function App Interacting with Blob

对 Azure 和 Function Apps 非常陌生。

我正在尝试使用 Powershell 设置一个简单的 Function 应用程序,它需要从 blob(简单的 .txt 文件)中读取内容,对其进行一些简单的处理并将该文件的副本写入不同的 blob .

到目前为止,我已经在应用程序上设置了集成,我可以看到它提供了我可以使用的绑定。看起来像这样:

 {
  "name": "inputBlob",
  "direction": "in",
  "type": "blob",
  "path": "input/logs.txt",
  "connection": "AzureWebJobsStorage"
}

我在脚本开头的 powershell 参数中引用了该绑定:

# Input bindings are passed in via param block.
param($Request, $TriggerMetadata, $inputBlob)

据我所知,这应该允许我连接到那个 blob 并与之交互。我不明白的是应该怎么做?我尝试使用似乎最适合这种情况的 cmdlet:Get-AzStorageBlobContent

例如:

$blobContent = Get-AzStorageBlobContent -name $inputBlob

但是当我尝试 return 我的 http 响应中的内容(这样我可以检查它是否已被读取)时,响应正文是空的。

我想我还需要添加更多绑定以输出到 blob 吗?

例如,Set-AzStorageBlobContent cmdlet 似乎只支持 'files' 但在我的情况下,在函数应用程序中,我没有文件,只有字符串或数组,所以我该如何将该内容推送到目标 blob 中?

非常感谢有关如何实现此目标的任何指示,

$inputBlob 变量应包含字节数组形式的 blob 数据,因此您可以:

foreach ($value in $inputBlob) { ... }

或者任何你想用字节数组做的事情。

如果需要输出到blob,需要添加输出绑定:

    {
      "name": "myOutputBlob",
      "type": "blob",
      "path": "output/data.txt",
      "connection": "AzureWebJobsStorage",
      "direction": "out"
    }

并将数据从您的函数代码推送到此绑定:

Push-OutputBinding -Name myOutputBlob -Value 'my value'