如何在 Ruby Lambda 函数中访问 Terraform Lambda 变量?

How to access Terraform Lambda Variables in Ruby Lambda Function?

我有创建 Lambda 函数的 terraform 代码。然后我有一些 ruby 代码是 lambda 函数。我无法弄清楚,也无法找到有关如何实际使用从 terraform 传递到 lambda 的变量的任何信息。我最终只需要知道如何在 ruby lambda 函数

中使用 terraform 变量

我在 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"
    }
  }
}

还有我的 Lambda 函数

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

想法是将 terraform 中的 status 变量传递到 ruby 代码中的状态变量

这是我找到的 python 示例

import os

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

所以你的问题是"how to access environment variables in Ruby"?那将是 ENV['status'].