LambdaからSNS経由で別Lambdaを起動

SNS(Amazon Simple Notification Service)を利用して「Lambda A」から「Lambda B」を起動する方法を確認します。

作るもの

708-aws-lambda-sns_design.png

LambdaからSNSTopicにメッセージを送信して、別のLambdaを起動します。

SNSの用語

  • Topic
    • 論理アクセスポイント
    • 通信チャネルとして機能
  • Subscription
    • 通知宛先や通知方法の定義
  • pub-sub
    • Publish
      • トピックにメッセージを送信
    • Subscribe
      • トピックを購読
    • Publisher
      • 発行者
    • Subscriber
      • 受信者

Lambda作成

708-aws-lambda-sns_1.png

管理コンソールからLambda関数を2つ作りました。

「sns-publisher」
「sns-subscriber」

SNS

Topicの作成

708-aws-lambda-sns_topic1.png

トピックの作成をクリックします。

708-aws-lambda-sns_topic2.png

今回はTestTopicという名前でトピックを作成します。

Subscriptionの作成

708-aws-lambda-sns_sub1.png

作成したトピックのサブスクリプションを作成します。

708-aws-lambda-sns_sub2.png

プロトコルにLambdaを選択します。

708-aws-lambda-sns_sub3.png

エンドポイントに先ほど作成したLambda関数( sns-subscriber )を選択します。

サブスクリプションの作成をクリックします。

708-aws-lambda-sns_sub4.png

サブスクリプションを作成したことで、Lambda関数( sns-subscriber )のトリガにSNSが表示されるようになりました。

動作確認
( 管理コンソールからPublish )

前準備

Lambda関数( sns-subscriber )の処理を以下のようにします。

exports.handler = async (event) => {
  console.log(JSON.stringify(event, null, 4))
}

確認

708-aws-lambda-sns_test1.png

メッセージの発行をクリックして、トピックへメッセージを発行します。

708-aws-lambda-sns_test2.png

Lambda関数( sns-subscriber )が実行されました。

console.log(JSON.stringify(event, null, 4))の出力結果です。

動作確認
( LambdaからPublish )

前準備

Lambda関数( sns-publisher )の処理を以下のようにします。

const AWS = require('aws-sdk')

exports.handler = async (event) => {
  const params = {
    Message: 'This is test message from sns-publisher.',
    TopicArn: 'arn:aws:sns:ap-northeast-1:XXXXXXXXXXXX:TestTopic'
  }

  const createTopicPromise = new AWS.SNS().publish(params).promise()

  await createTopicPromise.then((data) => {
    console.log('MessageID is ' + data.MessageId)
  }).catch((err) => {
    console.error(err, err.stack)
  })
}
708-aws-lambda-sns_test3.png

Amazon SNSの権限も付与しておきます。

確認

708-aws-lambda-sns_test4.png

Lambda関数( sns-publisher )を実行すると、Topicにメッセージが送信され、Lambda関数( sns-subscriber )が実行されました。

console.log(JSON.stringify(event, null, 4))の出力結果です。

参考

【エンジニア向け】仕事を見つける方法

転職する

転職エージェントを活用する

転職サイトの場合、自身でサイト上から企業を探す必要があります。 一方「レバテックキャリア」 などの転職エージェントの場合、エージェントが企業を紹介してくれます。エージェントが間に入ることにより、日程調整や、条件交渉などもサポートしてくれます。

転職ドラフトを活用する

転職ドラフト」は、 企業がITエンジニアをドラフトという形で指名するサービスです。年収が最初に提示されるなどのメリットがあります。 ただ、初回登録時にレジュメ作成が必要で、すでにエンジニア経験が豊富にあるエンジニア向けのサービスかと思います。 レジュメ作成が手間ですが、自身のキャリアを見直す機会になり、他の仕事探しにも役立つはずです。

エンジニア転職保証のあるスクールを活用する

ある程度、開発経験のあるかたであれば、独学で必要なスキルを身につけることができるはずです。ただ、別業種からエンジニアに転職したい場合など、1から独学で学ぶのはハードルが高いです。そういった方は、スクールの活用を検討しても良いと思います。 「TechAcademy」は、エンジニア転職保証コースを提供しています。給付金制度の対象講座として認定されているため、金銭面の負担も抑えることができます。

フリーランスとして活動する

レバテックフリーランス」「ITプロパートナーズ」「ギークスジョブ」は、フリーランスエージェントサービスです。 エージェントによって、支払いサイトなど細かい違いはありますが、まずは良い案件を見つけることが重要です。 登録自体は無料なので、複数エージェントに登録して、より多くの案件を紹介してもらうのがおすすめです。

logo
わくわくBank.
技術系の記事を中心に、役に立つと思ったこと、整理したい情報などを掲載しています。