SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

池澤あやかさんにお願い! AWS Summit Tokyo 2015「デベロッパーカンファレンス」を盛り上げるアプリを一緒につくってください!

【制作2日目】池澤あやかさん、イベント会場中のスマホが振られた量を集計する処理に挑む、もちろん処理はイベントドリブンで ~ AWS Lambda登場

池澤あやかさんにお願い!AWS Summit Tokyo 2015「デベロッパーカンファレンス」を盛り上げるサービスを一緒につくってください! 第2回


  • X ポスト
  • このエントリーをはてなブックマークに追加

IAMロールを作成する

西谷:

AWS Lambdaでは、Lambda関数として実行するコードをJavaScriptで書きます。このLambda関数の実行にあたり、IAMロールを作成する必要があります。

西谷:

IAMロールにはLambda関数が処理を実行するために必要な権限を与えます。今回は、Lambda関数を起動する権限とAmazon Kinesisからデータを取得する権限、Lambda関数内でログを出力し、Amazon DynamoDBに集計値を書き込むので、そのための権限を設定します。

池澤:

はい。

まずは隣に座っている西谷先生の説明を聞きます
まずは隣に座っている西谷先生の説明を聞きます

 

西谷:

マネージメントコンソール[2]で「Administration & Security」の「Identity & Access Management」を選択します。

[Roles]を選択して、[Create New Role]をクリックしてください。

IAMロールの作成

 

[Role Name]にIAMロール名を入力して[Next Step]をクリックします。

[Select Role Type]では、「AWS Service Roles」を選択し、「AWS Lambda」の[Select]をクリックしてください。

ロールの種類の選択

 

池澤:

はい、クリック。あ、ポリシーがたくさん表示されました。

西谷:

[Attach Policy]では、何も選択せずに[Next Step]をクリックして、ロールの概要が表示されたら[Create Role]をクリックします。

ロールに設定するポリシーの選択

 

池澤:

ロールの一覧にIAMロールが追加されてます。

西谷:

続いて、作成したIAMロールを選択し、詳細画面を開いてください。[Permissions]の[Inline Policies]をクリックして開きます。その中に記載されている[click here]とあるリンクをクリックします。

ロール情報

 

[Set Permissions]では[Policy Generator]を選択して[Select]をクリックします。

Policy Generatorの選択

 

[Edit Permissions]で、どのリソースにどのようなアクションを許可するかを設定していきます。

まず、Amazon Kinesisです。

  • [Effect]では[Allow]
  • [AWS Service]では「Amazon Kinesis」
  • [Actions]では「DescribeStream」「ListStreams」「GetShardIterator」「GetRecords」

を選択し、[Amazon Resource Name (ARN) ]は作成したストリーム名をARN形式(arn:aws:kinesis:<リージョン名>:<アカウントID>:stream/<ストリーム名>)で指定します。最後に[Add Statement]をクリックしてください。

Add Statement
Add Statement

 

同様の手順で、Amazon DynamoDBへの書き込みを許可する設定を行います。

  • [Effect]では[Allow]
  • [AWS Service]では「Amazon DynamoDB」
  • [Actions]では「PutItem」「UpdateItem」

を選択し、[Amazon Resource Name (ARN) ]は作成したテーブル名をARN形式(arn:aws:dynamodb:<リージョン名>:<アカウントID>:table/<ストリーム名>)で指定し、[Add Statement]をクリックしてください。

続いて、「Lambda関数の実行権限」と「Lambda関数内からのログ出力のための権限」を追加します。

まず、以下のようにします。

  • [Effect]では[Allow]
  • [AWS Service]では「AWS Lambda」
  • [Actions]では「InvokeFunction」
  • [Amazon Resource Name (ARN) ]は「*」

[Add Statement]をクリックして追加したら、続けて、

  • [Effect]では[Allow]
  • [AWS Service]では「Amazon CloudWatch Logs」
  • [Actions]では「CreateLogGroup」「CreateLogStream」「PutLogEvents」
  • [Amazon Resource Name (ARN) ]は「*」

として、[Add Statement]をクリックします。最後に[Next Step]をクリックします。

Next Stepをクリック

 

[Review Policy]の画面では、選択した内容をもとにしたポリシーが作成されています。その内容を確認して、[Apply Policy]をクリックします。

Apply Policy

 

池澤:

はい。できました!

[1] IAMロールの詳細は、本稿の最終ページをご覧ください。

[2] 取材時には英語表示のみでしたが、4月22日より、AWSマネージメントコンソールは日本語表示も可能になりました

次のページ
Lambda関数を作成する

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
池澤あやかさんにお願い! AWS Summit Tokyo 2015「デベロッパーカンファレンス」を盛り上げるアプリを一緒につくってください!連載記事一覧

もっと読む

この記事の著者

坂井 直美(サカイ ナオミ)

SE、通信教育講座の編集、IT系出版社の書籍編集を経てフリーランスへ。IT分野で原稿を書いたり編集したり翻訳したり。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8643 2015/07/13 22:12

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング