gpt4 book ai didi

json - Azure Devops - 从一个任务输出 Json 对象并在另一任务中使用

转载 作者:行者123 更新时间:2023-12-02 05:58:20 25 4
gpt4 key购买 nike

假设我在 Azure DevOps 中有一个用 yaml 编写的发布管道,它有两个任务,一个用于从文件中读取 json,第二个用于将 key 设置为使用第一个任务中读取的 json 的不同 json 文件。我有以下 pipeline.yml -

trigger:
- master

pool:
vmImage: 'ubuntu-latest'

steps:
- task: PowerShell@2
name: ReadMetadataJson
inputs:
filePath: 'MetadataReader.ps1'
arguments: 'Run MetadataReader.ps1 -pathToMetadata metadata.json'
- task: PowerShell@2
name: SetAppSetting
inputs:
filePath: 'AppSettingSetter.ps1'
arguments: 'Run AppSettingSetter.ps1 -pathToAppSetting SomeApp/Data.json -appSettingKey testkey -appSettingValue $($(ReadMetadataJson)).testkey'
- script: echo $(ReadMetadataJson.metadata)

下面是每个任务调用的 Powershell 脚本 -

Powershell 1

# Read From the Metadata.json
param ($pathToMetadata)

echo $pathToMetadata
$metadata = Get-content $pathToMetadata | out-string | ConvertFrom-Json

Write-Output "Metadata Json from metadata reader ps script - $metadata"
echo "##vso[task.setvariable variable=metadata;]$metadata"

Powershell 2

# For now just accept the values in parameter and log them
param ($pathToAppSetting, $appSettingKey, $appSettingValue)

echo "pathToAppSetting : $pathToAppSetting"
echo "appSettingKey : $appSettingKey"
echo "appSettingValue : $appSettingValue"

# Code to set in another file. I have this working, so omitting for brevity

这些是 json 文件 -

Metadata.json

{
"testkey": "TestValueFromMetadata",
"testkey1": "TestValueFromMetadata1"
}

appSetting.json

{
"testkey": "TestValueInAppSetting",
"testkey1": "TestValueInAppSetting1"
}

问题是当我想返回 json 数据作为第一个任务的输出并在第二个任务中使用它来将参数传递给第二个 powershell 脚本时。下面是我运行后管道结果的屏幕截图。

enter image description here

可以看到,它显示ReadMetadataJson.metadata:找不到命令。我一直关注Microsoft document作为引用并搜索了其他文章,但我能找到的只是处理诸如 stringinteger 之类的值,而不是 json 对象。我错过了什么或做错了什么。

最佳答案

您可以将 JSON 对象转换为字符串 (ConvertTo-Json) 并将其作为变量传递给第二个脚本。

然后在第二个脚本中,您只需使用 ConvertFrom-Json 方法再次将字符串解析为 JSON 对象即可。

关于json - Azure Devops - 从一个任务输出 Json 对象并在另一任务中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60707464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com