0

我有一个 Azure CLI 任务,它引用了一个 PowerShell 脚本(通过构建工件)运行az命令。这些命令中的大多数都可以成功运行,但是在尝试执行以下命令时:

az appconfig kv import --name $resourceName -s file --path appconfig.json --format json

我注意到 Azure 资源不存在该信息,并且日志文件具有“文件不可用”。

我一定是从构建工件中错误地引用了该文件,但是如果有人可以对此提供一些清晰的说明,那就太好了。

4

2 回答 2

0

这可能有点难以弄清楚。

System.ArtifactsDirectory是默认变量,指示在发布部署期间将工件下载到的目录。

但是,要在脚本中使用默认变量,您必须首先将.默认变量名称中的替换为_. 例如,要System.ArtifactsDirectory在 PowerShell 脚本中打印工件变量的值,您必须使用$env:SYSTEM_ARTIFACTSDIRECTORY.

我有一个类似的设置,并在我的 PowerShell 脚本中这样做:

# Define the path to the file
$appSettingsFile="$env:SYSTEM_ARTIFACTSDIRECTORY\<rest_of_the_path>\appconfig.json"

# Pass it to the Azure CLI command
az appconfig kv import -n $appConfigName -s file --path $appSettingsFile --format json --separator . --yes

查看所有变量的当前值以在使用它们之前查看它们包含的内容也很有帮助。

参考:

于 2020-10-12T06:12:27.867 回答
0

我必须从构建工件中错误地引用文件

您可以尝试添加$(System.ArtifactsDirectory)到json文件路径。例如:--path $(System.ArtifactsDirectory)/appconfig.json

System.ArtifactsDirectory:在发布部署期间将工件下载到的目录。例子:C:\agent\_work\r1\a

有关详细信息,请参阅预定义变量

于 2020-08-03T08:19:07.483 回答