具有运行时 2 的 Azure 函数;绑定扩展不会自动创建



当我基于 v2 运行时将 Azure 函数项目部署到函数应用时,不会自动创建项目所依赖的绑定扩展(在本例中为 Azure 存储(。

我在根目录上使用扩展名.csproj文件部署我的项目,但是部署后,我必须手动运行以下命令以在wwwroot上创建bin和obj文件夹。

dotnet build extensions.csproj -o bin --no-incremental --packages D:home.nuget

如果我理解正确,这应该自动发生。

用于通过 CLIfunc azure functionapp publish部署

函数核心工具使用 zip 部署来部署函数,这样 kudu 默认不构建项目。若要启用该功能,请在门户上的"应用程序设置"中将SCM_DO_BUILD_DURING_DEPLOYMENT设置为true

至于为什么默认设置为 false,zip 部署通常需要部署内容,包括所有相关文件,因此无需再次构建。

对于 Azure 函数核心工具,当扩展未自动安装时,我们通常使用命令func extensions install来注册用于输入/输出绑定的扩展,就像从模板创建触发器一样。这就是为什么命令func startfunc azure functionapp publish不构建extensions.csproj,扩展应该在我们运行或发布函数之前安装。

开发运营部署更新

使用 Azure 管道时,我们需要在存档文件之前生成extensions.csporj。添加.NET Core构建任务,参数-o bin

如果希望 kudu 生成项目,请转到"平台功能"下的"部署中心"。选择 VSTS 作为 CI 存储库,kudu 将为你构建和部署项目。

使用 Visual Studio时,你将直接从项目中引用扩展包,以便使用其属性和其他类型,因此 Visual Studio 会处理安装过程,但仍需要执行注册。

这由自定义生成任务处理,该任务由Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGeneratorNuGet 包添加,必须显式引用(这将在将来的更新中由 SDK/Visual Studio 工具自动引入(。

以下是使用上一示例中提到的 CosmosDB 扩展时必须遵循的步骤:

1.添加对Microsoft.Azure.WebJobs.Extensions.StorageNuGet 包的引用

2.添加对Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator的引用

3.构建项目

有关更多详细信息,您可以参考本文。

最新更新