LoginSignup
0

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-10-10

第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の構築部分でやりたいと思います。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0