Как получить доступ к Terraform Lambda-переменным в функции Ruby Lambda? - PullRequest
0 голосов
/ 02 апреля 2019

У меня есть код terraform, который создает функцию Lambda. Затем у меня есть некоторый код ruby, который является лямбда-функцией. Я не могу понять, или найти какую-либо информацию о том, как на самом деле использовать переменные, которые передаются из terraform в лямбду. В конечном итоге мне просто нужно знать, как использовать переменные terraform в лямбда-функции ruby ​​

Я нашел примеры в Python и JS. Сходств мало.

Вот мой терраформный код


resource "aws_lambda_function" "send_sns_lambda" {
  filename         = "statuslambda.zip"
  function_name    = "status-page-send-sns"
  source_code_hash = "${data.archive_file.status_lambdas.output_base64sha256}"
  role             = "${aws_iam_role.status_lambda.arn}"
  handler          = "statusLambda.send_sns"

  runtime = "ruby2.5"

  vpc_config = {
    subnet_ids         = ["subnet-xxxx", "subnet-xxxxx"]
    security_group_ids = ["sg-xxxxxx"]
  }

  environment = {
    variables = {
      status = "Major Outage"
    }
  }
}

И моя лямбда-функция

def send_sns(event:,context:)
  sns = Aws::SNS::Resource.new(region: 'us-xxx-xxx')
  topic = sns.topic('arn:aws:sns:us-east-1:xxxxxxxx')


  topic.publish({
    message: '#{status}'
  })

end

Идея состоит в том, что переменная status в terraform передается в переменную состояния в коде ruby ​​

Вот пример Python, который я нашел

import os

def lambda_handler(event, context):
    return "{} from Lambda!".format(os.environ['greeting'])

1 Ответ

2 голосов
/ 02 апреля 2019

Итак, ваш вопрос "как получить доступ к переменным окружения в Ruby"?Это было бы ENV['status'].

...