Azure 函数 HTTP 2.0 代理设置

Azure 函数 HTTP 2.0 代理设置

在 Azure 门户中的 Function App 中,配置设置下有一个关于 HTTP 2.0 的选项

选项包括

  • 离开
  • 仅限 gRPC

在此处输入图片描述

帮助页面还提到了环境变量 HTTP20_ONLY_PORT

我做了一些实验,创建了一个独立的进程函数,然后为 gRPC 通信打开了另一个端口,希望上述设置可以像它所说的那样将 HTTP2 流量转发到HTTP20_ONLY_PORT。但经过一天的实验,我一无所获。

有人知道这个设置实际上起什么作用吗?

答案1

我找到了一个小的演示脚本,它创建了一个启用了 http2 的函数应用程序,因此您可以继续自行测试。脚本未经我本人测试

#!/bin/bash

deploy_region="westeurope"                                                                                    
deploy_group="http2-func-group"                                                                               
deploy_subscription=$(az account show --output tsv --query id)                                                

echo "## $deploy_group group in $deploy_region region creation"
                                                                                                              
az group create -l $deploy_region -n $deploy_group                                                            
                          
echo "## Initial function deployment"
                                                                                    
function_name=$(az deployment group create --resource-group $deploy_group --template-uri https://raw.githubusercontent.com/groovy-sky/azure-func-go-handler/master/Template/azuredeploy.json | jq -r '. | .properties.outputs.functionName.value')

echo "## HTTP/2 activation"                                                                                                              
                                                                                                              
az rest --method patch --uri "https://management.azure.com/subscriptions/$deploy_subscription/resourceGroups/$deploy_group/providers/Microsoft.Web/sites/$function_name/config/web?api-version=2018-02-01" --body '{"properties":{"http20Enabled":true}}'
                                                                                                              
echo "## Code build and publish"
                                                                                                              
[ ! -d "azure-func-go-handler/.git" ] && git clone https://github.com/groovy-sky/azure-func-go-handler        
cd azure-func-go-handler/Function && git pull                                                                 
                                                                                                              
go build *.go && func azure functionapp publish $function_name --no-build --force                             
                                                                                                              
echo "## To verify HTTP/2 support: https://tools.keycdn.com/http2-test?url=https://$function_name.azurewebsites.net"
echo "## To run the function: https://$function_name.azurewebsites.net/api/httptrigger

相关内容