web-dev-qa-db-ja.com

VSTSタスクグループから不要なパラメーターを削除する

他のタスクに加えて、Azure KeyVaultタスクとAzureResource GroupDeploymentタスクを含むタスクグループがあります。後者では、ARMテンプレートのいくつかのパラメーターを、キーボールトからの値でオーバーライドしたいと思います。

Azure Key VaultタスクのSecrets filterフィールドは_secret1,secret2,secret3_のようになります。これらのシークレットは、シークレット名と同じ名前の他のタスクで変数として使用できます。したがって、テンプレートパラメーターのオーバーライドフィールド内のAzure Resource Group Deploymentタスクの値は-p1 $(secret1) -p2 $(secret2) -p3 $(secret3)です。

問題は、VSTSがタスクグループのパラメーターとして3つの変数を自動的に選択することです。私はこれが起こらないようにしたい。これらの変数は、タスクグループ自体の中で設定および読み取られます。それらはクラス内のプライベートフィールドのようなものです。

1つの方法は、Azure Key Vaultタスクを削除し、代わりにビルドとリリース>ライブラリ>変数グループを使用することです。ただし、変数グループをタスクグループにリンクする方法はありません。

12
Yavuz

タスクグループのパラメータから変数を削除する方法はないと思います。これは、VSTSがタスクグループ内の変数を処理する方法の内部動作と関係があります。ブログ投稿 VSTS/TFS:setvariable loggingコマンドを使用したタスクグループとそのさまざまなユースケースの理解 は、タスクグループ内の変数がどのように動作するかについての洞察を提供します。同じブログ投稿に、私が達成したいことへの回避策があります。

タスクグループには、secret1、secret2、およびsecret3の3つの追加パラメーターがあります。タスクグループをリリース定義に追加するときは、次の値を入力する必要があります。

  • パラメータの$(secret1)secret1
  • パラメータの$(secret2)secret2
  • パラメータの$(secret3)secret3

エラーを減らしてエクスペリエンスを向上させるために、これらの値をタスクグループのパラメーターのデフォルト値として設定できます。このように、タスクグループに必要な残りの必要なパラメータを入力するだけで済みます。

醜いですが、動作します。

2
Yavuz

私は同じ問題に遭遇しました。タスクグループをJSONテキストファイルにエクスポートして再インポートすることで、不要なパラメーター(つまり、変数グループによって提供されるパラメーター)を削除できることがわかりました。

Notepad ++またはお気に入りのJSONエディターでJSONファイルを編集し、不要なパラメーターを削除してから再インポートしてください。インポート後、それらはなくなります。

また、おそらく同じ方法で新しいパラメータを追加することもできますが、私は試していません。

2
Chris Gessler