我使用Azure功能和GitHub部署。我想将函数放在repo中的src/server/functionName/
中,但只有当函数直接放在functionName/
如何部署放置在子目录中的函数?
您的host.json文件和函数文件夹应该直接位于您部署的根目录。
但是"应该"并不意味着"必须",对吧?
我尝试了什么:
host.json
我设置了routePrefix
,但它似乎只影响了该功能的网址:"http": { "routePrefix": "src/server" },
答案 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