【发布时间】: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