Переменные среды, установленные в файле Buildspec.yml, не отображаются в среде при сборке (AWS Lambda / CodeStar)
Сначала немного фона. Мы создаем приложение в AWS, используя CodeStar для контроля всего. Это пишется на 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 не читает переменные среды
но мы хотим установить переменные в файле yaml, а не через область конфигурации Lambda
1 ответ
Если у вас есть файл template.yaml, поместите в него наши переменные окружения. В свойствах вашего Ресурса есть свойство Environment с под-свойством Variables. Вот пример, аналогичный тому, что мы используем.
LambdaFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: ./src
Handler: lambda_function.lambda_handler
MemorySize: 1024
Timeout: 3
Environment:
Variables:
LOG_LEVEL: DEBUG