C# 如何在队列触发器中获取azure函数中的主机url作为输入?

C# 如何在队列触发器中获取azure函数中的主机url作为输入?,c#,azure,asp.net-core,azure-functions,C#,Azure,Asp.net Core,Azure Functions,我将输入作为队列触发器,如下所示: [FunctionName("Test")] public static void Run([QueueTrigger("myqueue-items")]string myQueueItem, TraceWriter log) { //code } 我想获取上面函数中azure函数的主机url, 有什么方法可以得到它吗?您可以使用以下方法调用主机对您的函数具有的任何环境变量: %VariableName%

我将输入作为队列触发器,如下所示:

    [FunctionName("Test")]
    public static void Run([QueueTrigger("myqueue-items")]string myQueueItem, TraceWriter log)
    {
       //code
    }
我想获取上面函数中azure函数的主机url,
有什么方法可以得到它吗?

您可以使用以下方法调用主机对您的函数具有的任何环境变量:

    %VariableName%
使用Kudo()或通过门户浏览

然后选择菜单/选项卡“环境”,在那里您可以看到如下变量:
网站\主机名或服务器\名称等。我猜你所说的“主机URL”就在那里,只需在代码中调用它,例如%WEBSITE\u HOSTNAME%

你可以通过

Environment.GetEnvironmentVariable("WEBSITE_HOSTNAME")

什么是主机url?你想做什么?@Mikhail,我在azure函数中添加了代理以获取静态资产,在代理规则中我将其重定向到blob存储url,在blob存储中我添加了所有静态资产。因此,例如,如果我的主机url是:demo.azurewebsites.net(我希望azure函数中有此url),那么在代理中我添加了如下内容:
{“代理”:{“path”:{“matchCondition”:{“route”:“/www/{*path}”,backendUri:“https://%STORAGE\u HOSTNAME%/demo/www/{path}}}}
所以当我点击这个url时:{*path}”它从blob加载。代理与队列触发器的关系如何?顺便说一句,与其添加长注释,不如编辑您的问题。没有Env.variable直接在函数内部获取它,还有其他方法吗?我想,每当对函数进行http调用时,您都可以读取RequestURI(req.RequestURI)获取被调用的uri。但对我来说,环境变量感觉容易得多。使用GetEnvironmentVariable(“网站\主机名”)使用部署槽部署时不工作。应用程序已预热,且环境变量仍为旧值。在重新启动函数之前,此值不会更新,这是您不希望执行的操作,以避免冷启动。如果尝试构建Url,请使用environment.GetEnvironmentVariable(“HTTPS”)确定是否启用了HTTPS。