簡體   English   中英

如何訪問 Lambda 環境變量?

[英]How to access Lambda environment variable?

運行 .net core 2.1 AWS Lambda 函數時,使用 c# 從 AWS Lambda 控制台獲取環境變量很簡單:

var envVariable = Environment.GetEnvironmentVariable("myVariableName");

但是,當在 AWS Lambda 上將 ASP.NET core 2.1 作為無服務器應用程序運行時,這不起作用(以上返回 null)。

我可以在 launchSettings.json 文件中設置本地env 變量,但我想使用 AWS Lambda 控制台中的 Env 變量。

如何訪問 ASP.NET Core 2.1 中的 AWS Lambda Env 變量?

如何訪問 ASP.NET Core 2.1 中的 AWS Lambda Env 變量

您可以像以前一樣訪問它。

var envVariable = Environment.GetEnvironmentVariable("myVariableName");

確保為相應資源設置了環境變量,以便在調用時可用。

每個資源在serverless.template文件中都有一個條目,該文件是用於部署函數的 AWS CloudFormation 模板。

環境變量條目位於文件中的Resources:{ResourceName}:Properties:Environment:Variables JSON 路徑下。

示例聲明

{
  "AWSTemplateFormatVersion" : "2010-09-09",
  "Transform" : "AWS::Serverless-2016-10-31",
  "Description" : "An AWS Serverless Application that uses the ASP.NET Core framework running in Amazon Lambda.",
  "Parameters" : {
  },
  "Conditions" : {
  },
  "Resources" : {
    "Get" : {
      "Type" : "AWS::Serverless::Function",
      "Properties": {
        "Handler": "TimeZoneService::TimeZoneService.LambdaEntryPoint::FunctionHandlerAsync",
        "Runtime": "dotnetcore1.0",
        "CodeUri": "",
        "MemorySize": 256,
        "Timeout": 60,
        "Role": null,
        "Policies": [ "AWSLambdaFullAccess" ],
        "Environment" : {
          "Variables" : {
            "myVariableName" : "my environment variable value"
          }
        },
        "Events": {
          "PutResource": {
            "Type": "Api",
            "Properties": {
              "Path": "/{proxy+}",
              "Method": "ANY"
            }
          }
        }
      }
    }
  },
  "Outputs" : {
  }
}

參考使用 AWS Lambda 構建和測試無服務器應用程序

參考使用 ASP.NET Core、AWS Lambda 和 AWS API Gateway 創建無服務器應用程序

嘗試這個:

public interface IEnviromentVariables {
    string getEnVariable(string variable);
}

public class EnviromentClass : IEnviromentVariables {
    public string getEnVariable(string variable) {
        return System.Environment.GetEnvironmentVariable(variable);
    }
}

暫無
暫無

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

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