用Bref腳手架在AWS的Lambda上部署PHP

xing393939發表於2021-03-19

起因

看到一個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 協議》,轉載必須註明作者和本文連結

相關文章