Если я нахожусь в функции Azure, которая является TimerTrigger, как я могу получить имя моего развернутого ресурса Azure во время выполнения.
В HttpTrigger вы можете просто сделать это: req.RequestUri.AbsoluteUri
и получить что-то, чтодает хорошее описание " как развернуто ".
В таймере не так очевидно, как получить имя или путь ресурса Azure во время выполнения TimerFuncton.
Мне бы хотелось что-то похожее на Microsoft.Azure.WebJobs.ExecutionContext, которое дает вам информацию о функции времени компиляции - но я ищу некоторую информацию во время выполнения из ресурса Running Azure, который выполняет мою функцию TimerTrigger.
Мой запасной вариант - жестко закодировать имя моего ресурса Azure в переменную окружения и прочитать его во время выполнения.Кажется странным, но сработает.
Спасибо, Клаудиу
Вот несколько заключительных замечаний по этому поводу:
// Environment Variable Usage
string res = System.Environment.GetEnvironmentVariable("WEBSITE_HOSTNAME", EnvironmentVariableTarget.Process);
// WEBSITE_HOSTNAME is like "myAzureDeployedFuncName.azurewebsites.net"
// WEBSITE_HOSTNAME is like "localhost:7072"
string res = System.Environment.GetEnvironmentVariable("WEBSITE_SITE_NAME", EnvironmentVariableTarget.Process);
// WEBSITE_SITE_NAME is "myAzureDeployedFuncName" on Azure
// WEBSITE_SITE_NAME is not there in local debug function runtime
// using AppSettings is not the same and usign the above GetEnvironmentVariable call
string res = System.Configuration.ConfigurationManager.AppSettings["WEBSITE_HOSTNAME"]; // not there for Settings interface
// WEBSITE_HOSTNAME will be blank - it is not part of "Settings"
string res = System.Configuration.ConfigurationManager.AppSettings["WEBSITE_SITE_NAME"];
// WEBSITE_SITE_NAME is "myAzureDeployedFuncName" on Azure when using "settings" instead of Environment variable
// WEBSITE_SITE_NAME is not there in local debug function runtime
// the above AppSettings are not the same as GetEnvironmentVariable behavior at runtime
Позвонить "себя "из триггера таймера приложения функции, вот что полезно ...
WEBSITE_HOSTNAME = myAzureDeployedFuncName.azurewebsites.net
Some Other potentially useful Env Vars:
// next one has scm in name
HTTP_HOST = myAzureDeployedFuncName.scm.azurewebsites.net
// slot help
APPSETTING_WEBSITE_SLOT_NAME = Production