Azure CLI - 自动化帐户替换内容打破新行

标签 azure powershell azure-devops azure-cli

我在使用 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:

enter image description here

在 Runbook 中完成内容替换:

enter image description here

如果问题仍然存在:在 Azure DevOps 中,使用参数调用 Webhook,然后启动导入 Azure DevOps Runbook 的 Runbook。

但是当您处理 Azure DevOps 时,我建议您通过 API 创建或更新 Runbook而不是高效的 PowerShell 模块。

关于Azure CLI - 自动化帐户替换内容打破新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74792851/

相关文章:

azure - 如何将 C# 字符串表达式转换为逻辑应用表达式以替换变量数据

azure - 使用 Windows Azure Active Directory 的 SSO

azure - 如何通过Powershell启用Azure应用程序网关上的所有防火墙规则?

Visual Studio 在线构建中的 TypeScript

Azure 资源组分为不同的区域

azure - 如何获取 Azure Windows VM 计划信息?

powershell - 为自动电子邮件脚本存储帐户凭据(尤其是密码)的最佳方式是什么?

powershell - 通过命令行启用Powershell组策略异常

git - 从 VSTS pull 请求中删除所需的批准者

visual-studio - Visual Studio创建多个/其他工作区