我正在尝试在 LocalStack (AWS Lambda) 上运行 (Symfony) PHP 应用程序。根据 Bref 文档的建议,我使用 ${bref:layer.php-81-fpm} 层。调用函数失败,LocalStack 日志显示:
ALERT: [pool default] 用户尚未定义
这导致了 Bref 的 PHP-FPM 配置,其中用户 nobody 配置为默认池。该用户存在于 LocalStack docker 镜像中,但我猜测它不存在于 LocalStack 的 lambda 执行器镜像中(当使用非 FPM PHP 时,它是在 root 下调用的)。反对这种假设的是,设置 LAMBDA_EXECUTOR=local 时错误消息是相同的,但我对 LocalStack 太陌生,无法确定到底发生了什么。
所以我的问题是如何解决这个问题。也许我可以破解 Bref 的 PHP 配置并切换到 root。但我更喜欢调整 LocalStack,以便 Bref 可以配置为与生产中的相同(尤其是不作为 root)。也许可以更改 Lambda 执行者用户?我没有找到任何关于它的东西。
顺便说一句,在真实的 AWS 环境中,一切都按预期工作。
在 Docker 中使用 LocalStack 0.13.3,Bref 1.5.2 和 PHP 8.1 层。
感谢帮助!