使用启动脚本发出在Azure WorkerRole中访问文件存储的问题

时间:2016-04-15 12:14:47

标签: powershell azure azure-worker-roles

我有一个Azure云服务工作者角色,需要安装单独的Windows服务才能将应用程序跟踪重定向到中央服务器。我已将此Windows服务的安装二进制文件放在存储帐户的文件存储中,如下所示。然后,我的启动任务调用批处理文件,然后执行power-shell脚本来检索文件并安装服务

当Azure部署角色的新实例时,脚本执行失败并显示以下错误:

  

找不到路径   ' \\ {名称} .file.core.windows.net \公用事业\ slab1-1.zip'因为它确实如此   不存在

但是,当我通过RDP连接后运行脚本时,一切都很好。有人知道为什么会这样吗?这是下面的脚本......

cmdkey /add:$storageAccountName.file.core.windows.net /user:$shareUser /pass:$shareAccessKey

net use * \\$storageAccountName.file.core.windows.net\utilities

mkdir slab
copy \\$storageAccountName.file.core.windows.net\utilities\$package .\slab\$package

1 个答案:

答案 0 :(得分:1)

通过使用脚本访问已安装的azure文件驱动器,我总是遇到问题。我认为这或多或少与驱动器仅为当前用户安装相关,并且从脚本调用时可能并不总是相同。

我最终在没有网络驱动器的情况下从azure文件中提取文件。

$source= $stroageAccountName
$sourceKey = $shareAccessKey
$sharename = "utilities"
$package = "slab1-1.zip"
$dest = ".\slab\" + $package

#Define Azure file share root
$ctx=New-AzureStorageContext $source $sourceKey
$share = get-AzureStorageShare $sharename -Context $ctx
Get-AzureStorageFileContent -share $share -Destination $dest -Path $package -confirm:$false

这里的代码示例将为您提供一个良好的开端: https://azure.microsoft.com/en-us/documentation/articles/storage-dotnet-how-to-use-files/

如果你有更复杂的文件夹结构,那么管理会更难,但是CloudFileDirectoryCloudFile的对象,属性和方法在powershell 4.0中无缝地为我工作

' Get-AzureStorageFileContent'需要

* Azure Powershell模块。小命令