AWS Lambdaの作成


ここからは枠内の設定をLambdaで実施します。

  • 画面のサービス検索窓から「Lambda」と入力し、AWS lambdaのページに移動

Step1: Lambda関数の作成

  • 左のナビゲーションペインから関数を選択し、画面右の関数の作成をクリック
    • 「一から作成」を選択
    • 基本的な情報
      • 関数名: 任意の関数名
      • ランタイム: Python 3.7
      • 実行ロール: 基本的なLambdaアクセス権限でロールを作成
    • 最後に右下の関数の作成をクリック


Step2: Lambdaの設定

  • 関数コード

    • コードエントリタイプ: Amazon S3からのファイルのアップロード
    • 1.1でコピーした、S3のURLを入力
      • 2つ目に作成したバケット(Lambdaのソースコード格納用)を選択します
      • 例:yyyymmdd-source-username
  • 基本設定

    • メモリ:任意(推奨:1024 MB)
    • タイムアウト:任意(推奨:5分)
  • 実行ロール

    • 既存のロール下の、赤枠(xxxロールを表示します)をクリック

IAMロールの設定

  • ポリシーをアタッチします をクリックし、下記の3つのポリシーを追加でアタッチ
    • TranslateFullAccess
    • AmazonKinesisFirehoseFullAccess
    • ComprehendMedicalFullAccess
  • AWSLambdaBasicExecutionRoleは、もともと付与されています

環境変数の設定

  • 環境変数に下記を入力し、画面右上の保存を入力
    • AccessToken: Twitter DeveloperのAccess Token
    • AccessTokenSecret: Twitter DeveloperのAccess Token Secret
    • ConsumerApiKey: Twitter DeveloperのAPI Key
    • ConsumerApiSecretKey: Twitter DeveloperのAPI Secret key
    • GetHashtag: カンマ(,)区切りで検索したいハッシュタグを入力
      • 記入例: #花粉症
        • (他にも #抗がん剤,#副作用 など試せますが一旦 #花粉症 で試してみましょう)
    • KinesisDataFirehoseName: Kinesis Data Firehoseの名前を入力
    • region: us-east-1
      • ※Comprehend Medicalは2020/1時点では日本では使用できません
    • result_type: mixed を入力
      • popular/recent/mixedのいずれかが使えます
    • word_count: 5 を指定
      • 一回にクロールする任意の数値を入力(50以下を指定)

Step3: トリガーの設定

  • トリガーとしてAmazon CloudWatch Eventsを設定します。
    • 「トリガーを追加」をクリック
      • トリガーの設定
      • トリガーの選択:CloudWatchEvents
      • ルール:新規ルールの作成
      • ルール名:任意のルール名
      • ルールタイプ:スケジュール式
      • スケジュール式:任意(ハンズオンでは、1分ごとにクロールするrate(1 minute)を設定)
      • トリガーの有効化:チェック
    • 上記設定後、画面右下の追加をクリック


Step4: 動作確認

下記のサービスが設定として追加されている事を確認し、赤枠のモニタリングを選択

  • CloudWatch MetricsでAWS Lambdaの実行状況をモニタリングできます。
    • Error count and success rate (%)にて、Errorが出ない事を確認。
      • エラーが出力されている場合は、CloudWatchのログを表示をクリックしてエラー内容を確認。

  • エラーが出ている、または出力されない場合は下記をチェック・実行
    • CloudWatch metricsのリロードボタンを実行
    • Amazon CloudWatch Eventsが有効化されているか確認
    • Amazon CloudWatchのログのError内容を確認し、環境変数が問題ないか確認
    • IAMロールで下記権限が付与されいているか
      • TranslateFullAccess
      • AmazonKinesisFirehoseFullAccess
      • ComprehendMedicalFullAccess

ここまでの作業で枠内の設定が完了