Как установить и получить переменную окружения в AWS Lambda Project в C # - PullRequest
0 голосов
/ 23 февраля 2019

Я создал 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 голосов
/ 13 июня 2019

Это довольно близко, но после некоторого осмотра я выяснил, как на самом деле установить их для локальных прогонов, используя Mock Lambda Test Tool.Фактически он находится внутри файла launchSettings.json.Вы хотите сбросить настройки в разделе Mock Lambda Test Tool узла профилей, а не за его пределами.

{
 "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"
   }
  }
 }
}
0 голосов
/ 23 февраля 2019
  1. Настройка переменных среды используемые документы

Существует два места, где вам нужно установить переменные среды: время разработки и время развертывания.Для этого откройте файл 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\";"

Использование / извлечение переменных среды

Использование переменных среды как части логики функции Lambda выполняется интуитивно в коде C # с использованием системной библиотеки aws blog :

System.Environment.GetEnvironmentVariable(<key>);

В вашем случае вы можете использовать следующее:

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

В этом документе предлагается, чтобы ваш подход кпеременная среды выборки верна.

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