Azure从子文件夹

时间:2016-11-10 09:13:06

标签: azure azure-functions

我使用Azure功能和GitHub部署。我想将函数放在repo中的src/server/functionName/中,但只有当函数直接放在functionName/

时,部署才有效。

如何部署放置在子目录中的函数?

documentation

  

您的host.json文件和函数文件夹应该直接位于您部署的根目录。

但是"应该"并不意味着"必须",对吧?

我尝试了什么:

  • host.json和function.json
  • 的各种位置组合
  • host.json我设置了routePrefix,但它似乎只影响了该功能的网址:"http": { "routePrefix": "src/server" },

2 个答案:

答案 0 :(得分:8)

有几种方法可以自定义部署过程。一种方法是向存储库根目录添加自定义部署脚本。当存在.deployment脚本时,Azure将作为详细here详细信息在部署过程中运行该脚本。例如。您可以编写一个简单的脚本,将子目录\src\server中的文件和目录复制到根目录,例如:

@echo off
echo Deploying Functions ...
xcopy "%DEPLOYMENT_SOURCE%\src\server" %DEPLOYMENT_TARGET% /Y /S

如果您不想将.deployment文件提交到您的仓库并且您的要求相对简单,您还可以通过添加PROJECT 应用设置<应用设置来执行此操作/ strong>到您的功能应用程序,其值为您的子目录,例如src\server

答案 1 :(得分:0)

尝试在 AZURE-FUNCTIONAPP_PACKAGE_PATH 中设置 .github/workflows/<something>.yml 变量:

env:
  AZURE_FUNCTIONAPP_PACKAGE_PATH: 'azure/api' # set this to the path of your web app project, defaults to the repository root
  DOTNET_VERSION: '3.1.301'  # set this to the dotnet version to use