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

Amazon web services 如何在CLI上获取aws lambda函数名?,amazon-web-services,aws-lambda,aws-cli,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",

我可以和你一起了解细节

$ 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
使用
get函数配置
,如下所示:

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

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

从文档中:

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

用法示例:

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

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

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

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

下面是一个简单的
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)}'