コンテンツにスキップ

serverless.yml@Serverless Framework

はじめに

本サイトにつきまして、以下をご認識のほど宜しくお願いいたします。


01. configValidationMode

configValidationModeとは

設定ファイルのバリデーションの実行時に、エラーを出力するレベルを設定する。

*実装例*

configValidationMode: warn


02. custom

customとは

スコープがserverless.ymlファイル内のみの変数を設定する。

*実装例*

custom:
  foo: FOO


03. frameworkVersion

frameworkVersionとは

Serverless Frameworkのバージョンを設定する。

*実装例*

frameworkVersion: "2"


04. functions

functionsとは


description

Lambda関数の説明文を設定する。

*実装例*

functions:
  main:
    description: The function that do foo


environment

Lambda関数の変数を設定する。

*実装例*

functions:
  main:
    environment:
      FOO: foo
      BAR: bar
      BAz: baz


events

▼ eventBridge

Lambda関数に紐付けて作成するEventBridgeを設定する。

*実装例*

イベントパターンとして、.jsonファイルを読み込む

functions:
  main:
    events:
      - eventBridge:
          pattern: ${file(./event_bridge/patterns/pattern.json)}

▼ sqs

Lambda関数に紐付けるSQSを設定する。

新しくSQSを作成できず、既存のSQSと紐付ける動作しかないことに注意する。

*実装例*

functions:
  main:
    events:
      - sqs:arn:aws:sqs:region:<AWSアカウントID>:prd-foo-queue


image

▼ name

Lambda関数で使用するイメージのエイリアスを設定する。

*実装例*

functions:
  main:
    image:
      name: base


maximumRetryAttempts

Lambda関数の再試行回数を設定する。

*実装例*

functions:
  main:
    maximumRetryAttempts: 1


memorySize

Lambda関数のメモリサイズを設定する。

*実装例*

functions:
  main:
    memorySize: 512


name

Lambda関数の名前を設定する。

*実装例*

functions:
  main:
    name: <Lambda関数名>


role

Lambda関数に紐付けるIAMロールを設定する。

*実装例*

別にresources.Resourcesを使用して作成したIAMロールを設定する。

functions:
  main:
    role: !GetAtt LambdaRole.Arn


runtime

Lambda関数で使用する言語とバージョンを設定する。

*実装例*

functions:
  main:
    runtime: <使用する言語バージョン>


05. package

packageとは

作成されるアーティファクトのパスを設定する。


patterns

*実装例*

package:
  patterns:
    - ./bin/**


06. provider

providerとは

Serverless Frameworkで操作するクラウドインフラベンダーを設定する。

ベンダーでのアカウント認証のため、認証情報を渡す必要がある。


ecr

▼ scanOnPush

*実装例*

provider:
  ecr:
    scanOnPush: "true"

▼ images

Lambda関数のベースイメージを指定し、エイリアスを付ける。

名前は全て小文字である必要がある。

*実装例*

provider:
  ecr:
    images:
      base:
        uri: <イメージリポジトリURL>@<バージョンタグ> # <AWSアカウントID>.dkr.ecr.ap-northeast-1.amazonaws.com/<イメージリポジトリ名>:latest


eventBridge

▼ useCloudFormation

EventBridgeをCloudFormationで作成するか否かを設定する。

provider:
  eventBridge:
    useCloudFormation: "true"


lambdaHashingVersion

Lambda関数のハッシュバージョンを設定する。

*実装例*

provider:
  lambdaHashingVersion: 20201221


name

クラウドインフラベンダー名を設定する。

*実装例*

provider:
  name: aws


region

クラウドインフラを作成するリージョンを設定する。

provider:
  region: ap-northeast-1


stackName

CloudFormationのスタック名を設定する。

*実装例*

provider:
  stackName: <CloudFormationスタック名>


stage

ステージ名を設定する。

クラウドインフラの実行環境名と考えて良い。

*実装例*

provider:
  stage: <ステージ名>


07. resources

resourcesとは (awsプロバイダーの場合)


IAMロール

IAMロールを作成する。

*実装例*

IAMロールに紐付けるIAMポリシーは、.jsonファイルで切り分けておいた方が良い。

resources:
  Resources:
    LambdaRole:
      Type: AWS::IAM::Role
      Properties:
        RoleName: prd-foo-lambda-role
        Description: The role for prd-foo-lambda
        AssumeRolePolicyDocument: ${file(./iam_role/policies/trust_policies/lambda_policy.json)}
        # インラインポリシー
        Policies:
          - PolicyName: prd-foo-lambda-execution-policy
            PolicyDocument: ${file(./iam_role/policies/custom_managed_policies/lambda_execution_policy.json)}
        # 管理ポリシー
        ManagedPolicyArns:
          - arn:aws:iam::aws:policy/AWSLambdaExecute


08. service

serviceとは (awsプロバイダーの場合)

*実装例*

service: foo-service


09. useDotenv

useDotenvとは

*実装例*

useDotenv: "true"


10. variablesResolutionMode

variablesResolutionModeとは

*実装例*

variablesResolutionMode: null