azure - 如何在 Powershell 中使用 Azure Function 应用程序写入文件

标签 azure powershell azure-functions

我正在使用 PowerShell 和 Azure 函数,这两个功能对我来说都是新的,但这是我的任务选择。

真正想做的是:

Invoke-RestMethod -Method GET -Uri $uri -Headers $headers -Body $body -OutFile $outfile -UseBasicParsing -DisableKeepAlive

暂时将 RE​​ST 响应写入 $outfile,稍后在脚本中我将通过 FTP 将文件上传到其他位置,然后就不再需要它了。

当然,这在本地效果很好。但在 Azure 中,我基本上发现在 $outfile 路径位置找不到该文件。无论如何,它不应该试图在那里找到它,但我只能猜测我实际上没有写入该文件系统的权限。

因此,如果您知道我在这里编写临时文件的方法,那将是首选!

如果不是,函数应用程序会生成一些 blob 存储,并且我有一个 AzureWebJobsStorage 环境变量,其中包含该存储的帐户名、 key 等。所以也许我可以将文件写入那里,然后读回它们。

但是,我在任何地方都找不到任何有关如何在 PowerShell 中执行此操作的文档。关于 AzureWebJobsStorage 变量有很多讨论,但我没有找到任何实际使用它的地方以及如何在 PowerShell 中读写的示例。再说一遍,因为我对这门语言还很陌生。

任何帮助将不胜感激。谢谢!

最佳答案

New-TemporaryFile cmdlet 返回的位置是可写的,因此您可以执行以下操作:

$tempFile = New-TemporaryFile
Invoke-RestMethod -Method GET -Uri $uri -Headers $headers -Body $body -OutFile $tempFile -UseBasicParsing -DisableKeepAlive
...
Remove-Item $tempFile

请注意,此临时保证仅在同一函数调用的上下文中可用。其他函数调用可能会被分派(dispatch)给其他工作人员,并且该文件将不再可用。

如果您确实想在调用之间共享文件,可以将其存储在 D:\home\data 下,但请注意该位置是在工作进程之间共享的,因此您可能需要处理潜在的并发访问等。您还可以使用 Az.Storage cmdlets 直接访问存储帐户。 AzureWebJobsStorage 变量包含一个可传递到 New-AzStorageContext 的连接字符串,然后您可以将数据存储在 blob 中(您可以在 https://learn.microsoft.com/en-us/powershell/module/az.storage 找到示例) .

关于azure - 如何在 Powershell 中使用 Azure Function 应用程序写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60047717/

相关文章:

azure - 如果网站在 AWS EC2 和 Azure VM 上运行,Videojs 会记录不访问摄像头/麦克风或共享屏幕的情况

python - 将 Azure Blob 存储中的新 CSV 加载到 SQL DB

c# - 从 Azure Blob 存储下载文件

function - 如何在Powershell中返回202 Accepted然后继续处理请求

python - 无法使用 BlobTrigger 读取内容/数据 (azure.functions) [Python]

c# - 在基本 Azure Function 项目中找不到 ServiceBusTrigger

sql-server - Windows Azure、 Entity Framework 。不支持关键字 : 'metadata' .

powershell - 仅传递提供的参数

azure - 将 Base-64 pfx 转换为可用的 pkcs#12

powershell - 如何在不中断脚本本身的情况下中断脚本内调用的可执行文件?