15
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AWS Lambdaの Custom RuntimeでさっそくPHPを動かしてみた

Posted at

#背景
re:Invent 2018でLambdaにCustom Runtimesが追加され、
COBOLがサポートされた裏でPHPもサポートされたので試してみます。

こちらを参考にしました
[LambdaでPHPが動くので、とりあえずWordPressをいれてみた]
(https://wp-kyoto.net/try-to-run-wordpress-in-aws-lambda/)

##ディレクトリ構成はこんな感じです
.
├── src
│   └── php
│   └── index.php
└── template.yaml

###template.yamlはこんな感じにしました。

AWSTemplateFormatVersion: 2010-09-09
Description: PHP Demo
Transform: AWS::Serverless-2016-10-31
Resources:
  phpdemo:
    Type: AWS::Serverless::Function
    Properties:
      FunctionName: !Sub ${AWS::StackName}-ironman
      Description: PHP Demo
      CodeUri: src/php
      Runtime: provided
      Handler: index.php
      MemorySize: 3008
      Timeout: 30
      Tracing: Active
      Layers:
        - !Sub arn:aws:lambda:${AWS::Region}:887080169480:layer:php71:3
      Events:
        api:
          Type: Api
          Properties:
            Path: /ironman
            Method: get

###index.phpの内容は以下のものになります。

<?php
    $array = [
        'Iron Man',
        'Batman',
        'Suit Guy',
    ];
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<?php
    foreach($array as $val) {
        echo $val . '<br>' . PHP_EOL;
    }
?>
</body>
</html>

###デプロイしちゃいます
のまえにデプロイ用のバケット作ります。

aws s3 mb s3://pipeline-php-demo

AWSのコンソールから作ってもいいです。

###デプロイ

$ sam package \
    --template-file template.yaml \
    --output-template-file serverless-output.yaml \
    --s3-bucket pipeline-php-demo(上で作ったバケット名)

$ sam deploy \
    --template-file serverless-output.yaml \
    --stack-name php-demo(CFnのスタックに表示させたい名前) \
    --capabilities CAPABILITY_IAM

##結果
API Gatewayのエンドポイントをブラウザで開くと、、
ちゃんと配列がループしてますね!!
Screen Shot 2018-12-02 at 2.57.27 AM.png

#まとめ

というか、サーバーワークスさんの二番煎じになっちゃってますねこれ><

軽く試したところ
undefined function json_encode()
って怒られたのでへこみました。

AWSのコンソール上でPHPのソースが見られないのはちょっと残念だなとおもいました。
Screen Shot 2018-12-02 at 3.01.55 AM.png

15
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?