如何在 Yaml Bash 步骤中存储从 CLI 创建的 Databricks 令牌

How to store Databricks token created from CLI in Yaml Bash step

我有以下 Yaml 脚本。我正在寻找如何获取创建的令牌并将其存储到变量中:

    - bash: |
        echo {} > ~/.databricks-connect#
        source py37-venv/bin/activate
        pip3 install wheel
        pip3 install databricks-cli
      displayName: Install Databricks CLI
    - bash: |
        source py37-venv/bin/activate
        databricks configure --token <<EOF
        ${DATABRICKS_HOST}
        ${DATABRICKS_AAD_TOKEN}
        EOF
        databricks tokens create --lifetime-seconds 129600 --comment "My comment."

上面命令returns的响应是这样json:

{
  "token_value": "dapi1a23b45678901cd2e3fa4bcde56f7890",
  "token_info": {
    "token_id": "1ab23cd45678e90123f4567abc8d9e012345fa67890123b45678cde90fa123b4",
    "creation_time": 1621287738473,
    "expiry_time": 1621417338473,
    "comment": "My comment."
  }
}

我想存储上面 token_value 的值,以便我可以在下面的另一个任务中使用它。

您可以使用jq解析响应json以获得token值,例如:

token=$(databricks tokens create --lifetime-seconds 129600 --comment "My comment." | jq .token_value --raw-output)

logging command设置$token为变量(可以设置为secret或不设置,点击link查看使用情况),然后在下一个作业中使用($(setvar.databrickstoken)).

echo "##vso[task.setvariable variable=databrickstoken;issecret=true;isoutput=true]$token"