用Bref脚手架在AWS的Lambda上部署PHP
起因
看到一个php的站点是在AWS的Lambda上部署的,是基于Bref脚手架,于是就想尝试一下,折腾了一上午,记录下。
步骤一,AWS的IAM的API密钥
此IAM用户需要的权限如下:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:*",
"apigateway:*",
"cloudformation:*",
"logs:CreateLogGroup",
"logs:PutLogEvents",
"logs:CreateLogStream",
"iam:PassRole",
"iam:GetRole",
"iam:CreateRole",
"iam:PutRolePolicy",
"lambda:*"
],
"Resource": "*"
}
]
}
步骤二,上传自定义的lambda layer
官方的lambda环境不支持php,需要自己制作和上传:
rm -rf opt
CID=$(docker create --entrypoint=scratch bref/php-74-fpm:latest)
docker cp ${CID}:/opt .
docker rm ${CID}
cd opt && zip -qq -y -r - . > ../php-74-fpm.zip
制作好后,在AWS的lambda——layer处上传
步骤三,参考Bref官方教程
npm install -g serverless
serverless config credentials --provider aws --key <key> --secret <secret>
composer require bref/bref
serverless deploy
本作品采用《CC 协议》,转载必须注明作者和本文链接