Edited at

MAC環境にAnsible導入後、AWSサービス構築までの道〜④Lambdaモジュール〜

第4回

Ansibleのlambdaモジュールを使用して実際にLambdaを構築してみる。

だいぶ間が空いてしまいましたが、一旦やりたいことが完成したのでメモとして各AWSサービス構築の手順を残します。


やりたいこと


  1. 関数作成


create_lambda.yml作成

事前準備として、関数コード(index.js)を圧縮してzipファイルを作成しています。

また変数化できる部分はvars_filesにまとめています。

またS3bucket名を関数コードの中で指定していますが、汎用的に作るためにenvironment_variablesを使用するようにしました。


create_lambda.yml

- name: Create Lambda functions

lambda:
name: "{{ prefix }}-{{ project_name }}"
aws_access_key: "{{ key }}"
aws_secret_key: "{{ secret }}"
region: "{{ region_east }}"
memory_size: 256
timeout: 30
description: "{{ prefix }}-{{ project_name }}"
handler: 'index.handler'
runtime: 'nodejs6.10'
role: "arn:aws:iam::{{ account_id }}:role/service-role/testRole"
zip_file: 'roles/Lambda/files/index.zip'
environment_variables:
prefix: "{{ prefix }}"
project_name: "{{ project_name }}"


実行

以下コマンドにて実行。

「-vvv」をつけることで、詳細な実行ログが出力されます。

エラーが出ている際など、非常に助かるので常にオプション付与して実行しています!

ansible-playbook -vvv -i localhost, -c local create_lambda.yml


マネージメントコンソール確認

Lambda関数が作成されていることを確認。


感想

モジュールが提供されていることで、思ったより簡単に構築が完了できました。

関数コードの読み込みをS3からしようと試みましたが、時間がかかってしまい、今回は時間がなくて断念しました…


残タスク

今回、S3+Lambda+API Gateway+CloudFrontでServerlessな環境を構築しようと考えています。

そのためAPI GatewayからLambdaをコールしてもらうようにするために、トリガーにAPI Gatewayを設定する必要があります。

こちらの設定は次回のAPI Gatewayの構築部分でやりたいと思います。