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
ここまでの作業で枠内の設定が完了
