在我的Azure角色启动任务中,我需要部署我的本地C++应用程序。我是通过从一个.cmd文件运行一组操作来实现的。
问题是角色内容所在的驱动器和启动任务所在的驱动器只有大约1GB的可用空间,这不足以部署该应用程序。
我当然可以在服务定义中要求本地存储,但我找不到如何从启动任务中获取本地存储的实际路径-有E:\
可供使用,但似乎只能从角色代码中获得,我需要在启动任务中执行同样的操作。
如何从启动任务检测到本地存储的路径?
最佳答案
你可以写c或powershell来完成它。现在,我首选的方法是使用以下powershell脚本:
param($name)
[void]([System.Reflection.Assembly]::LoadWithPartialName("Microsoft.WindowsAzure.ServiceRuntime"))
write-host ([Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment]::GetLocalResource($name)).RootPath.TrimEnd('\\')
然后根据需要从批处理文件调用:
powershell -c "set-executionpolicy unrestricted"
for /f %%p in ('powershell .\getLocalResource.ps1 MyStorage') do set LOCALPATH=%%p
编辑:也可以在我的博客上看到同样的答案。