Created
August 28, 2018 11:58
-
-
Save a0viedo/c5d337a8b4d03608c65fe26af0c2bf9d to your computer and use it in GitHub Desktop.
using serverless and AWS Lambda functions
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
'use strict'; | |
const request = require('request-promise'); | |
module.exports.handler = async (event, context) => { | |
console.log('a trigger has been received'); | |
console.log(event, context); | |
try { | |
const result = await request({ | |
url: process.env.API_URL, | |
json: true | |
}); | |
return { | |
statusCode: 200, | |
body: JSON.stringify(result) | |
}; | |
} catch(err) { | |
console.log('There was an error getting the result from API', err); | |
return { | |
statusCode: 500, | |
body: '{"message": "There was an internal error"}' | |
}; | |
} | |
}; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"name": "my-test-lambda", | |
"version": "1.0.0", | |
"description": "", | |
"main": "handler.js", | |
"scripts": { | |
"test": "echo \"Error: no test specified\" && exit 1" | |
}, | |
"keywords": [], | |
"author": "", | |
"license": "ISC", | |
"devDependencies": { | |
"serverless": "^1.30.1" | |
}, | |
"dependencies": { | |
"request": "^2.88.0", | |
"request-promise": "^4.2.2" | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
service: my-test-lambda # NOTE: update this with your service name | |
# You can pin your service to only deploy with a specific Serverless version | |
# Check out our docs for more details | |
# frameworkVersion: "=X.X.X" | |
provider: | |
name: aws | |
runtime: nodejs8.10 | |
profile: aws-beamery-gamma-root | |
stage: ${opt:stage, env:NODE_ENV, "dev"} | |
environment: ${file(./config/env.${self:provider.stage}.yml)} | |
vpc: ${file(./config/vpc.${self:provider.stage}.yml)} | |
# you can overwrite defaults here | |
# stage: dev | |
# region: us-east-1 | |
# you can add statements to the Lambda function's IAM Role here | |
# iamRoleStatements: | |
# - Effect: "Allow" | |
# Action: | |
# - "s3:ListBucket" | |
# Resource: { "Fn::Join" : ["", ["arn:aws:s3:::", { "Ref" : "ServerlessDeploymentBucket" } ] ] } | |
# - Effect: "Allow" | |
# Action: | |
# - "s3:PutObject" | |
# Resource: | |
# Fn::Join: | |
# - "" | |
# - - "arn:aws:s3:::" | |
# - "Ref" : "ServerlessDeploymentBucket" | |
# - "/*" | |
# you can define service wide environment variables here | |
# environment: | |
# variable1: value1 | |
# you can add packaging information here | |
#package: | |
# include: | |
# - include-me.js | |
# - include-me-dir/** | |
# exclude: | |
# - exclude-me.js | |
# - exclude-me-dir/** | |
functions: | |
get-weather: | |
handler: functions/get-weather/index.handler | |
events: | |
- http: | |
path: /v1 | |
method: get | |
# The following are a few example events you can configure | |
# NOTE: Please make sure to change your handler code to work with those events | |
# Check the event documentation for details | |
# events: | |
# - http: | |
# path: users/create | |
# method: get | |
# - s3: ${env:BUCKET} | |
# - schedule: rate(10 minutes) | |
# - sns: greeter-topic | |
# - stream: arn:aws:dynamodb:region:XXXXXX:table/foo/stream/1970-01-01T00:00:00.000 | |
# - alexaSkill: amzn1.ask.skill.xx-xx-xx-xx | |
# - alexaSmartHome: amzn1.ask.skill.xx-xx-xx-xx | |
# - iot: | |
# sql: "SELECT * FROM 'some_topic'" | |
# - cloudwatchEvent: | |
# event: | |
# source: | |
# - "aws.ec2" | |
# detail-type: | |
# - "EC2 Instance State-change Notification" | |
# detail: | |
# state: | |
# - pending | |
# - cloudwatchLog: '/aws/lambda/hello' | |
# - cognitoUserPool: | |
# pool: MyUserPool | |
# trigger: PreSignUp | |
# Define function environment variables here | |
# environment: | |
# variable2: value2 | |
# you can add CloudFormation resource templates here | |
#resources: | |
# Resources: | |
# NewResource: | |
# Type: AWS::S3::Bucket | |
# Properties: | |
# BucketName: my-new-bucket | |
# Outputs: | |
# NewOutput: | |
# Description: "Description for the output" | |
# Value: "Some output value" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment