用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官方教程

Bref教程

npm install -g serverless
serverless config credentials --provider aws --key <key> --secret <secret>
composer require bref/bref
serverless deploy
本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!