簡體   English   中英

如何在 C# 中的 AWS Lambda 項目中設置和獲取環境變量

[英]How do I set & fetch Environment variable in AWS Lambda Project in C#

我在C#中創建了AWS Lambda Project (不是無服務器應用程序)

在此處輸入圖像描述

我在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的形式出現。

如何設置和獲取環境變量?

謝謝!

根據評論。

啟動設置.json

函數.cs

它非常接近,但是經過一番挖掘之后,我發現了如何使用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. 設置使用的環境變量文檔

您需要在兩個地方設置環境變量:開發時間和部署時間。 為此,請從解決方案資源管理器中的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"); 

本文檔中 ,建議您獲取環境變量的方法是正確的。

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

這些解決方案奏效了。 需要在兩個地方設置環境變量 1.) 部署目的和 2.) 使用模擬工具在本地測試

serverless.template 文件在此處輸入圖像描述

launchSettings.json 文件在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM