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

时间:2019-06-22 16:28:32

标签: amazon-web-services aws-lambda aws-cli

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

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

get-function:不包含该值

我是否可以通过aws cli获取函数的触发信息?

1 个答案:

答案 0 :(得分:0)

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

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

  • 运动学
  • 发电机
  • SQS

例如,如果我有一个配置为从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,则应该可以使用filter

在jq中选择它。