ssigwart / lambda-php
AWS Lambda 的 PHP 运行时。
v1.0.1
2021-10-23 02:15 UTC
Requires
- php: >=7.0.0
- guzzlehttp/guzzle: ^7.2
This package is auto-updated.
Last update: 2024-09-23 08:38:37 UTC
README
cd scripts
./buildRuntime.sh
编写 Lambda 处理程序
- 编写一个实现了
ssigwart\LambdaRuntime\LambdaHandlerInterface
接口的类。 - 编写一个
bootstrap.php
文件,调用\LambdaRuntimeBootstrap\RuntimeBootstrap::setHandler()
来设置您的处理程序。- 此文件可以执行额外的工作,例如设置自动加载。
- 将您的文件放在
handler/your_handler_name
目录中,压缩并上传到 Lambda。- 确保 Lambda 中配置的处理程序名称与
your_handler_name
匹配。
- 确保 Lambda 中配置的处理程序名称与
示例处理程序
<?php use ssigwart\LambdaRuntime\LambdaHandlerInterface; /** Simple lamdba handler */ class MyHandler implements LambdaHandlerInterface { /** * Handle request * * @param string $invocationId Invocation ID * @param string $payload Payload (typically JSON) * * @return string Response */ public function handleRequest(string $invocationId, string $payload): string { return 'Invocation ' . $invocationId . ' with payload: ' . $payload; } } // Set handler \LambdaRuntimeBootstrap\RuntimeBootstrap::setHandler(new MyHandler());
管理 Lambda 层
上传一个层
- 将
runtime.zip
添加到 S3 桶 - 将层上传到 lambda
aws --profile=YOUR_PROFILE lambda publish-layer-version --layer-name YOUR_LAYER_NAME --description "PHP 8.0 runtime." --content S3Bucket=YOUR_BUCKET,S3Key=YOUR_S3_PATH/runtime.zip
- 保存 ARN 并用它来添加到 lambda
在 Lambda 函数上设置层
aws --profile=YOUR_PROFILE lambda update-function-configuration --function-name YOUR_FUNCTION --layers arn:aws:lambda:us-east-1:635144173025:layer:YOUR_LAYER_NAME:1
删除一个层
aws --profile=YOUR_PROFILE lambda delete-layer-version --layer-name=YOUR_LAYER_NAME --version-number=1
列出层
aws --profile=YOUR_PROFILE lambda list-layers aws --profile=YOUR_PROFILE lambda list-layer-versions --layer-name=YOUR_LAYER_NAME