【发布时间】:2020-05-08 14:08:24
【问题描述】:
我正在尝试将 Dotnet 核心 Azure 函数上传到托管在 Windows 上的应用服务,并且我正在努力证明它有效或确保设置正确。
我还希望部署应该完全自动化,而无需通过 Azure 门户和调整设置等。
构建过程:目前看起来是这样的......
- c# 函数编译,所有单元测试在本地和 Azure DevOps 构建代理上通过
- 构建完成并生成 zip 文件
- 我将 zip 文件包装在版本化的 Nuget 包中
- Nuget 包托管在 Azure DevOps Artifacts 存储库中
所以现在一切看起来都很好。
发布流程
- 我在 Azure DevOps 构建代理上恢复并解压 nuget 包。
- 我通过 Powershell 任务确认 zip 文件存在 - 一切正常。
- 然后我使用 Azure DevOps 发布管道任务; “蔚蓝函数”
- 我想我已经正确配置了这个任务
- 包或文件夹:“我在上面第 2 步中验证的路径”
- 部署方法:Zip 部署(我在不同版本中交替使用此部署和包部署)
应用设置(见下方截图)
- 名称值对,例如 -Name "value" -Name2 "value2" 等
- 我还在应用设置列表中添加了 -WEBSITE_RUN_FROM_PACKAGE "1"(我尝试过有和没有这个设置的版本)
结果
发布通过,它在日志中说它上传了包和应用程序设置。
但是,当我访问 Azure 门户时:
- 我没有看到我认为我在发行版中上传的应用程序设置。
- 它保留了我直接通过 Azure 门户添加的虚拟应用设置
问题
- 在开始使用此任务发布之前,是否应该使用 Azure 门户在 AppServive 中创建一个空的 Azure 函数?
- 我第一次运行该版本时失败了,因为它说找不到我指定的插槽。我的印象是 Azure 函数管道任务 会创建所有内容,但它似乎希望有一个空函数,其中预定义了插槽,并且可能预定义了应用程序设置。请问有什么想法吗?
- 是否必须在发布前在 Portal 中创建应用设置?换句话说,Pipeline 任务是否只允许 更新 到现有 Portal 创建的应用设置。
- 是否有更好的 Pipeline 任务可供使用 - 如果它尚不存在,它可以创建一个新的 Azure 函数?
与帮助文档的常见情况一样,我所看到的信息遵循一条愉快的道路,或者有时太多了,有很多如果、但是,也许还有建议。
任何指导都将不胜感激,因为我觉得我在这里绕圈子,应该很简单。
谢谢。
【问题讨论】:
标签: c# azure azure-devops azure-deployment azure-function-app