首先是一点背景。我们正在使用CodeStar在AWS中构建应用程序来控制所有内容。它是用Python 3编写的
但是,尽管每次尝试我们都无法获取我们在buildspec.yml文件中设置的变量,以便在部署代码时在环境中显示。
例如,以下内容基本上是buildspec.yml文件。
version: 0.2
env:
variables:
PASSWORD: "abc123"
artifacts:
type: zip
files:
- template-export.yml
- '**/*'
然后我们构建一个函数来打印整个环境变量MY_VAR没有在变量中显示。我们使用的代码基本上是这样的:
import os
def handler(event, context):
PASSWORD1 = str(os.environ["PASSWORD"])
print(PASSWORD1)
尽我所知,它目前有一个角色,它赋予它完全的权限。我相信这有一个简单的解决方案,但截至目前我们还没有找到它 - 尽管花在试图让它上班的时间
非常感谢任何帮助或指示。
注意 - 这看起来非常类似于:
AWS Lambda is not reading environment variables
但我们想要在yaml文件中设置变量,而不是通过Lambda配置区域
答案 0 :(得分:1)
如果您有template.yaml文件,请将我们的环境变量放在该文件中。在您的Resource的属性中包含一个名为Environment的属性,其中包含一个名为Variables的子属性。这是我们使用的类似示例。
LambdaFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: ./src
Handler: lambda_function.lambda_handler
MemorySize: 1024
Timeout: 3
Environment:
Variables:
LOG_LEVEL: DEBUG