我使用Team Services存储敏感数据,而不是在我的代码中对其进行硬编码。
我们在“Varibles”中将my_secret
定义为name
,将12345
定义为value
如何在我的代码中访问该变量?
在上面的示例中,如何在代码中访问password
?
有一份文档here,但他们没有提及如何在代码中使用该变量。
答案 0 :(得分:1)
变量通常作为环境变量传递给构建。但是,默认情况下,秘密不是明确的,您可以在工具的参数中明确使用它们,例如MyTool.exe $(password)
。
答案 1 :(得分:1)
如果要在构建步骤中访问秘密变量(例如,在自定义构建任务PowerShell中),通常会使用该秘密变量作为任务的输入参数,然后使用VSTS Task SDK& #39;函数Get-VstsInput
如下:
$pwd = Get-VstsInput -Name "Input_Name_In_Task.json_File"
然后您可以将其转换为SecureString,如下所示
$securePwd = ConvertTo-SecureString $pwd -AsPlainText -Force
并最终在新的System.Management.Automation.PSCredential
对象中使用它。
答案 2 :(得分:0)
这取决于“来自代码”的含义。如果您正在调用脚本,则可以将秘密作为参数传递。
举个例子,这是一个JSON格式的构建定义。
{
"build": [
{
"enabled": true,
"continueOnError": false,
"alwaysRun": false,
"displayName": "PowerShell Script",
"timeoutInMinutes": 0,
"task": {
"id": "e213ff0f-5d5c-4791-802d-52ea3e7be1f1",
"versionSpec": "1.*",
"definitionType": "task"
},
"inputs": {
"scriptType": "inlineScript",
"scriptName": "",
"arguments": "-Baz $(Baz)",
"inlineScript": "param($Baz)\nWrite-Host \"1\" \nWrite-Host \"$($env:Foo)\" \nWrite-Host \"2\" \nWrite-Host \"$($env:Baz)\"\nWrite-Host $Baz",
"workingFolder": "",
"failOnStandardError": "true"
}
}
],
"variables": {
"foo": {
"value": "bar"
},
"baz": {
"value": null,
"isSecret": true
}
}
}