我可以使用 aws cli 获取 lambda 函数触发器信息吗?

gok*_*ack 8 amazon-web-services aws-cli aws-lambda

我正在处理一个无服务器项目,并且只能访问 aws cli,所以我想获取事件等函数的触发信息,并且由于我使用 sns 主题来触发该函数,所以我想获取该主题infomation 和 arn,我尝试了不同的选项,例如,

list-event-source-mapping- 返回一个空数组

get-function: 不具有该值

我是否有办法使用 aws cli 获取函数的触发信息?

jmp*_*jmp 10

在这种情况下,我相信获取该信息的唯一方法是通过get-policy API 调用,因为它将包含基于资源的策略(也称为触发器),允许其他服务调用 Lambda。

get -event-source-mappings API 返回区域中基于流的事件源,例如:

  • 运动
  • 发电机
  • 质量安全体系

例如,如果我有一个配置为从 SNS 调用的 lambda 函数,则返回的策略将类似于:

aws lambda get-policy --function-name arn:aws:lambda:us-east-1:111122223333:function:YOUR_LAMBDA_NAME_HERE --query Policy --output text | jq '.Statement[0].Condition.ArnLike["AWS:SourceArn"]'

输出

“arn:aws:sns:REGION:111122223333:TOPIC_NAME”

虽然假设 Lambda 函数中的策略只有一个语句,但如果您知道特定的语句 ID,那么您应该能够使用过滤器在 jq 中选择它