用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 协议》,转载必须注明作者和本文链接
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

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