2021年1月26日星期二

How to find the deployment environment of an azure function app in code

Scenerio is that:

  1. We have Azure DevOps and we can run a pipeline into one of x number of named environments enter image description here

  2. We make use of Azure App Configuration, and labels for the values for each environment. So for each setting, it might have a different value depending on the label

enter image description here

It occurs to me that if i match up the label to the same as the names of the environments, then in code, when i get the config value, if I can somehow determine what environment I've been deployed to (speaking from the code's point of view) then i can just pass this variable when getting the app config and i will have the correct config settings for my environment.

            var environment = // HERE find my deployed to environment as in pipeline (1.)          var credentials = new DefaultAzureCredential();                  configurationBuild.AddAzureAppConfiguration(options =>              {                  options.Connect(settings.GetValue<string>("ConnectionStrings:AppConfig"))                          .Select(KeyFilter.Any, LabelFilter.Null)                          .Select(KeyFilter.Any, labelFilter: environment);              });  

I was thinking that the solution would be something of the form of setting the environment in the azure-pipelines.yaml where the pipeline somehow knows the choice of environment and then reading it in code back out of the environment variable. but i dont know how to do that, or if there is a better way to do it? Thanks in advance for any help offered.

https://stackoverflow.com/questions/65912361/how-to-find-the-deployment-environment-of-an-azure-function-app-in-code January 27, 2021 at 11:06AM

没有评论:

发表评论