我有一个计时器触发
private BigDecimal calculateTax(String country, BigDecimal amount) throws Exception {
switch (country) {
case "POLAND":
return new BigDecimal(0.23).multiply(amount);
case "AUSTRIA":
return new BigDecimal(0.20).multiply(amount);
case "CYPRUS":
return new BigDecimal(0.19).multiply(amount);
default:
throw new Exception("Country not supported");
}
}
还有一个HTTP触发器
[FunctionName("HeathChecker")]
public static void Run([TimerTrigger("*/10 * * * * *")]TimerInfo myTimer, ILogger log)
{
log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
}
我希望能够获取HTTP触发器运行所在的主机名,因此我可以从计时器触发器中使用HTTP对其进行调用。这可能吗?
答案 0 :(得分:2)
您可以通过以下方式获得主机名:
Environment.GetEnvironmentVariable("WEBSITE_HOSTNAME")
您可以在Function Kudu(https://sitename.scm.azurewebsites.net)页面中检查值,选择菜单“环境”,其中有WEBSITE_HOSTNAME
或SERVER_NAME
。
答案 1 :(得分:1)
我刚刚检查了一下,发现环境变量名称已更改。现在正在做什么:
Environment.GetEnvironmentVariable("WEBSITE_SITE_NAME")
答案 2 :(得分:0)
您还可以从HttpRequest req
对象获取主机名:
HostString hostString = req.Host;
string host = hostString.Host;
int? port = hostString.Port;
string fullHost = hostString.Value;