これは何?
STG/PRD環境で、AWSアカウントを共有している時、AWS SESの通知ステータスを環境別に振り分ける場合の対処法の一つをメモ
前提
Tips
要件
課題
- メールが発信された環境に応じて、SNSの通知先を振り分けられない
どうしたか?
- Lambda関数サンプルコード
# frozen_string_literal: true require 'json' require 'aws-sdk-sns' def handle_target_sns(event:, context:) // 中略 env = custom_headers_value['X-Env'] sns_topic_arn = sns_topic_arn(env) sns = Aws::SNS::Client.new(region: 'ap-northeast-1') sns.publish(topic_arn: sns_topic_arn, message: event.to_json) { statusCode: 200, body: JSON.generate('Message published to SNS') } end def sns_topic_arn(env) case env when 'staging' ENV.fetch('STG_SNS_TOPIC_ARN', nil) when 'production' ENV.fetch('PRD_SNS_TOPIC_ARN', nil) else raise "Unknown environment: #{env}" end end