Azure functions 如何在进行本地测试时轻松启用azure函数https

Azure functions 如何在进行本地测试时轻松启用azure函数https,azure-functions,azure-functions-core-tools,Azure Functions,Azure Functions Core Tools,我想在windows上本地测试Azure函数Http触发器 我使用azure function核心工具运行命令,如 func启动--端口5007--使用HTTPS 然后我得到了一个错误:自动证书生成目前在.NET核心构建中不起作用 似乎我应该像这样使用命令 func start--端口5007--在本地创建自签名证书后使用https--cert certificate.pfx 是否有一种方法可以轻松启用https 就像使用.net core webapi一样,我可以轻松导出env:ASPNETC

我想在windows上本地测试Azure函数Http触发器

我使用azure function核心工具运行命令,如
func启动--端口5007--使用HTTPS

然后我得到了一个错误:自动证书生成目前在.NET核心构建中不起作用

似乎我应该像这样使用命令
func start--端口5007--在本地创建自签名证书后使用https--cert certificate.pfx

是否有一种方法可以轻松启用https

就像使用.net core webapi一样,我可以轻松导出env:ASPNETCORE\u URL=。点击一些按钮后,我可以很好地使用https。 我们有这样的东西吗

或者如果
func start--port 5007--useHttps
足够了,但是我错过了一些配置


谢谢大家!

更新答案:

func start--port 5007--useHttps
将不会在azure函数v1之后自动创建证书。基于.Net核心的azure function v2和azure function v3工具将不会为您创建证书。您应该手动生成证书

原始答案:

我可以重现你的错误:

解决方案:

使用administrator启动powershell,转到function app文件夹,然后使用以下命令:

$cert = New-SelfSignedCertificate -Subject localhost -DnsName localhost -FriendlyName "Functions Development" -KeyUsage DigitalSignature -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.1")
然后创建证书文件:

Export-PfxCertificate -Cert $cert -FilePath certificate.pfx -Password (ConvertTo-SecureString -String 123 -Force -AsPlainText)
最后,我可以使用https:(下面的命令在windowscmd中运行。)


除了Bowman Zhu的回答之外,您还可以配置VS,以便在运行项目时使用证书

转到“项目属性”并选择“调试”选项卡。在应用程序参数中,添加以下内容:

host start --useHttps --cert "certificate.pfx" --password "123"
您还可以将证书包含在项目中,并将其设置为“复制”(如果更新),以便将其部署到您的bin中。

Azure Function Core Tools(V2)现在有一个新的开关,这样您就不必再使用--cert和--password开关。您现在可以使用:

host start --useHttps --useDefaultCert
此外,为了完整性,您可以使用以下方法为dotnet core创建本地自签名证书:

dotnet dev-certs https --trust

嗨,非常感谢你的回答!实际上我知道你上面提到的启动https触发器的方法。我想知道我们是否可以轻松地使用命令“`func host start--port 5007--useHttps``直接启动它,而不是每次都添加“-cert certificate.pfx”。我想要的是一种让azure函数工具自动生成默认调试证书并在启动函数时使用它的方法。因此,我不必像webapi在调试时那样自己创建certfile。@south这是
azure函数核心工具的问题。官方文档确实说
--useHttps
将自动创建证书以使用https运行azure功能。但事实上,它只在azure function v1中工作。(azure function v1将自动生成证书,这没有问题。)基于.Net Core的azure function v2和v3不再自动生成证书。我认为您现在只能手动生成证书。@south Azure功能团队可能不再改进此功能。毕竟,azure功能在生产中不会在本地运行。将函数应用程序发布到azure后,默认情况下将支持https。(除非您禁止,否则也支持Http。)@south
func start--port 5007--useHttps
不会在“azure函数v1”之后为您生成证书。所以你需要手动创建。非常感谢你的回答!好的,现在我可以在我的项目中设置自动生成证书的任务:)
dotnet dev-certs https --trust