代码之家  ›  专栏  ›  技术社区  ›  Michael Durrant

如何在CLI上获取aws lambda函数名?

  •  0
  • Michael Durrant  · 技术社区  · 6 年前

    我可以和你一起了解细节

    $ 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

    2 回复  |  直到 6 年前
        1
  •  2
  •   Dunedan    6 年前

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

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

    我还添加了一个参数来将结果转换为文本,这使处理变得更容易。

        2
  •  1
  •   Dudi Boy    6 年前

    下面是一个简单的例子 awk (标准Linux gnu awk)脚本:提取带引号的字段#3的值,仅用于具有/FunctionName/的行。

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

    通过你最初的命令:

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

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

    从文件中:

    jq类似于JSON数据的sed——您可以使用它来切片、过滤和存储数据 映射和转换结构化数据的难度与sed、awk、, grep和朋友让你玩文字游戏。

    用法示例:

    aws lambda get-function --function-name test --output json | jq -r '.Configuration.FunctionName'
    
        4
  •  -2
  •   Michael Durrant    6 年前

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

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