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