PHP에서 AWS Lambda를 사용해보기
5974 단어 AWSLambdaPHP브레프serverless
개요
이 기사는 Serverless2 Advent Calendar 2018의 19일째 기사가 됩니다.
계속 Lambda에 대해 신경이 쓰였지만, PHP가 대응하고 있지 않기 때문에 손을 낼 수 없는 상태였습니다.
그런 가운데, 아마 월간 PHP 뉴스 2018년 11월 27일호 | 주식회사 인피니트 루프 기술 블로그 그리고 PHP용의 서버리스 프레임워크가 소개되고 있었으므로, 시험해 갑니다.
2021/08/17 업데이트
2021년에 다시 조사한 내용을 아래에 정리했습니다.
기사의 내용은 낡기 때문에, 이쪽을 참조해 주시면이라고 생각합니다.
사전 준비
사전에 PHP와 Composer, Node.js가 움직이는 환경을 준비해 두십시오.
Composer가 빨라지는 것 같기 때문에, 아래의 라이브러리도 인스톨하면 좋을 것 같습니다.
composer를 빠르게 하는 플러그인 prestissimo를 만들었다: Architect Note
소개
README에 따라 진행합니다.
1.serverless 도입
npm install -g serverless
2.AWS 준비
Lambda를 실행할 준비를 합니다.
사전에 액세스 키를 발급하십시오.
tips
ここで設定するアカウントはAdmin権限のものでは動きませんでした。
IAMでLambdaの権限を与えたアカウントに設定が必要そうです。
awscli 설치
# yum install -y python-pip
$ pip install awscli --user
awscli를 도입하면 액세스 키 등을 설정합니다.
$ aws configure
AWS Access Key ID [None]: 作ったやつを入力
AWS Secret Access Key [None]: 作ったやつを入力
Default region name [None]: ap-northeast-1
Default output format [None]: json
이제 aws 준비는 괜찮습니다.
3.bref 도입
composer require mnapoli/bref
vendor/bin/bref init
init이면 다음 파일이 생성됩니다.
bref.php
<?php declare(strict_types=1);
require __DIR__.'/vendor/autoload.php';
λ(function (array $event) {
return [
'hello' => $event['name'] ?? 'world',
];
});
λ는 아래의 약어로 본격적으로 쓰면 아래와 같습니다.
$app = new \Bref\Application ;
$app->simpleHandler(function (array $event) {
return [
'hello' => $event['name'] ?? 'world',
];
});
$app->run();
4.bref 배포
방금
init
한 디렉토리 아래에서 다음 명령을 실행합니다.성공적으로 배포가 끝나면 준비가 완료됩니다.
$ vendor/bin/bref deploy
Serverless: Packaging service...
(以下略)
Deployment success
나열된 엔드포인트에 액세스하면 아래 화면이 표시됩니다.
이제 준비가 완성된 것 같습니다.
아직 AWS Lambda 사이트에 이번에 배포한 프로그램이 있었습니다.
CLI에서 시도해보십시오.
vendor/bin/bref invoke
를 실행하고 hello world
가 표시되면 문제가 없습니다.$ vendor/bin/bref invoke
{
"hello": "world"
}
덧붙여서 로컬에서 실행할 때는 보통 php 명령을 실행하면 좋은 것 같습니다.
$ php bref.php bref:invoke
{
"hello": "world"
}
이제 PHP에서 AWS Lambda를 사용할 준비가 되었습니다.
bref
는 Composer
로 인스톨할 수 있으므로, 실제로 도입할 때는 다른 라이브러리나 FW와 제휴해 사용하면 좋을 것 같습니다.참고
Reference
이 문제에 관하여(PHP에서 AWS Lambda를 사용해보기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/juve_534/items/4442bc8addb8befdae42텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)