我在使用 Azure CLI 并尝试替换自动化帐户的内容时遇到了非常令人沮丧的情况。
我正在尝试通过 Azure DevOps 管道 AzureCLI@2 任务更新它。这是我正在调用的脚本行
az automation runbook replace-content --debug --automation-account-name "${{ parameters.automationAccountName }}" --resource-group "${{ parameters.resourceGroup }}" --name "Schedule Summary" --content "`@temp.txt"
我遇到的问题是自动化帐户操作手册已更新,但文本被截断。 temp.txt的内容是这样的 -
Param(
[string]$resourceGroup ='',
[string]$UAMI ='',
[string]$serverInstance ='',
但是最终出现在 Runbook 中的脚本很简单
Param(
它显然在 CRLF 上损坏了,但我不知道如何修复它。如果我删除所有 CRLF,那么它会显示为一行,并且脚本不会运行。
我能告诉你问题出在哪里吗?是AzureCLI、powershell吗?或 devops 任务。
最佳答案
我在我的环境中尝试过在 Azure bash 中添加 Devops CLI 扩展,它使用与您相同的参数成功地为我工作。
我在 Az 云本身中创建了一个 PS 文件,并使用 .ps1 扩展名
保存,将 Runbook 类型设置为 PowerShell,并更新了脚本,如下所示:
az automation runbook replace-content --content "@runbook.ps1" --automation-account-name "xxxxautomation" --name "xxxxrunbook" --resource-group "xxxxRG"
vi runbook.ps1
:
在 Runbook 中完成内容替换:
如果问题仍然存在:在 Azure DevOps 中,使用参数调用 Webhook,然后启动导入 Azure DevOps Runbook 的 Runbook。
但是当您处理 Azure DevOps 时,我建议您通过 API 创建或更新 Runbook而不是高效的 PowerShell 模块。
关于Azure CLI - 自动化帐户替换内容打破新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74792851/