Azure Powershell功能应用程序与Blob的相互作用

问题描述 投票:0回答:1

对Azure和Function Apps非常陌生。

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

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

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

我在脚本开头的powershell params中引用了这个绑定。

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

根据我的理解,这应该允许我连接到那个blob并与之交互。我不明白的是,应该怎么做?我试着用了一个看起来最合理的cmdlet。 Get-AzStorageBlobContent

比如说。

$blobContent = Get-AzStorageBlobContent -name $inputBlob

但是当我试图在http响应中返回这些内容时(这样我就可以检查是否已经读取),响应体是空的。

我猜想,我还需要添加更多的绑定来输出到 blobs?

例如,Set-AzStorageBlobContent cmdlet似乎只支持 "文件",但在我的案例中,在函数应用中,我没有文件,只有一个字符串或数组,那么我如何将这些内容推送到目标blob中?

如果有任何关于如何实现这一目标的建议,我将不胜感激。

azure azure-functions azure-powershell
1个回答
1
投票

$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'
© www.soinside.com 2019 - 2024. All rights reserved.