【问题标题】:Lambda Python to Query SSM Parameter Store ValueLambda Python 查询 SSM 参数存储值
【发布时间】:2021-10-07 04:34:06
【问题描述】:

我想在 AWS Lambda 中编写 Python 3.6 查询以获取有关 AWS SSM 参数存储的详细信息,但我得到一个空响应。如果我通过 AWS CLI 查询,我将获得参数存储项目的详细信息,包括我的最终目标 AMI ID。参数存储路径为:

/aws/service/ami-windows-latest/Windows_Server-2019-English-Core-Base-2019.07.12

我的代码如下,任何关于为什么这没有返回预期结果的见解将不胜感激。

import json
import boto3

def lambda_handler(event, context):
    client = boto3.client('ssm')
    response=client.get_parameters(Names=['/aws/service/ami-windows-latest/Windows_Server-2019-English-Full-Base']),
    #return "Success"
    print (response)

我希望得到与运行以下 AWS CLI 命令时相同的输出。

aws ssm get-parameters --names /aws/service/ami-windows-latest/Windows_Server-2019-English-Full-Base --region us-east-1

【问题讨论】:

  • 错误是什么?
  • 这是我测试 Lambda 函数时得到的结果。响应:null

标签: python python-3.x aws-lambda aws-ssm


【解决方案1】:

我在一位拥有更多 Python 经验的同事的帮助下解决了这个问题。代码如下。

import boto3

client = boto3.client('ssm')

def lambda_handler(event, context):
    parameter = client.get_parameter(Name='/aws/service/ami-windows-latest/Windows_Server-2019-English-Full-Base', WithDecryption=True)
    print(parameter)
    return parameter ['Parameter']['Value']

【讨论】:

  • 我在我的答案中附上了上面的文档,以强调 client.get_parameter 期待一个字符串,任何你想出来的好方法,很高兴你把 client = boto3.client('ssm') 拉到外面lambda_handler 以便在使用相同容器的情况下可用于下一次调用。
  • 对不起,我错过了。谢谢。
【解决方案2】:
  • 值得检查您的 lambda 是否具有与 aws SSM 交互的足够权限。只是为了初步检查,我建议使用政策policy/AmazonSSMFullAccess 提供完全访问权限
  • Lambda IAM 角色应具有上述策略。
  • 文档aws boto3 docs

【讨论】:

  • 是的,我正在使用附加了 AmazonSSMFullAccess 策略的角色。仍然得到响应:null
【解决方案3】:

您可以使用这个具有开箱即用错误处理功能的库: AWStanding

from awstanding.parameter_store import load_parameters

LOOKUP_DICT = {
  '/aws/service/ami-windows-latest/Windows_Server-2019-English-Full-Base': 'CONVENIENT_NAME'
}

load_parameters(LOOKUP_DICT)

os.environ.get('CONVENIENT_NAME')

这里的优点是您可以以最小的开销轻松加载大量参数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-14
    • 2019-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多