背景
FSxのステータス変更に関する通知を設定して、任意の数の Amazon FSx ファイルシステムのステータスを効率的に監視するための手順を検証する。
最小容量のストレージで作成し、ステータスが異常の場合、メール通知する仕組みを考えて、手順を残していきたいと思います。
前提条件
・検証用ファイルシステムが構築済みであること(OpenZFSの64 GiB)
・下記のAmazon SNSが作成されていること
①メール通知用トSNSピック作成しておく
②サブスクリプションに通知用メールアドレスを登録しておく
手順
1.関数の作成(Python3.12)
Lambda関数ロール事前に作成しておく(作成手順を割愛します。)
下記の環境変数を作成する
キー:LambdaSNSTopic 値:事前に作成したメール通知用トSNSピックのARN
Lambda関数のコードは以下の通りです。
import json
import boto3
import os
def lambda_handler(event, context):
LAMBDASNSTOPIC = os.environ['LambdaSNSTopic']
fsx = boto3.client('fsx')
filesystems = fsx.describe_file_systems()
for filesystem in filesystems.get('FileSystems'):
status = filesystem.get('Lifecycle')
filesystem_id = filesystem.get('FileSystemId')
sns_client = boto3.client('sns')
if status != 'AVAILABLE':
print("The file system: {} needs attention.".format(filesystem_id))
sns_client.publish(TopicArn=LAMBDASNSTOPIC,Message="File System: " + filesystem_id + " needs attention. The status is: " + status, Subject = "FSx Health Warning!")
else:
print("The file system: {} is in a healthy state, and is reachable and available for use.".format(filesystem_id))
2.Lambda関数の実行方法(通常運用時)
Amazon EventBridge ルールを作成し、
スケジュールパターンで、通常のレートで実行されるスケジュール(10 分ごとなど)でLambda関数を起動するようにルールを作成する(作成方法を割愛します)
3.Lambda関数の実行方法(テスト時)
Lambdaのテスト用イベントJSON を保存し、
コードタブの「Test」をクリックする。
テスト用イベントJSON(ディフォルト)
イベント名:test
実行例