Skip to content

Instantly share code, notes, and snippets.

@mattsan
Created May 19, 2019 00:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mattsan/95577e9f1c0804e201e6da22e48f3f40 to your computer and use it in GitHub Desktop.
Save mattsan/95577e9f1c0804e201e6da22e48f3f40 to your computer and use it in GitHub Desktop.
Serverless を使った Ruby の AWS Lambda のプロジェクト例

Serverless を使った Ruby の AWS Lambda のプロジェクト例

ディレクトリ構成

.
├── handler.rb
├── layers/
│   ├── Gemfile
│   └── Gemfile.lock
├── node_modules/
├── package.json
├── serverless.yml
├── test/
└── yarn.lock
{
"name": "emattsan_sample",
"version": "1.0.0",
"main": "index.js",
"author": "MATSUMOTO EIji <e.mattsan@gmail.com>",
"license": "MIT",
"dependencies": {
"serverless": "^1.42.3",
"serverless-hooks-plugin": "^1.1.0"
}
}
service: emattsan-sample
plugins:
- serverless-hooks-plugin
provider:
name: aws
runtime: ruby2.5
stage: development
region: ap-northeast-1
custom:
hooks:
package:initialize:
- (cd layers && docker run --rm -v $(pwd):/var/task lambci/lambda:build-ruby2.5 bundle install --path vendor/bundle)
package:
exclude:
- test/**
layers:
mygemslayer:
path: layers
name: ${self:service}-${self:provider.stage}-gems
compatibleRuntimes:
- ruby2.5
allowedAccounts:
- '*'
functions:
generate:
handler: handler.generate
layers:
- {Ref: MygemslayerLambdaLayer}
environment:
GEM_PATH: /opt/vendor/bundle/ruby/2.5.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment