azure-devops - Azure DevOps 变量组密码不起作用
问题描述
我有 userName 和 passWord 字段,我Azure DevOps Variable group,
想将 userName 和 passWord 作为命令行参数传递给我的 python 脚本,我能够毫无问题地获取 userName 但是当我传递它时 passWord 没有出现从我的管道脚本。我尝试使用 echo 打印 - 它的打印是空的 - 不是晚上打印像这样的掩码值'*****'
请在下面找到我的管道代码:
trigger:
- none
variables:
- group: myVariableGrp
pool:
name: myAgents
stages:
- stage: Testing
jobs:
- job: Test
displayName: Test script
steps:
- task: Bash@3
displayName: Test variable
inputs:
targetType: inline
script: |
echo "hello variables"
echo $USER_NAME
echo $MY_PASSWORD
- task: CmdLine@2
displayName: Test Python script
inputs:
script: python test.py $USER_NAME $MY_PASSWORD
测试.py
import sys
# total arguments
#n = len(sys.argv)
#print("Total arguments passed:", n)
print("UserName:", sys.argv[1])
print("Password:", sys.argv[2])
我收到以下错误:
Traceback (most recent call last):
File "test.py", line 12, in <module>
print("Password:", sys.argv[2])
IndexError: list index out of range
##[error]Bash exited with code '1'.
Finishing: Test Python script
解决方案
秘密变量不会自动公开为 env 变量。您必须明确映射它们:引用变量组中的秘密变量。在这种情况下,它将是:
- task: Bash@3
displayName: Test variable
inputs:
targetType: inline
env:
MAPPED_PASSWORD: $(MY_PASSWORD)
script: |
echo "hello variables"
echo $USER_NAME
echo $MAPPED_PASSWORD
推荐阅读
- c# - c# 通过 tcp 发送十六进制
- java - 无法在 IntelliJ 中的 Jax-RS 项目上配置 gradle
- icons - 如何用 font-awesome 图标替换 png 图标?
- c - C - 从终端输入输出最长的行
- mysql - 在mysql中按varchar分组
- php - PHP HELP 调用未定义函数 mysql_connect()
- powershell - PowerShell:用于将用户添加到组的嵌套 powershell 命令
- java - 无法通过maven创建胖罐
- mule - MULE Studio 和 MULE ESB 的主要区别是什么?
- node.js - 托管在 Heroku 上的 NodeJS 应用程序不设置客户端 cookie