从 Azure 部署中排除 Azure 函数中的文件
Excluding a file in Azure Function from Azure Deployment
我们有一个 Azure Functions 项目,其中包含一个专门命名的文件,使本地调试更加容易。但是,我们不希望将该文件部署到 Azure。
标准打包和发布过程明确知道名为 local.settings.json
的文件,因此永远不会部署该文件。
一些在线文档和帖子说您可以在项目中包含一个名为 .funcignore
的文件,该文件的语法与 .gitignore
相同。在那里你应该能够指定你不想打包的文件。
我们拥有的文件名为 local.funcdebugging.json
并且具有
的文件属性
- 生成操作:None
- 复制到输出目录:如果更新则复制
我们的 .funcignore 文件看起来像这样
## Files that should be ignored from Azure Deployment
# EasyAuth Debugging file
local.funcdebugging.json
尽管有这些设置,调试文件仍会部署。如何防止此文件成为 Azure 部署的一部分?
我们无法让 .funcignore 工作。
我们的替代解决方案是
- 从代码库
中删除 "local.funcdebugging.json"
- 添加 Markdown 调试自述文件,解释如何使用名为
的文件
local.funcdebugging.json 并包含一些示例内容
- 在 .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>
有了这个,源文件被复制到输出目录,所以它们在调试期间可用,但它们没有复制到发布目录,因此它不包含在部署的包中。
我们有一个 Azure Functions 项目,其中包含一个专门命名的文件,使本地调试更加容易。但是,我们不希望将该文件部署到 Azure。
标准打包和发布过程明确知道名为 local.settings.json
的文件,因此永远不会部署该文件。
一些在线文档和帖子说您可以在项目中包含一个名为 .funcignore
的文件,该文件的语法与 .gitignore
相同。在那里你应该能够指定你不想打包的文件。
我们拥有的文件名为 local.funcdebugging.json
并且具有
- 生成操作:None
- 复制到输出目录:如果更新则复制
我们的 .funcignore 文件看起来像这样
## Files that should be ignored from Azure Deployment
# EasyAuth Debugging file
local.funcdebugging.json
尽管有这些设置,调试文件仍会部署。如何防止此文件成为 Azure 部署的一部分?
我们无法让 .funcignore 工作。
我们的替代解决方案是
- 从代码库 中删除 "local.funcdebugging.json"
- 添加 Markdown 调试自述文件,解释如何使用名为
的文件 local.funcdebugging.json 并包含一些示例内容 - 在 .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>
有了这个,源文件被复制到输出目录,所以它们在调试期间可用,但它们没有复制到发布目录,因此它不包含在部署的包中。