如何使用无服务器 cli 部署多个功能?

How to deploy multiple functions using serverless cli?

从文档中,我可以像这样部署一个函数

serverless deploy function -f functionName

https://www.serverless.com/framework/docs/providers/aws/cli-reference/deploy-function/

我可以用这样的命令部署多个函数吗?

  serverless deploy function -f functionName1, functionName2

如果不能,一次部署多个函数怎么办?

谢谢

serverless-cli不支持一次部署多个函数。我附加了一个 bash 函数,你可以将它添加到你的 bashrc 中,所以它总是自动为你加载(而不是在打开新终端时复制和粘贴它)

serverless-deploy-function() {
    # Validate at least one parameter is passed
    [ "$#" -ne 1 ] && echo "USAGE [=10=] <PARAMETER>" && return 2

    # create a list of the first parameter (split by ,)
    declare -a FUNCTIONS_TO_DEPLOY=($(echo  | tr "," " "))

    # remove the first parameter from $@
    shift;
    # loop on the list of functions to deploy
    for x in $FUNCTIONS_TO_DEPLOY
    do
        echo Running \"serverless deploy function -f $x $@\"
        # Pass one function at a time and keep the rest of the arguments the same
        serverless deploy function -f $x $@
    done
}

要使用它,您需要执行以下操作:

$ serverless-deploy-function function1,function2

请记住,这还应该支持额外的参数,因为您将它们添加到要部署的函数之后:

$ serverless-deploy-function function1,function2 --stage dev --region us-east-1

或者对于一个函数,如下:

$ serverless-deploy-function function1 --stage dev --region us-east-1

我无法完全弄清楚如何在Windows中做到这一点,但是运行宁以下批处理脚本将生成多个单独的行你通常会使用。然后,您可以将它们复制并粘贴回命令行,以便按顺序 运行 它们。

:: used as >> deploy-functions STAGE fn1 fn2 fn...
@echo off

SET stage=%1
shift

:loop
echo serverless deploy --stage %stage% -f %1
shift
if not "%~1"=="" goto loop

我尝试将输出通过管道传输到单个批处理文件,但是 运行宁 那个 文件在第一行之后停止。