如何在C#中的AWS Lambda Project中设置和获取环境变量

时间:2019-02-23 16:32:01

标签: c# amazon-web-services asp.net-core aws-lambda environment-variables

我已经在AWS Lambda Project中创建了C#(不是无服务器应用程序)

enter image description here

我在aws-lambda-tools-defaults.json中定义了一个环境变量,如下所示:

"environment-variables": {
 "my-api": "http://myapihost.com/api/attendance-backfill"
 }

在Function.cs中,按如下所示获取值

   var apiUrl = Environment.GetEnvironmentVariable("my-api").ToString();

但它总是以null的形式出现。

如何设置和获取环境变量?

谢谢!

根据评论。

launch-settings.json

Function.cs

2 个答案:

答案 0 :(得分:1)

它非常接近,但是经过一番挖掘之后,我发现了如何使用Mock Lambda测试工具为本地运行实际设置这些设置。实际上,它位于launchSettings.json文件中。您要将设置拖放到配置文件节点的“模拟Lambda测试工具”部分,而不是外部。

{
 "profiles": {
  "Mock Lambda Test Tool": {
   "commandName": "Executable",
   "commandLineArgs": "--port 5050",
   "workingDirectory": ".\\bin\\Debug\\netcoreapp2.1",
   "executablePath": "C:\\Users\\%USERNAME%\\.dotnet\\tools\\dotnet-lambda-test-tool-2.1.exe",
   "environmentVariables": {
     "environment": "test"
   }
  }
 }
}

答案 1 :(得分:0)

  1. 设置环境变量docs used

您需要在两个地方设置环境变量:开发时间和部署时间。为此,请从解决方案资源管理器中的Properties文件夹下打开launchSettings.json文件。然后添加以下JSON属性:

    "environmentVariables": {
      "my-api": "something"
    }

要在部署时设置环境变量,可以将它们添加到aws-lambda-tools-defaults.json文件中。 (请记住不要使用双引号。)

    environment-variables, its format is: "<key1>=<value1>;<key2>=<value2>;".

您应该拥有

    "environment-variables" : "\"my-api\"=\"http://myapihost.com/api/attendance-backfill\";"
  1. 消费/获取环境变量

    使用系统库aws blog,可以在C#代码中直观地将环境变量作为Lambda函数逻辑的一部分来使用:

    System.Environment.GetEnvironmentVariable(<key>);
    

    您可以使用以下内容;

    var apiUrl = System.Environment.GetEnvironmentVariable("my-api");
    

this document中,建议您获取环境变量的方法是正确的。

    var variableValue = Environment.GetEnvironmentVariable("nameOfVariable");