【Azure 应用服务】在Azure Funciton中使用Powershell脚本函数,需要存储一些变量值如何解决?
问题描述
使用Azure Function创建Powershell脚本来执行函数,在使用中需要存储一些不重要的参数。一般情况,存储的问题都是交给DB,Storage等来解决。但是有没有一种简单的办法呢?就用Powershell命令把参数的内容输出到txt文件中,然后每次需要使用的时候就直接使用get-content呢?
由于Azure Funciton是被触发运行或者是定时运行,这表示代码在执行完一次后将释放资源,所以不能通过变量的方式来存储数据。
解决办法
在不使用数据库的情况下,就通过在Azure Funciton的Home目录中生成文件并在文件中保存参数值。 这里Home目录的路径和Azure App Service一样,即可以是D:\Home\,也可以是%home%\
在Powershell funciton中的代码为:
# Write to the Azure Functions log stream. Write-Host "PowerShell HTTP trigger function processed a request." $date = Get-Date -Format yyyy-mm-dd-hh-mm-ss Write-Host "the new data is: $date " $date | out-file -filepath d:\home\namelist.txt -Encoding utf8 -append -width 200 $sdata = Get-Content -Path d:\home\namelist.txt #$sdata = (Get-Content -Path d:\home\namelist.txt)[-1] Write-Host "File content is: $sdata "
首先通过Powershell的 out-file方法把 $data中的内容保存到文件d:\home\namelist.txt中。注意需要使用utf8编码。以避免乱码的情况。
然后通过Get-Connect从文件中读取内容赋值到新参数中。这样即实现了通过文件内容读取历史保留的任何参数。
测试结果如下图:
参考资料
在 Azure 中使用 Visual Studio Code 创建 PowerShell 函数: https://docs.azure.cn/zh-cn/azure-functions/create-first-function-vs-code-powershell
Out-File: https://docs.microsoft.com/en-us/powershell/module/Microsoft.PowerShell.Utility/Out-File?view=powershell-7.1
Get-Content: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/get-content?view=powershell-7.1
- 如何得到应用的context以使用这个context 得到应用的安装目录下的files目录,将一些数据存储在这里
- 如何使用Azure云服务和SQL Database部署PHP应用
- 如何使用AWS和Azure的配置存储服务保存读取配置
- Azure 中国篇之网络服务--(1)如何使用azure powershell连接到azure
- 如何使用URL跳转解决Web服务80端口被封问题?
- 临时表操作的一些见解(解决了我在存储过程中使用临时表的困惑)
- 如何使用WxJump解决微信内置浏览器不支持下载文件应用的解决方法
- SQL2000系统表、存储过程、函数的功能介绍及应用2009年01月21日 星期三 11:38虽然使用系统存储过程、系统函数与信息架构视图已经可以为我们提供了相当丰富的元数据信息,但是对于某些特殊的元数据信息,我们仍然需要直接对系统表进行查询。因为SQL
- 如何使用Azure Container Service Engine在Azure中国区部署容器服务(一):DC/OS篇
- [ChneChen的随笔][管理之道]什么才是我们需要的解决问题的方法(从如何限制公司电脑使用U盘解决之道谈起)
- [Azure] Azure 中国服务使用注意事项及兼容版存储访问工具
- 如何配置Flash Media Live Encoder (FMLE)从而使用Azure直播服务
- 使用ADSI开发NT目录服务会出现的一些问题及解决办法
- 如何使用 Azure PowerShell 在 Azure Marketplace 中查找 Windows VM 映像
- 如何解决本地计算机上的mysql服务启动停止后,某些服务在未由其他服务或程序使用时将自动停止
- SRV记录用来标识某台服务器使用了某个服务,常见于微软系统的目录管理——深入的话需要去折腾Azure Active Directory
- 如何配置Flash Media Live Encoder (FMLE)从而使用Azure直播服务
- iOS Parse教程——如何使用Parse在iOS应用创建后台服务
- 关于如何在eclipse中部署服务遇到的一些问题和解决。
- [Azure]使用Powershell获取Azure ARM模式订阅下的一些常用信息