如何在CLI中获取AWS Lambda函数名称?

时间:2019-10-20 10:01:08

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

我可以通过以下方式获取详细信息

$ aws lambda get-function --function-name random_number
{
    "Configuration": {
        "FunctionName": "random_number",
        "FunctionArn": "arn:aws:lambda:us-east-2:193693970645:function:random_number",
        "Runtime": "ruby2.5",
        "Role": "arn:aws:iam::193693970645:role/service-role/random_number-role-8cy8a1a7",
        ...

但是如何仅获得几个字段,例如函数名?

我尝试过:

$ aws lambda get-function --function-name random_number --query "Configuration[*].[FunctionName]"

但是我得到null

4 个答案:

答案 0 :(得分:2)

您的总体方法是正确的,您只需要调整查询:

$ aws lambda get-function --function-name random_number \
      --query "Configuration.FunctionName" --output text

我还添加了一个参数,可将结果转换为文本,从而使处理变得容易一些。

答案 1 :(得分:1)

这是一个简单的awk(标准Linux gnu awk)脚本,可以完成以下工作:仅对具有/ FunctionName /的行提取引用字段#3的值。

awk 'BEGIN {FPAT="\"[^\"]+"}/FunctionName/{print substr($3,2)}'

使用您的初始命令:

$ aws lambda get-function --function-name random_number | awk 'BEGIN {FPAT="\"[^\"]+"}/FunctionName/{print substr($3,2)}'

答案 2 :(得分:0)

实现此目标的一种方法是使用jq。 因此,输出必须为JSON。

从文档中:

  

jq就像sed一样用于JSON数据-您可以使用它来切片和过滤并   映射和转换结构化数据的方式与sed,awk,   grep和朋友可以让您玩文字游戏。

用法示例:

aws lambda get-function --function-name test --output json | jq -r '.Configuration.FunctionName'

答案 3 :(得分:-2)

按如下所示使用get-function-configuration

aws lambda get-function-configuration --function-name MyFunction --query "[FunctionName]"