Lambdaサンプルソース

Lambda + GlueのCrawlerの実行(StepFunctions向け)

前説

前回のサンプルソースが取り組んでみたら、かなりの大物になったので、今回は記述量少なめなシンプルなパターンです。最近、StepFunctionsはGlueとの連携をサポートしはじめたようですが、Crawlerの実行には対応していなかったようなので、LambdaからCrawlerを起動するサンプルソースを掲載します。

個人的な嗜好としては、Glueのジョブを使うパターンが少な目なので、ちょっと残念なアップデートでした。

「Glue(Crawler)から、Athenaで集計する。」をStepFunctionsでバッチ化するパターンが、今のところ実務では多めです。
AWS利用料も、Glueジョブ使うより安いのでオススメです。

本投稿から、しばらくStepFunction絡みで、自分が使う再利用可能なLambda達を書いていこうかな?と思ってます。

githubにて公開

Lambda+Glue(Crawler実行)のサンプルソースです。ダウンロードは下記より。https://github.com/SyoAwsBlog/ShoLambdaSample08

  • 環境変数で対象のCrawlerが指定可能
  • GlueのCrawlerを実行す

などの仕様を盛り込んでいます。

ここ最近のサンプルソースの中では、「サンプルらしい!」と言えるほどシンプル機能(笑

利用可能な環境変数

変数名変数値
LogLevelログの出力レベルを(0~4)までの間で設定する
TargetCrawlerName対象のCrawler名

概要

今回は、久しぶりにサンプル1のソースを雛形としています。

今回は、特に難しい事もなく、

  • 環境変数から対象のCrawler名を取得してパラメータを生成する
  • Crawlerを実行する

ただ、それだけです。

主要な基底処理

今回は、getTasksを末端のクラスでオーバーライドしてますが、処理の流れを説明します。

  GlueCrawlerSubmitModule.prototype.AbstractBaseCommon.getTasks = function (
    event,
    context
  ) {
    var base = GlueCrawlerSubmitModule.prototype.AbstractBaseCommon;
    try {
      base.writeLogTrace("GlueCrawlerSubmitModule# getTasks :start");

      return [this.beforeMainExecute, this.businessMainExecute];
    } catch (err) {
      base.printStackTrace(err);
      throw err;
    } finally {
      base.writeLogTrace("GlueCrawlerSubmitModule# getTasks :end");
    }
  };
  • beforeMainExecute ・・・ 起動引数の返却
  • businessMainExecute ・・・ パラメータの生成&Crawlerの実行

複雑な処理もないし、パラメータ作って、AWSのAPI実行するだけなので、初学向き・・・ですかね。

あとがき

比較的重たいサンプルソースが続いたので、ライトな感じで行数少な目なサンプルソースです。

しばらくは、StepFunctionsから呼び出して使う系のLambdaシリーズを続けようかと思います。

 

 

スポンサーリンク

-Lambdaサンプルソース
-, , , , ,