第4回
Ansibleのlambdaモジュールを使用して実際にLambdaを構築してみる。
だいぶ間が空いてしまいましたが、一旦やりたいことが完成したのでメモとして各AWSサービス構築の手順を残します。
やりたいこと
- 関数作成
create_lambda.yml作成
事前準備として、関数コード(index.js)を圧縮してzipファイルを作成しています。
また変数化できる部分はvars_filesにまとめています。
またS3bucket名を関数コードの中で指定していますが、汎用的に作るためにenvironment_variablesを使用するようにしました。
- 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の構築部分でやりたいと思います。