我想在从 cli 调用时在 aws Lambda 中传递参数

I want to pass parameters in aws Lambda while invoking from cli

我正在尝试使用以下命令从我的管道调用 lambda,我需要将 ami 作为输入变量传递给 lambda。

aws lambda invoke --function-name SuccessLambda --cli-binary-format raw-in-base64-out --payload '{"ami":"ami-1234"}' response.json

我的 lambda 函数应该读取这个,请帮助语法 -

import json
import boto3
import os
ami=event.ami
sns = boto3.client('sns')
def lambda_handler(event, context):
    ami = $(event.ami)
    message = "The new ami %s is now available" % (ami)
    response = sns.publish(
            TopicArn = "arn:SuccessArtifactsNotificationTopic",
            Message = message,
            Subject=(Subject)
            )
    
    return {
      'statusCode': 200,
      'body': json.dumps('Success!')
}

请找到以下解决方案 -

aws lambda 调用 --function-name SuccessArtifactsNotificationLambda --cli-binary-format raw-in-base64-out --payload '{"ami":"ami-1234 "}' response.json

这是在 lambda 中调用变量的方法-

import json
import boto3
import os
sns = boto3.client('sns')
def lambda_handler(event, context):
    ami = event['ami']
    message = "The new ami %s is now available" % (ami)
    response = sns.publish(
            TopicArn = "arn:SuccessTopic",
            Message = message,
            Subject=(Subject)
            )
    
    return {
      'statusCode': 200,
      'body': json.dumps('Success!')
}