はじめに
ぐぐってもサンプルがでてこなくて、公式ページ見ながら作成したのでメモ。
いくつもLambda関数を作成しており、マネジメントコンソールで手動で作成するのが面倒なため、CloudFormationでコピペでできるように作成。
テンプレート(yaml)
Lambdaで実行時間が3秒を超えたときのアラーム。
1分の間に実行時間の最大値が3秒以上の回数が1回を超えたときにアラームをだす。
SNSにアラーム情報を送っている。
AWSTemplateFormatVersion: 2010-09-09
Resources:
sample:
Type: 'AWS::CloudWatch::Alarm'
Properties:
Namespace : AWS/Lambda
AlarmName : lambda-duration-alarm-sample # アラーム名(自由に設定する)
AlarmActions :
- arn:aws:sns:ap-northeast-1:123456789012:sns-alerm # アラーム時に実行するSNSのarn(必須ではない)
MetricName : Duration # 実行時間なのでDurationを指定
ComparisonOperator : GreaterThanOrEqualToThreshold # 以上を表す
EvaluationPeriods : 1 # 閾値を何回超えたときにアラーム状態にするか
Period : 60 # 60秒
Statistic : Maximum # 最大値
Threshold : 3000 # 3秒(ミリ秒指定)
Dimensions :
- Name : FunctionName
Value : sample-lambda
指定できる値
MetricName
メトリクス名を指定する。
AWSリソースにより指定する値が異なる。
メトリクスの作成画面のメトリクス名から指定できる値が見れる。
呼び出し回数でアラームを設定したい場合は、「Invocations」を指定する。
ComparisonOperator
指定する値 | 意味 |
---|---|
GreaterThanOrEqualToThreshold | 以上 |
GreaterThanThreshold | より大きい |
LessThanOrEqualToThreshold | 以下 |
LessThanThreshold | より低い |
Statistic
指定する値 | 意味 |
---|---|
Average | 平均 |
Maximum | 最大値 |
Minimum | 最小値 |
SampleCount | サンプル数 |
Sum | 合計 |
Dimensions
公式ページ見ても指定の仕方がわかりませんでした。
マネジメントコンソールで作成画面を表示して設定しました。
サンプルの例だと下記の箇所を見ました。
上記のようなときは、Dimensionsは下記のように複数設定する。
AWSTemplateFormatVersion: 2010-09-09
Resources:
・・・(省略)
Dimensions :
- Name : TableName
Value : sampletable
- Name : Operation
Value : Query
最後に
CloudFormationをバリバリコーディングできる人がいるとしたらすごいなぁと思います。
1行定義するにも調べながら書いていて苦労しています。