使用 azurerm_function_app_function 部署 Azure 函数
Deploy an Azure Function using azurerm_function_app_function
我创建了一个新的 C# Azure 函数 (EventHub trigger
) 并添加了我自己的逻辑来处理传入的事件。我的问题是我不确定如何通过 Terraform 部署这个新应用程序。我创建了一个 azurerm_function_app_function
资源,通过阅读 terraform 文档我可以看到我可以添加一个文件 (https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/function_app_function#file) 但是,对于 CSharp 项目,它没有使用 csx,我看不到如何使用它。
有没有办法使用 Terraform 部署 C# 应用程序,或者我应该将这些组件拆分,让 Terraform 创建 azurerm_function_app_function
然后有一个管道将我的代码上传到函数?
使用 CSX 扩展名的文件的完整格式名称是 Visual C# Script。 Visual C# 脚本规范由 Microsoft.You 创建,不必在 class 和方法中包含所有内容,csx 文件就像它自己的方法一样,文件中的所有内容都将在启动时执行。它还支持一些额外的指令(比如 #load 加载另一个脚本)。
有几个脚本引擎基于它(或下面的 Roslyn)或至少基于相同的格式,同时提供更高级的指令。 因此,这意味着 csx 文件应该 运行 符合以下条件之一:
- Nake(运行 在 .Net Framework 和 Mono 上)
- dotnet script(.NET Core 上运行)
- ScriptCS
解决方案是您可以在创建 azure 函数时使用 .cs 文件而不是 .csx 文件。您可以使用以下格式。
file {
name = "run.cs"
content = file("exampledata/run.cs")
}
参考:What are .CSX C# files for?
我创建了一个新的 C# Azure 函数 (EventHub trigger
) 并添加了我自己的逻辑来处理传入的事件。我的问题是我不确定如何通过 Terraform 部署这个新应用程序。我创建了一个 azurerm_function_app_function
资源,通过阅读 terraform 文档我可以看到我可以添加一个文件 (https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/function_app_function#file) 但是,对于 CSharp 项目,它没有使用 csx,我看不到如何使用它。
有没有办法使用 Terraform 部署 C# 应用程序,或者我应该将这些组件拆分,让 Terraform 创建 azurerm_function_app_function
然后有一个管道将我的代码上传到函数?
使用 CSX 扩展名的文件的完整格式名称是 Visual C# Script。 Visual C# 脚本规范由 Microsoft.You 创建,不必在 class 和方法中包含所有内容,csx 文件就像它自己的方法一样,文件中的所有内容都将在启动时执行。它还支持一些额外的指令(比如 #load 加载另一个脚本)。
有几个脚本引擎基于它(或下面的 Roslyn)或至少基于相同的格式,同时提供更高级的指令。 因此,这意味着 csx 文件应该 运行 符合以下条件之一:
- Nake(运行 在 .Net Framework 和 Mono 上)
- dotnet script(.NET Core 上运行)
- ScriptCS
解决方案是您可以在创建 azure 函数时使用 .cs 文件而不是 .csx 文件。您可以使用以下格式。
file {
name = "run.cs"
content = file("exampledata/run.cs")
}
参考:What are .CSX C# files for?