Kgn*_*web 1 c# environment-variables amazon-web-services aws-lambda asp.net-core
我已经AWS Lambda Project在C#(NOT Serverless Application)中创建了
我在aws-lambda-tools-defaults.json下面定义了一个环境变量
"environment-variables": {
"my-api": "http://myapihost.com/api/attendance-backfill"
}
Run Code Online (Sandbox Code Playgroud)
在Function.cs中,按如下所示获取值
var apiUrl = Environment.GetEnvironmentVariable("my-api").ToString();
Run Code Online (Sandbox Code Playgroud)
但是它总是像null。
如何设置和获取环境变量?
谢谢!
根据评论。
您需要在两个地方设置环境变量:开发时间和部署时间。为此,请从解决方案资源管理器中的 Properties 文件夹下打开 launchSettings.json 文件。然后添加以下 JSON 属性:
"environmentVariables": {
"my-api": "something"
}
Run Code Online (Sandbox Code Playgroud)
要在部署时设置环境变量,您可以将这些添加到 aws-lambda-tools-defaults.json 文件中。(请记住转义双引号。)
environment-variables, its format is: "<key1>=<value1>;<key2>=<value2>;".
Run Code Online (Sandbox Code Playgroud)
在你的情况下,你应该有
"environment-variables" : "\"my-api\"=\"http://myapihost.com/api/attendance-backfill\";"
Run Code Online (Sandbox Code Playgroud)
使用/获取环境变量
使用环境变量作为 Lambda 函数逻辑的一部分是通过使用系统库aws 博客在 C# 代码中直观地完成的:
System.Environment.GetEnvironmentVariable(<key>);
Run Code Online (Sandbox Code Playgroud)
在您的情况下,您可以使用以下内容;
var apiUrl = System.Environment.GetEnvironmentVariable("my-api");
Run Code Online (Sandbox Code Playgroud)在本文档中,建议您获取环境变量的方法是正确的。
var variableValue = Environment.GetEnvironmentVariable("nameOfVariable");
Run Code Online (Sandbox Code Playgroud)
它非常接近,但是经过一番挖掘之后,我发现了如何使用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"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1542 次 |
| 最近记录: |