当我从本地计算机使用时(安装了azCopy),我有一个PowerShell脚本一直在工作:
AzCopy `
/Source:C:\myfolder `
/Dest:https://mystorageaccount.blob.core.windows.net/mystoragecontainer `
/DestKey:<storage-account-access-key> `
/Pattern:"myfile.txt"
使用azure管道(Microsoft托管代理),此脚本失败,并显示
“ AzCopy.exe:术语'AzCopy.exe'不被识别为cmdlet,函数,脚本文件或可运行程序的名称。”
我尝试了不同的代理,但仍然是相同的错误。 我必须使用哪个代理才能使用azCopy?
我想念明显的东西吗?
是否有另一种方法始终使用powershell做到这一点?
答案 0 :(得分:0)
要使用AzCpoy将文件复制到Azure,可以使用内置任务Azure File Copy,而无需使用PowerShell:
此外,您可以安装Microsoft Azure Build and Release Tasks扩展名,该扩展名将为您提供带有更多选项的另一个任务“ Azure Copy File Extended”。
答案 1 :(得分:0)
与Shayki Abramczyk同意,他提供的 Azcopy任务也可用于实现复制文件。这是另一种方式,您可以考虑尝试一下:-)
回到此问题。根据错误消息,我认为这是因为托管代理中缺少SDK。
直到现在,Microsoft尚未在每个托管代理中安装 Azure.Storage.AzCopy
。因此,您使用的代理可能不支持此功能。
我们提供了seven different agents供用户使用,但仅安装了支持Azcopy.exe的SDK Hosted VS2017,Hosted Windows 2019 with VS2019和Hosted Ubuntu 1604。
因此,您可以尝试使用这三个代理与powershell一起执行azcopy命令。
修改:
因为可执行文件( azcopy.exe )在本地。那么,您的AzCopy.exe在哪里?对我来说是C:\Program Files (x86)\Microsoft SDKs\Azure\AzCopy
。
因此,在脚本中,您需要执行cd
命令将目录更改为AzCopy.exe首先位于的文件。
cd “C:\Program Files (x86)\Microsoft SDKs\Azure\AzCopy”
注意:要做 不要在此处丢失双引号,否则您将得到 x86不是认可。如果文件路径与我的不同,只需更改您的文件路径即可。
然后,由于使用了Powershell,您可能需要使用powershell语法。这是完整的格式示例,可根据您的脚本对其进行修改:
$source="C:\MyFolder"
$dest="https://mystorageaccount.blob.core.windows.net/mystoragecontainer"
$pattern = "myfile.txt"
$destkey = <key>
cd “C:\Program Files (x86)\Microsoft SDKs\Azure\AzCopy”
$azcopy = .\AzCopy.exe /Source:$source /Dest:$dest /DestKey: $destkey
/Pattern: $pattern
请尝试一下。
答案 2 :(得分:0)
对于像我这样的人,由于他们通过在PS脚本中调用AZ副本而出现此错误,从而进入了此线程,这已确认在Windows Hosted的最新(VM2019)版本中未安装AZ副本。但是根据MS的说法,二进制文件存在于映像中,因此您不必安装它,而只需使用正确的路径即可。 有关在VM上安装(或保存)的软件包的更多信息,可以检查此Git Repo