Aws lambda 如何将命令行参数传递给Serverless/Bref中的Lambda函数?
我使用Bref(使用无服务器)在AWS Lambda上运行Symfony 4(PHP)应用程序 Bref为Symfony的bin/console二进制文件提供了一个层。Lambda函数的无服务器配置如下所示:Aws lambda 如何将命令行参数传递给Serverless/Bref中的Lambda函数?,aws-lambda,serverless-framework,serverless,aws-serverless,bref,Aws Lambda,Serverless Framework,Serverless,Aws Serverless,Bref,我使用Bref(使用无服务器)在AWS Lambda上运行Symfony 4(PHP)应用程序 Bref为Symfony的bin/console二进制文件提供了一个层。Lambda函数的无服务器配置如下所示: functions: console: handler: bin/console name: 'mm-console' description: 'Symfony 4 console' timeout: 120 # i
functions:
console:
handler: bin/console
name: 'mm-console'
description: 'Symfony 4 console'
timeout: 120 # in seconds
layers:
- ${bref:layer.php-73} # PHP
- ${bref:layer.console} # The "console" layer
使用上述方法,我可以在Lambda上运行vendor/bin/bref cli mm console--mm:find matches
来运行bin/console mm:find matches
如果我想在Lambda上运行mm:find matches
console命令,该怎么办?
我试过这个:
functions:
mm-find-matches:
handler: "bin/console mm:find-matches"
name: 'mm-find-matches'
description: 'Find mentor matches'
timeout: 120
layers:
- ${bref:layer.php-73} # PHP
- ${bref:layer.console} # The "console" layer
schedule:
rate: rate(2 hours)
但是“bin/console mm:find matches
”不是有效的处理程序。
如何将
mm:find matches
命令传递给计划中的bin/console
函数?您可以通过计划事件输入传递命令行参数,如下所示:
functions:
console:
handler: bin/console
name: 'mm-console'
description: 'Symfony 4 console'
timeout: 120 # in seconds
layers:
- ${bref:layer.php-73} # PHP
- ${bref:layer.console} # The "console" layer
events:
- schedule:
input:
cli: "mm:find-matches --env=test"
rate: rate(2 hours)
enabled: true
尽管对于使用cli控制台应用程序是否是最好的解决方案存在一些讨论,但与编写PHP函数来引导内核并执行您希望命令执行的特定操作相比,这两种方法都有不同之处