Azure管道-在Python脚本中使用System.AccessToken

Azure管道-在Python脚本中使用System.AccessToken,python,azure-devops,azure-pipelines,Python,Azure Devops,Azure Pipelines,我正在处理一个管道,其中大部分代码都在我在管道中调用的python脚本中。在脚本中,我想使用预定义的变量System.AccessToken来调用DevOps API,该API设置pull请求的状态 但是,当我尝试使用os.environ['System.AccessToken']获取令牌时,我得到一个密钥错误 奇怪的是,似乎设置了System.AccessToken,因为在管道的yaml文件中,我可以访问API,如: curl -u ":$(System.AccessToken)&q

我正在处理一个管道,其中大部分代码都在我在管道中调用的python脚本中。在脚本中,我想使用预定义的变量System.AccessToken来调用DevOps API,该API设置pull请求的状态

但是,当我尝试使用os.environ['System.AccessToken']获取令牌时,我得到一个密钥错误

奇怪的是,似乎设置了System.AccessToken,因为在管道的yaml文件中,我可以访问API,如:

curl -u ":$(System.AccessToken)" URL

然后得到一个有效的回复。要访问此变量,我还需要在Python中执行其他操作吗?

使用此文档,它可以工作:

只要把语言改成英语就行了

必须有一个金库和一个现在的秘密令牌。 我必须说你上面的代码不是python

使用此保存操作,将字段更改为vault,并将文件命名为test.py并运行它

如果需要外部令牌,每个环境都有自己的命名空间。 因此,在本地上下文中使用导出添加它。。。或 遵循Unix策略,一切都是一个文件—将其写入文件。 这里的好做法是使用ansible vault或类似的东西。 加密存储,需要时使用


从文件中读取它。

使用此文档,它可以工作:

只要把语言改成英语就行了

必须有一个金库和一个现在的秘密令牌。 我必须说你上面的代码不是python

使用此保存操作,将字段更改为vault,并将文件命名为test.py并运行它

如果需要外部令牌,每个环境都有自己的命名空间。 因此,在本地上下文中使用导出添加它。。。或 遵循Unix策略,一切都是一个文件—将其写入文件。 这里的好做法是使用ansible vault或类似的东西。 加密存储,需要时使用


从文件中读取。

您可以使用os.environ['SYSTEM\u ACCESSTOKEN']吗。如案例中所述,环境变量的格式不同

能否使用os.environ['SYSTEM\u ACCESSTOKEN']。如案例中所述,环境变量的格式不同

在查看Mani发布的页面后,我找到了答案。对于大多数变量,类似System.AccessToken的东西将具有相应的System\u AccessToken

但是,对于一个秘密变量,情况并非如此。通过添加以下内容,我的python脚本可以访问它:

env:
    SYSTEM_ACCESSTOKEN: $(System.AccessToken)
在管道的yaml文件中调用Python脚本的位置


有关更多详细信息,请参阅。

查看Mani发布的页面后,我找到了答案。对于大多数变量,类似System.AccessToken的东西将具有相应的System\u AccessToken

但是,对于一个秘密变量,情况并非如此。通过添加以下内容,我的python脚本可以访问它:

env:
    SYSTEM_ACCESSTOKEN: $(System.AccessToken)
在管道的yaml文件中调用Python脚本的位置


有关更多详细信息,请参阅。

您可以试试os.environ['SYSTEM\u ACCESSTOKEN']您可以试试os.environ['SYSTEM\u ACCESSTOKEN']这不起作用,但确实让我找到了答案,谢谢。对于秘密变量,没有相应的环境变量,请看这不起作用,但确实让我找到了答案,谢谢。对于secret变量,没有相应的环境变量,请参见Thankyou,我知道最后一个代码片段不是Python的,我只是展示了一个工作示例。我找到了另一个解决方案,但感谢您向我展示了这一点,它似乎也很有用。谢谢您,我知道最后一个代码片段不是用Python编写的,我只是展示了一个工作示例。我找到了另一个解决方案,但谢谢你给我看这个,它似乎也很有用。嗨,Sirch,你是如何使用访问令牌的?我曾试图找到一种方法将其与DefaultAzureCredential一起使用,或者至少以类似的方式使用,但在Azure管道中涉及Python时,确实缺少文档。您好,Sirch,您如何使用访问令牌?我曾试图找到一种方法将其与DefaultAzureCredential一起使用,或者至少以类似的方式使用,但当涉及Azure管道中的Python时,确实缺少文档。