我正在处理一个无服务器项目,并且只能访问aws cli,所以我想获取诸如事件之类的函数的触发信息,并且由于我使用sns主题来触发该函数,因此我想获得主题信息和信息,我尝试了其他选项,例如
list-event-source-mapping
-返回一个空数组
get-function
:不包含该值
我是否可以通过aws cli获取函数的触发信息?
答案 0 :(得分:0)
在这种情况下,我认为获取该信息的唯一方法是从get-policy API调用中,因为它将包含基于资源的策略(AKA触发器),该策略允许其他服务调用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,则应该可以使用filter
在jq中选择它。