我正在尝试通过使用以下管道任务来部署自签名证书:
- task: AzurePowerShell@5
inputs:
azureSubscription: '${{ parameters.ArmConnection }}'
ScriptType: 'InlineScript'
azurePowerShellVersion: '2.6.0'
Inline: |
$Pwd = ConvertTo-SecureString -String '1234' -Force -AsPlainText
$Base64 = 'MI..............3000.characters.here............M+wICB9A='
Import-AzKeyVaultCertificate -VaultName '${{ parameters.resourceGroupName }}''-my-keyvault' -Name ccg-self-signed-cert -CertificateString $Base64 -Password $Pwd
上面列出的3个Powershell命令在PowerShell命令提示符下对我来说效果很好。
但是当我尝试运行上述管道时,出现语法错误:
/pipelines/shared.yml :(行:164,列:11,Idx:7111)-(行:164, Col:11,Idx:7111):在扫描简单密钥时,找不到 预期的':'。
请问这是怎么回事?
带有代码$Base64 = '.....'
的第164行对于管道脚本来说是否太长?
或者我还有其他问题吗?
更新:
缩进内联脚本(感谢Mathias!)后,我又遇到了另一个错误,令人惊讶地是在谈论“主机名”:
##[section]Starting: AzurePowerShell
==============================================================================
Task : Azure PowerShell
Description : Run a PowerShell script within an Azure environment
Version : 5.168.1
Author : Microsoft Corporation
Help : https://aka.ms/azurepowershelltroubleshooting
==============================================================================
Generating script.
========================== Starting Command Output ===========================
##[command]"C:\windows\System32\WindowsPowerShell\v1.0\powershell.exe" -NoLogo -NoProfile -NonInteractive -ExecutionPolicy Unrestricted -Command ". 'D:\a\_temp\13d4bf76-87b6-4ac4-9bb5-51ef481420d0.ps1'"
##[command]Import-Module -Name C:\Modules\az_2.6.0\Az.Accounts\1.7.5\Az.Accounts.psd1 -Global
##[command]Clear-AzContext -Scope Process
##[command]Clear-AzContext -Scope CurrentUser -Force -ErrorAction SilentlyContinue
##[command]Connect-AzAccount -ServicePrincipal -Tenant *** -Credential System.Management.Automation.PSCredential -Environment AzureCloud @processScope
##[command] Set-AzContext -SubscriptionId XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX -TenantId ***
##[error]Invalid URI: The hostname could not be parsed.
##[error]PowerShell exited with code '1'.
##[section]Finishing: AzurePowerShell
-VaultName '${{ parameters.resourceGroupName }}''-my-keyvault'
是在RG名称(作为参数传递)之前加上字符串“ -my-keyvault”的正确方法吗?
更新2:
使用-VaultName '${{ parameters.resourceGroupName }}-my-keyvault'
解决了我的问题
答案 0 :(得分:0)
我建议选择启用系统诊断并再次运行管道以获取更多详细信息