💡

Bitbucket PipelinesによるAWS Lambda へのデプロイ環境を構築する

2023/10/10に公開

事前準備

Bitbucketリポジトリの作成
以下記事の1~2が完了していること
https://zenn.dev/kuryu8/articles/f609250cc9b5c7

構築手順

1.Bitbucketの設定

①左メニューよりパイプライン > Starter pipelineを選択

②bitbcuket-pipelines.ymlを編集する

添付画像部分に、下記ソースコードを貼り付ける

image: php:latest

pipelines:
  default:
    - step:
        name: Deploy to AWS Lambda
        script:
          - apt-get update
          - apt-get install -y awscli unzip
          - curl -OL https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-linux-x86_64.zip
          - unzip aws-sam-cli-linux-x86_64.zip -d ./sam-installation
          - ./sam-installation/install
          - rm -rf aws-sam-cli-linux-x86_64.zip
          - rm -rf ./sam-installation
          - aws configure set aws_access_key_id <YOUR_ACCESS_KEY_ID>
          - aws configure set aws_secret_access_key <YOUR_SECRET_ACCESS_KEY>
          - aws configure set default.region <AWS_REGION>
          - sam package --s3-bucket <YOUR_S3_BUCKET_NAME> --template-file template.yaml --output-template-file bref-output.yaml
          - sam deploy --template-file bref-output.yaml --stack-name <YOUR_STACK_NAME> --capabilities CAPABILITY_IAM

<YOUR_ACCESS_KEY_ID>
<YOUR_SECRET_ACCESS_KEY>
<AWS_REGION>
<YOUR_S3_BUCKET_NAME>
<YOUR_STACK_NAME>
を設定する

<補足>
apt-get install -y awscli unzip:AWS CLIとunzipをインストール
curl -OL https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-linux-x86_64.zip :AWS SAM CLIをダウンロードし、解凍する(AWS LambdaにデプロイするためのCLIツール)
sam package --s3-bucket <YOUR_S3_BUCKET_NAME> --template-file template.yaml --output-template-file bref-output.yaml:AWS SAM CLIを使って、Lambda関数をパッケージ化し、指定したS3バケットにアップロード
sam deploy --template-file bref-output.yaml --stack-name <YOUR_STACK_NAME> --capabilities CAPABILITY_IAM:パッケージ化したLambda関数をAWS上にデプロイ

2.リポジトリにPushする

下記記事の①の1~2のファイル群を対象リポジトリにpushする

https://zenn.dev/kuryu8/articles/f609250cc9b5c7

ファイル構成は以下
・vendor
・composer.json
・composer.lock
・index.php
・templete.yaml
・bitbucket-pipelines.yml(1-②で作成したもの)

②Bitbcuketよりパイプラインが正常に動作しているか確認

左メニューよりパイプラインをクリック
ステータスが「Successful」になっていることを確認

Lambdaでデプロイされているか確認

※関数名は、template.yamlのFunctionNameで設定した名前

参考にした記事

https://support.atlassian.com/ja/bitbucket-cloud/docs/deploy-a-lambda-function-update-to-aws/
https://qiita.com/yshishido/items/b3a57ffeae708841980d

Discussion