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