azure - 如何在 Powershell 中使用 Azure Function 应用程序编写文件
问题描述
我正在使用 PowerShell 和 Azure 函数,这两个函数对我来说都是新的,但我的任务是使用这些选择。
我真正想做的是:
Invoke-RestMethod -Method GET -Uri $uri -Headers $headers -Body $body -OutFile $outfile -UseBasicParsing -DisableKeepAlive
暂时将 REST 响应写入$outfile
脚本,稍后在脚本中我将通过 FTP 将文件上传到其他地方,然后不再需要它。
当然,这在本地效果很好。$outfile
但在 Azure 中,我基本上知道在路径位置找不到该文件。无论如何,它不应该试图在那里找到它,但我只能猜测我实际上没有写入该文件系统的权限。
因此,如果您知道我在这里编写临时文件的方法,那将是首选!
如果不是,一些 blob 存储是使用函数应用程序生成的,我有一个环境变量,AzureWebJobsStorage
其中包含用于该存储的帐户名、密钥等。所以也许我可以把文件写到那里,然后再读回来。
但是,我在任何地方都找不到任何关于如何在 PowerShell 中执行此操作的文档。关于变量的讨论很多AzureWebJobsStorage
,但我没有找到实际使用它的任何地方以及如何在 PowerShell 中读取和写入的示例。再说一次,因为我对这门语言还很陌生。
任何帮助将不胜感激。谢谢!
解决方案
cmdlet返回的位置New-TemporaryFile
是可写的,因此您可以这样做:
$tempFile = New-TemporaryFile
Invoke-RestMethod -Method GET -Uri $uri -Headers $headers -Body $body -OutFile $tempFile -UseBasicParsing -DisableKeepAlive
...
Remove-Item $tempFile
请注意,此临时保证仅在同一函数调用的上下文中可用。其他函数调用可能会分派给其他工作人员,并且该文件将不再可用。
如果您确实想在调用之间共享文件,则可以将其存储在 下D:\home\data
,但请注意此位置在工作人员之间共享,因此您可能需要处理潜在的并发访问等。您也可以使用直接访问存储帐户Az.Storage cmdlet。该AzureWebJobsStorage
变量包含一个可以传递给 的连接字符串,New-AzStorageContext
然后您可以将数据存储在一个 blob 中(您可以在https://docs.microsoft.com/en-us/powershell/module/az 找到示例。存储)。
推荐阅读
- angular - 角度错误:无法解析组件的所有参数
- javascript - 在Javascript中调用函数时创建全局变量并生成随机数并更新变量
- python - 使用 beautifulsoup 在 Kickstarter 上抓取多个网址
- lambda - Linq TO SQL 查询挂起的插入记录
- vb.net - 句柄子句需要在包含类型中定义的 withevents 变量(日志中的错误,但单击时消失)
- java - Log4j2:将某些字符串添加到每个记录的行
- ios - Alamofire 5:不尊重自定义 HTTP 标头
- rx-java - 使用 RxJava 将一对列表拆分为两个列表 - 第一个列表和第二个列表?
- scala - 创建功能测试 Scala Playframework 2.6 Macwire
- r - R中的流派/性别到数字