lambda-cicd-workshop

フェーズ1: Lambda関数を準備する

このフェーズでは、ワークショップで使うAWS Lambda関数をCloudFormationでデプロイします。ここでは中身の理解は不要です。まずは動く環境を用意する準備フェーズとして進めてください。

Lambda関数をデプロイする

AWS環境へのLambda関数の作成には、今回は再現性の担保のために、CloudFormationテンプレート(lambda.yml)を使います。テンプレートの中身を理解する必要はありません。「これを実行するとLambda関数ができる」という認識で大丈夫です。

CloudFormationテンプレート

AWSTemplateFormatVersion: "2010-09-09"
Description: Lambda function for CI/CD workshop

Parameters:
  FunctionName:
    Type: String
    Default: hello-world
    Description: Lambda function name

Resources:
  LambdaExecutionRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: "2012-10-17"
        Statement:
          - Effect: Allow
            Principal:
              Service: lambda.amazonaws.com
            Action: sts:AssumeRole
      ManagedPolicyArns:
        - arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole

  HelloWorldFunction:
    Type: AWS::Lambda::Function
    Properties:
      FunctionName: !Ref FunctionName
      Runtime: python3.14
      Handler: index.handler
      Role: !GetAtt LambdaExecutionRole.Arn
      Timeout: 30
      Code:
        ZipFile: |
          def handler(event, context):
              return {"statusCode": 200, "body": "hello, world!"}

Outputs:
  FunctionName:
    Description: Lambda function name
    Value: !Ref HelloWorldFunction
  FunctionArn:
    Description: Lambda function ARN
    Value: !GetAtt HelloWorldFunction.Arn

コンソールからのデプロイ

AWSコンソールで CloudFormation → スタックの作成 → 既存のテンプレートを選択 → テンプレートファイルのアップロード を選択して、lambda.yml をアップロードして、デプロイできます。

スタック名とLambda関数名の指定が必要です。

同じAWSアカウント・リージョンで複数人が実施する場合、スタック名・関数名はユニークである必要があります。

デフォルトの hello-world からhello-world-<自分の名前> のように、関数名が被らないように変更してデプロイしてください。

AWS CLIからのデプロイ

AWS CLIの認証設定(aws login)はフェーズ5で行います。このフェーズではコンソールからのデプロイを推奨しますが、すでにAWS CLIの認証が済んでいる場合は、以下のコマンドでもデプロイできます。

aws cloudformation deploy \
  --template-file lambda.yml \
  --stack-name cicd-workshop-lambda \
  --capabilities CAPABILITY_IAM \
  --profile cli-profile

動作確認

デプロイが完了したら、AWSコンソールでLambda関数を開き、テスト実行してください。以下のレスポンスが返ることを確認します。

{"statusCode": 200, "body": "hello, world!"}

参考リンク

次のステップ

Lambda関数がAWS上に作成できました。次はこのコードをGitHubに置いて、チームで共有できる状態にします。

フェーズ2: GitHubにコードを置く に進みましょう。