azure-devops - Azure CLI 任务中的文件路径
问题描述
我有一个 Azure CLI 任务,它引用了一个 PowerShell 脚本(通过构建工件)运行az
命令。这些命令中的大多数都可以成功运行,但是在尝试执行以下命令时:
az appconfig kv import --name $resourceName -s file --path appconfig.json --format json
我注意到 Azure 资源不存在该信息,并且日志文件具有“文件不可用”。
我一定是从构建工件中错误地引用了该文件,但是如果有人可以对此提供一些清晰的说明,那就太好了。
解决方案
这可能有点难以弄清楚。
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
查看所有变量的当前值以在使用它们之前查看它们包含的内容也很有帮助。
参考:
推荐阅读
- java - 为什么 GET 资源没有响应请求
- r - 带有 ggplots 和 treemapify 的图表 Treemap
- angular - Angular 7 无法加载图像
- drupal-8 - 动态实体参考 - info.yml 中缺少核心键
- javascript - 将包含包含的 div 刷新到其他 php 文件
- php - 无法将图像从 URI 上传到 PHP 中的 Firebase 存储
- agda - Agda 中缺少类型签名错误,我不知道如何避免
- python - 如何按项目字符串中的大写字母数量对列表进行降序排序
- java - 紧耦合也可以包括接口吗?
- sorting - 使用 lambda 对 std::map 进行排序