From e3e90d3bafd5b17c002fe1a05a76908945630b6b Mon Sep 17 00:00:00 2001 From: Chris Date: Thu, 30 Sep 2021 05:20:52 +0100 Subject: [PATCH] Added support for environment variables when using Azure Functions (#1171) Co-authored-by: Chris Theodorson --- src/Microsoft.Tye.Core/ApplicationFactory.cs | 4 ++++ src/Microsoft.Tye.Core/AzureFunctionServiceBuilder.cs | 3 +++ src/tye/ApplicationBuilderExtensions.cs | 5 +++++ 3 files changed, 12 insertions(+) diff --git a/src/Microsoft.Tye.Core/ApplicationFactory.cs b/src/Microsoft.Tye.Core/ApplicationFactory.cs index 64c700088..37377495c 100644 --- a/src/Microsoft.Tye.Core/ApplicationFactory.cs +++ b/src/Microsoft.Tye.Core/ApplicationFactory.cs @@ -403,6 +403,10 @@ service is ProjectServiceBuilder project2 && { executable.EnvironmentVariables.Add(envVar); } + else if (service is AzureFunctionServiceBuilder azureFunction) + { + azureFunction.EnvironmentVariables.Add(envVar); + } else if (service is ExternalServiceBuilder) { throw new CommandException("External services do not support environment variables."); diff --git a/src/Microsoft.Tye.Core/AzureFunctionServiceBuilder.cs b/src/Microsoft.Tye.Core/AzureFunctionServiceBuilder.cs index 48487793f..7cf764bdd 100644 --- a/src/Microsoft.Tye.Core/AzureFunctionServiceBuilder.cs +++ b/src/Microsoft.Tye.Core/AzureFunctionServiceBuilder.cs @@ -2,6 +2,8 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. +using System.Collections.Generic; + namespace Microsoft.Tye { public class AzureFunctionServiceBuilder : ServiceBuilder @@ -17,5 +19,6 @@ public AzureFunctionServiceBuilder(string name, string path, ServiceSource sourc public string FunctionPath { get; } public string? FuncExecutablePath { get; set; } public string? ProjectFile { get; set; } + public List EnvironmentVariables { get; } = new List(); } } diff --git a/src/tye/ApplicationBuilderExtensions.cs b/src/tye/ApplicationBuilderExtensions.cs index c5099c2c1..342564712 100644 --- a/src/tye/ApplicationBuilderExtensions.cs +++ b/src/tye/ApplicationBuilderExtensions.cs @@ -151,6 +151,11 @@ public static Application ToHostingApplication(this ApplicationBuilder applicati replicas = function.Replicas; liveness = null; readiness = null; + + foreach (var entry in function.EnvironmentVariables) + { + env.Add(entry.ToHostingEnvironmentVariable()); + } } else {