gpt4 book ai didi

c# - Azure DevOps 和 Azure Function 部署 : where are my app settings

转载 作者:行者123 更新时间:2023-12-03 02:43:25 25 4
gpt4 key购买 nike

我正在尝试将 Dotnet 核心 Azure Function 上传到 Windows 上托管的应用服务,但我正在努力证明其有效或确保设置正确。

我还希望部署应该完全自动化,而不必通过 Azure 门户和调整设置等。

构建过程:目前看起来像这样......

  1. C# 函数编译,所有单元测试在本地和 Azure DevOps 构建代理上通过
  2. 构建完成并生成 zip 文件
  3. 我将 zip 文件包装在版本化的 Nuget 包中
  4. Nuget 包托管在 Azure DevOps Artifacts 存储库中

所以现在一切看起来都很好。

发布流程

  1. 我在 Azure DevOps 构建代理上恢复并解压 nuget 包。
  2. 我通过 Powershell 任务确认 zip 文件存在 - 一切顺利。
  3. 然后我使用Azure DevOps Release 管道任务; “azure 功能”
  4. 我认为我已正确配置此任务
    • 包或文件夹:“我在上述步骤 2 中验证的路径”
    • 部署方法:Zip 部署(我在不同版本中交替使用此部署和包部署)

应用程序设置(参见下面的屏幕截图)

  • 名称值对,例如 -Name "value"-Name2 "value2"等
  • 我还在应用设置列表中添加了 -WEBSITE_RUN_FROM_PACKAGE "1"(我尝试过包含和不包含此设置的版本)

结果

发布通过,日志中显示已上传软件包和应用程序设置。

但是,当我转到 Azure 门户时:

  • 我没有看到我以为已在版本中上传的应用设置。
  • 它保留了我直接通过 Azure 门户添加的虚拟应用设置

问题

  • 在开始发布此任务之前,是否应该使用 Azure 门户在 AppServive 中创建一个空的 Azure Function?
    • 我第一次运行该版本时失败了,因为它说找不到我指定的插槽。我的印象是 Azure 函数管道任务会创建所有内容,但似乎它期望有一个空函数,其中预定义了插槽,也许还预定义了应用程序设置。有什么想法吗?
    • 发布前我是否必须在门户中创建应用程序设置?换句话说,管道任务是否只允许更新现有 Portal 创建的应用程序设置。
  • 是否有更好的管道任务可供使用 - 可以创建新的 Azure Functions(如果尚不存在)?

就像帮助文档中经常出现的情况一样,我看到的信息遵循一条愉快的道路,或者有时太多,有很多如果、但是,也许还有建议。

任何指导都将非常感激,因为我觉得我在这里兜圈子,而且应该很简单。

谢谢。

enter image description here

最佳答案

您可以通过Azure-Resource-Manager Templates部署Azure Function 。您可以在GitHub上找到 sample 。通过此步骤,您可以在部署之前在 Azure 上创建所需的基础结构。在您的情况下,Azure功能和消费计划。因此,在您的部署中,第一步提供基础设施,然后将包实际部署到您的函数。

有关基础架构,请参阅 Create or Update Resource Groups 的 Azure DevOps 步骤.

这两个步骤的 YAML 示例:

- task: AzureResourceGroupDeployment@2
displayName: 'Create Or Update Resource Group'
inputs:
deploymentMode: 'Incremental'
azureSubscription: 'Your-Subscription'
resourceGroupName: '${{ parameters.resourceGroupName }}'
location: '${{ parameters.location }}'
csmFile: '${{ parameters.csmFile }}'
csmParametersFile: '${{ parameters.csmParametersFile }}'

- task: AzureRmWebAppDeployment@4
displayName: 'Azure App Service Deploy'
inputs:
azureSubscription: 'Your-Subscription'
appType: functionApp
WebAppName: '${{ parameters.function }}'
packageForLinux: '$(Agent.BuildDirectory)/${{ parameters.dropfolder }}/$(Build.Repository.Name)-$(version)-$(Build.SourceBranchName)-$(Build.BuildNumber).zip'

关于c# - Azure DevOps 和 Azure Function 部署 : where are my app settings,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59859313/

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