【问题标题】:How to access Terraform Lambda Variables in Ruby Lambda Function?如何在 Ruby Lambda 函数中访问 Terraform Lambda 变量?
【发布时间】:2019-04-03 03:44:24
【问题描述】:

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

我在 python 和 JS 中找到了示例。几乎没有相似之处。

这是我的 terraform 代码


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'])

【问题讨论】:

  • 所以你的问题是“如何在 Ruby 中访问环境变量”?那将是ENV['status']
  • 天哪。谢谢你的工作!
  • 将其归档为答案,以便将其标记为已解决。

标签: ruby lambda aws-sdk terraform


【解决方案1】:

所以您的问题是“如何在 Ruby 中访问环境变量”?那将是ENV['status']

【讨论】:

    猜你喜欢
    • 2014-01-29
    • 2023-04-03
    • 2021-05-19
    • 1970-01-01
    • 2020-04-29
    • 2020-12-02
    • 2017-06-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多