aws lambda list-functions只过滤掉函数名?

时间:2018-01-22 16:49:26

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

我只想找回一个功能名称列表。理想情况下,我希望从“some-prefix *”开始获取所有函数(只是它们的名称)。我可以用cli吗?

如果可能的话,真的希望这个作为cli命令(我想避免使用python或其他sdk)。我看到有一个--cli-input-json arg,我可以用它进行过滤吗?

4 个答案:

答案 0 :(得分:9)

你可以做到这一点。使用--query选项。 CLI将如下所示:

aws lambda list-functions --region us-east-1 --query 'Functions[].FunctionName' --output text

获取名称以some-prefix开头的函数列表:

aws lambda list-functions --region us-east-1 --query 'Functions[?starts_with(FunctionName, `some-prefix`) == `true`].FunctionName' --output text

要获得完整的JSON,CLI将是:

aws lambda list-functions --region us-east-1

可以找到有关query参数的详细信息here

答案 1 :(得分:0)

由于@krishna已经给出了答案,但是我正在寻找一种无需指定前缀即可打印所有函数名称的方法。因此,在这里您可以获取特定区域中的所有lambda函数名称,我的默认值为us-west-2

aws lambda list-functions  --query 'Functions[*].[FunctionName]' 

或者我希望它们以文本格式和空格分开以在我的bash脚本中使用,因此在这里您可以将文本和单行空格分开。

aws lambda list-functions --query 'Functions[*].[FunctionName]' --output text | tr '\r\n' ' '

答案 2 :(得分:0)

此外,我的建议是使用aws-shell,这是AWS CLI的交互式生产力增强器。

自动补全和历史记录功能使生活变得非常轻松。

example of list functions

答案 3 :(得分:0)

我是来这里寻求帮助的,目的是清理我在学习 AWS 开发人员认证教程时创建的所有 lambda 函数。如果有人在同一条船上,我已经创建了一个脚本来以编程方式删除我的 AWS 帐户中的所有 lambda 函数(不适用于生产

#!/bin/bash
# STOP: DON'T USE/RUN THIS SCRIPT UNLESS YOU ARE 100% SURE WHAT YOU ARE DOING 
#       I am a learner and created 20+ lambda functions while following a tutorial 
#       I wrote this script to programatically cleanup functions at the end of course    
# precondition: your aws cli is configured 
# get all functions from aws account
functions=(`aws lambda list-functions --query 'Functions[*].[FunctionName]' --output text`)
for i in "${functions[@]}"
do
   #delete functions 1-by-1 
   aws lambda delete-function --function-name "$i"   
   echo "deleted $i"
done
相关问题