在运行.net核心2.1AWSLambda函数时,使用以下方法从c#中的AWS控制台获取环境变量很简单:
var envVariable = Environment.GetEnvironmentVariable("myVariableName");
但是,当在AWS上将ASP.NET核心2.1作为无服务器应用程序运行时,这是不起作用的(上面的返回为null)。
我可以在launchSettings.json文件中设置一个本地env变量,但是我想使用AWS控制台中的Env变量。
如何访问ASP.NET Core2.1中的变量?
发布于 2018-08-05 00:42:14
如何访问ASP.NET Core 2.1中的变量
你以和以前一样的方式访问它。
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" : {
}
}
发布于 2018-08-05 06:14:55
试试这个:
public interface IEnviromentVariables {
string getEnVariable(string variable);
}
public class EnviromentClass : IEnviromentVariables {
public string getEnVariable(string variable) {
return System.Environment.GetEnvironmentVariable(variable);
}
}
https://stackoverflow.com/questions/51688921
复制相似问题