从 Azure 部署中排除 Azure 函数中的文件

Excluding a file in Azure Function from Azure Deployment

我们有一个 Azure Functions 项目,其中包含一个专门命名的文件,使本地调试更加容易。但是,我们不希望将该文件部署到 Azure。

标准打包和发布过程明确知道名为 local.settings.json 的文件,因此永远不会部署该文件。

一些在线文档和帖子说您可以在项目中包含一个名为 .funcignore 的文件,该文件的语法与 .gitignore 相同。在那里你应该能够指定你不想打包的文件。

我们拥有的文件名为 local.funcdebugging.json 并且具有

的文件属性

我们的 .funcignore 文件看起来像这样

## Files that should be ignored from Azure Deployment

# EasyAuth Debugging file
local.funcdebugging.json

尽管有这些设置,调试文件仍会部署。如何防止此文件成为 Azure 部署的一部分?

我们无法让 .funcignore 工作。

我们的替代解决方案是

  1. 从代码库
  2. 中删除 "local.funcdebugging.json"
  3. 添加 Markdown 调试自述文件,解释如何使用名为
    的文件 local.funcdebugging.json 并包含一些示例内容
  4. 在 .gitignore 中添加一个 "local.funcdebugging.json" 条目以备将来使用 调试尝试没有得到整理,它最终被添加到 repo 并因此部署

您似乎正在尝试发布 .csproj。可以使用 CopyToPublishDirectory option 自定义复制到发布目录的内容。这是 dotnet publish 命令创建的目录。

例如在我们的案例中,我们不想发布我们的 Typescript 源代码,只想发布生成的 javascript 代码。我们使用以下配置:

<ItemGroup>
  <Content Update="wwwroot\src\**\*.*" CopyToPublishDirectory="Never" />
  <Content Update="wwwroot\vendor\**\*.*" CopyToPublishDirectory="Never" />
  <Content Update="Locales\**\*.*" CopyToPublishDirectory="Always" />
</ItemGroup>

有了这个,源文件被复制到输出目录,所以它们在调试期间可用,但它们没有复制到发布目录,因此它不包含在部署的包中。