在Azure DevOps管道中,在执行az登录时,在powershell任务中使用变量会导致ArgumentParseError
我的管道中有一个Powershell任务:在Azure DevOps管道中,在执行az登录时,在powershell任务中使用变量会导致ArgumentParseError,azure,powershell,azure-devops,azure-pipelines,azure-service-principal,Azure,Powershell,Azure Devops,Azure Pipelines,Azure Service Principal,我的管道中有一个Powershell任务: - task: PowerShell@2 inputs: targetType: 'inline' script: | az login --service-principal --username $env:servicePrincipalId --password $env:servicePrincipalKey --tenant $env:tenantId python $(Build.SourcesD
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
az login --service-principal --username $env:servicePrincipalId --password $env:servicePrincipalKey --tenant $env:tenantId
python $(Build.SourcesDirectory)/the/path/to/my/python/script.py
displayName: 'Execute Python code'
在执行此Powershell任务之前,在AzureCLI任务中使用addSpnToEnvironment:true
向我提供服务主体详细信息
当Powershell任务运行时,我得到
ArgumentParseError:参数--username/-u:应为一个参数
。如何解决此问题?我建议您使用以下方法:
使用此任务在Azure环境中运行PowerShell脚本。Azure上下文通过提供的Azure资源管理器服务连接进行身份验证
我建议您使用以下方法: 使用此任务在Azure环境中运行PowerShell脚本。Azure上下文通过提供的Azure资源管理器服务连接进行身份验证
检查密码值是否以字符“
-
”开头
这是由前导字符“-
”引起的已知问题,它使参数解析器将其作为选项名混淆。看
作为一种解决方法,您可以通过在选项名称和值之间添加“=
”来解决此问题
az login --service-principal --username=$env:servicePrincipalId --password=$env:servicePrincipalKey --tenant=$env:tenantId
此外,您还可以尝试以下方法:
- 此问题应已在最新版本的Azure CLI中修复,您可以尝试在代理计算机上将Azure CLI升级到最新版本
- 请按照@Krzysztof Madej的建议使用,并通过设置授权
-
”开头
这是由前导字符“-
”引起的已知问题,它使参数解析器将其作为选项名混淆。看
作为一种解决方法,您可以通过在选项名称和值之间添加“=
”来解决此问题
az login --service-principal --username=$env:servicePrincipalId --password=$env:servicePrincipalKey --tenant=$env:tenantId
此外,您还可以尝试以下方法:
- 此问题应已在最新版本的Azure CLI中修复,您可以尝试在代理计算机上将Azure CLI升级到最新版本
- 请按照@Krzysztof Madej的建议使用,并通过设置授权
#[error]无法解析租户“”
。创建Azure资源管理器服务连接时,是否尝试使用“服务主体(手动)
”方法?此方法允许您指定租户和服务主体。确保您已填写正确的服务主体Id
、服务主体密钥
和租户Id
。因此我尝试将此建议与@Krzysztof Madej使用Azure PowerShell的建议结合使用。这确实让我更进一步,但现在我得到了以下错误:#[error]无法解析租户“”
。创建Azure资源管理器服务连接时,是否尝试使用“服务主体(手动)
”方法?此方法允许您指定租户和服务主体。确保您已填写正确的服务主体Id
、服务主体密钥
和租户Id
。