如何通过CI / CD管道创建Azure函数应用程序消息队列?

时间:2019-07-06 20:24:37

标签: azure-devops continuous-integration azure-storage-queues azure-function-app

我可以使用Azure门户创建功能应用程序和功能,并添加绑定以输出到消息队列。例如,通过使用功能下的Integrated选项,我可以添加新的输出,在这种情况下为消息队列:

Azure function "Integrate" option

添加新的消息队列后,将使用门户中的新绑定更新function.json文件。

之前:

{
  "bindings": [
    {
      "authLevel": "function",
      "type": "httpTrigger",
      "direction": "in",
      "name": "Request",
      "methods": [
        "post"
      ]
    },
    {
      "type": "http",
      "direction": "out",
      "name": "Response"
    }
  ]
}

之后:

{
  "bindings": [
    {
      "authLevel": "function",
      "type": "httpTrigger",
      "direction": "in",
      "name": "Request",
      "methods": [
        "get",
        "post"
      ]
    },
    {
      "type": "http",
      "direction": "out",
      "name": "Response"
    },
    {
      "type": "queue",
      "name": "myQueueItem",
      "queueName": "myoutputqueue",
      "connection": "AzureWebJobsStorage",
      "direction": "out"
    }
  ]
}

现在,我可以在Azure函数中引用消息队列。

易于在门户中进行。但是我想通过构建管道创建队列存储(或任何其他类型)(如果尚不存在)。我认为这在发布定义中最有意义,但是我无法确定如何检测帐户和队列是否已经存在,或者如果不存在则创建它们。我以为我可以通过Azure Powershell脚本发行定义任务使用Azure Powershell命令,并在此处描述以下命令:

Perform Azure Queue storage operations with Azure PowerShell

但是当我尝试在Azure Powershell CLI中手动使用“ Get-AzureStorageAccount”以查看存储帐户是否存在时,出现错误,指示“ Get-AzureStorageAccount”不是有效的Commandlet。是否可以通过CI / CD管道管理Azure功能存储和绑定?

1 个答案:

答案 0 :(得分:0)

这对我来说并不明显,但是函数应用程序将创建队列(如果不存在),因此无需在管道中创建一个队列。最终遇到了提到它的链接:

Azure Queue storage bindings for Azure Functions