gpt4 book ai didi

azure - 使用 powershell 部署到 azure 函数

转载 作者:行者123 更新时间:2023-12-03 23:17:15 24 4
gpt4 key购买 nike

有什么办法可以使用 powershell 脚本部署到 azure 函数吗? CI 不适用于我们,因为我们使用 octopus 部署来部署到我们所有的生产服务。因此,如果有一种使用 powershell 脚本进行部署的方法,将会很有帮助。

谢谢!

最佳答案

以防万一像我这样的人需要逐步解决方案。以下是使用 powershell 部署 azure 函数的过程(非 ARM 方式)

  1. 创建具有以下结构的 azure 函数

    myFunctionName(Folder)
    |
    |_ function.json (contains info on input, output, trigger)
    |_ run.csx (contains code)
    |_ [OPTIONAL] project.json (for nuget packages)
    |_ [OPTIONAL] bin(Folder)
    |_ all custom DLLs go in this folder
  2. 创建 myFunctionName 的 zip文件夹 - 让我们将其命名为 my.zip 。确保压缩后my.zip包含myFunctionName文件夹及其所有内容

  3. 按照说明查找您的发布配置文件用户名和密码 here ,即

    $creds = Invoke-AzureRmResourceAction -ResourceGroupName YourResourceGroup -ResourceType Microsoft.Web/sites/config -ResourceName YourWebApp/publishingcredentials -Action list -ApiVersion 2015-08-01 -Force

$username = $creds.Properties.PublishingUserName
$password = $creds.Properties.PublishingPassword

然后使用 powershell 调用 Kudu REST API,如下所示

    $username = '<publish username>' #IMPORTANT: use single quotes as username may contain $
$password = "<publish password>"
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username,$password)))

$apiUrl = "https://<yourFunctionApp>.scm.azurewebsites.net/api/zip/site/wwwroot"
$filePath = "<yourFunctionName>.zip"
Invoke-RestMethod -Uri $apiUrl -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -Method PUT -InFile $filePath -ContentType "multipart/form-data"
  • 转到<yourFunctionApp>.scm.azurewebsites.net -> Debug menu at the top -> CMD 。在出现的页面中,导航至 site -> wwwroot 。您应该会在其中看到提取的 zip 文件的内容,并且您还可以验证您的 azure 函数在 azure 门户中是否可用。
  • 引用文献

    1. https://github.com/projectkudu/kudu/wiki/REST-API#sample-of-using-rest-api-with-powershell

    2. http://markheath.net/post/deploy-azure-functions-kudu-powershell

    关于azure - 使用 powershell 部署到 azure 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36730898/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com