【问题标题】:Using lambda environment variable to pass parameters to cloudwatch api使用 lambda 环境变量将参数传递给 cloudwatch api
【发布时间】:2019-12-26 09:26:36
【问题描述】:

我在 Lambda 中使用环境变量来收集警报名称列表,然后将其传递给 Cloudwatch API cloudwatch.describe_alarms(AlarmNames=[]) 中的 AlarmNames 字段

一直有类型错误,API接受的类型是列表和元组。

env = os.environ['ALARM_NAMES']
response = cloudwatch.describe_alarms(
    AlarmNames= env
)

这是 ALARM_NAMES 的环境变量字段: 'instance1-freediskspace C','instance2-freediskspace C','instance3-freediskspace C'

【问题讨论】:

  • 如何设置 ALARM_NAMES?您可以在此处打印环境并使用示例值更新问题吗?
  • 使用环境变量中的示例值更新。

标签: python amazon-web-services aws-lambda amazon-cloudwatch


【解决方案1】:

环境变量是字符串。要获取元组或列表,您可以通过一些分隔符拆分字符串:

"mystring1;mystring2".split(";")  # -> ['mystring1', 'mystring2']

【讨论】:

  • 函数能够正常运行,但是describe_alarms没有返回任何结果,这意味着没有一个env变量被传递到参数列表中
【解决方案2】:

如果这是env的值:

"'instance1-freediskspace C','instance2-freediskspace C','instance3-freediskspace C'"

您需要删除单引号并用逗号分隔以获得列表。比如这样:

AlarmNames= env.replace("'", "").split(',')

【讨论】:

    猜你喜欢
    • 2021-01-21
    • 2013-12-29
    • 1970-01-01
    • 2021-09-05
    • 2020-03-27
    • 2017-03-30
    • 2018-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多