runtime/bref-layer

2.3.5 2024-08-31 08:54 UTC

README

此仓库提供了Bref层,以便在AWS Lambda上运行Symfony Runtime应用程序。它会自动更新以同步Bref中的更改。这些层只是用新的引导文件替换了Bref的"函数层"。请参阅Dockerfile

您可以在https://github.com/php-runtime/bref找到有关如何使用runtime组件运行应用程序的更多信息。

安装和配置

composer require runtime/bref-layer
# serverless.yml
service: appgit init

provider:
    name: aws
    region: us-east-1
    runtime: provided.al2

plugins:
    - ./vendor/runtime/bref-layer # <----- Add the extra Serverless plugin

functions:
    website:
        handler: public/index.php
        layers:
            - ${runtime-bref:php-82}
        events:
            -   httpApi: '*'

您将使用相同的层来运行控制台应用程序、PSR-11、PSR-15、Laravel或Symfony应用程序。任何Runtime组件支持的应用程序。

可用的层

这些是可用的层

  • ${runtime-bref:php-82}
  • ${runtime-bref:php-81}
  • ${runtime-bref:php-80}
  • ${runtime-bref:php-74}
  • ${runtime-bref:php-73}

常见问题解答

我能否使用自定义PHP扩展?

是的,您可以。请参阅bref/extra-php-extensions包。

我是否需要安装bref/bref?

bref/bref包包含层和许多功能,使编写AWS Lambda上的应用程序更容易。如果您只想使用层,则无需包含bref/bref。但大多数HTTP应用程序可能需要。

为什么不在bref/bref中包含此包?

有一个开放PR来做到这一点。还有一个开放PR,使函数层能够原生支持runtime组件。

在这些PR合并之前,我们提供这个层,以帮助为runtime用户提供尽可能好的体验。

为什么不使用bref/extra-php-extensions中的层?

bref/extra-php-extensions有一个名为${bref-extra:symfony-runtime-php-74}的层。它添加了Runtime组件所需的自定义引导文件。

AWS对每个函数的最大层限制为5层。因此,您可以使用单个层(${runtime-bref:php-80}),而不是使用两个层(${bref:layer.php-80} + ${bref-extra:symfony-runtime-php-74})。

您与Bref的关系是什么?

我们非常喜欢Bref。他们是最好的。请考虑赞助Matthieu Napoli的工作。

维护者备注

测试层

# Test all layers and PHP versions
make test

# Test only a single layer
layer=bref make test

# Test a single layer on a single PHP version
layer=bref php_versions=74 make test

部署新版本

手动方式

export AWS_PROFILE=my_profile
make publish
git add layers.json
git commit -m "New version of layers"
git push

Lambda层详细信息

注意:此部分仅适用于想要了解更多信息的情况。

lambda层遵循以下模式

arn:aws:lambda:<region>:403367587399:layer:bref-<layer-name>:<layer-version>

查看最新的层版本