web-dev-qa-db-ja.com

VSTSパイプラインのタスク間で変数を渡すにはどうすればよいですか?

VSTSパイプラインを介したarmテンプレートの展開に取り組んでいます。サブネットIDを取得するPowerShellスクリプトがあり、このサブネットID値をVSTSの別のタスクに渡す必要があります。 PowerShellスクリプトからvstsに変数を渡してから、これをParmae​​terとしてAzureリソースグループ展開タスクに渡すにはどうすればよいですか?

4
itye1970

PowerShellに新しい変数を設定し、それをVSTSに渡して、次のタスクの1つで使用できるようにすることができます。

Write-Host "##vso[task.setvariable variable=sauce]crushed tomatoes"
Write-Host "##vso[task.setvariable variable=secretSauce;issecret=true]crushed tomatoes with garlic"

これにより、値が「砕いたトマト」の「ソース」(最初の例)という新しい環境変数が作成されます。

次のタスクでは、タスク構成画面の$(sauce)またはPowerShellスクリプトの$ env:sauceを使用して読み取ることができます。

使用方法の詳細については、 https://docs.Microsoft.com/en-us/vsts/build-release/concepts/definitions/release/variables?tabs=batch を参照してください。

14
Rodrigo Werlang

@Rodrigo Werlangによる提案は機能しますが、set変数は、タスク設定が含まれているジョブにスコープされます。現在、これは既知の制限であり、文書化されています ここ

スクリプトから変数を定義または変更するには、task.setvariableloggingコマンドを使用します。 更新された変数値は実行中のジョブにスコープされ、ジョブまたはステージ間を流れないことに注意してください。変数名は大文字に変換され、文字は「。」になります。および「」は「_」に置き換えられます。

3
Artak