Skip to content

Instantly share code, notes, and snippets.

@crizant
Last active August 15, 2019 02:15
Show Gist options
  • Save crizant/2a230d741cd0f062eab51554370f04a3 to your computer and use it in GitHub Desktop.
Save crizant/2a230d741cd0f062eab51554370f04a3 to your computer and use it in GitHub Desktop.
'use strict'
const aws = require('aws-sdk')
const parser = require('lambda-multipart-parser')
const accessTokenVerifier = require('./accessTokenVerifier')
const response = (statusCode, data) => ({
statusCode,
headers: {
'Content-Type': 'application/json',
'Access-Control-Allow-Origin': '*'
},
body: JSON.stringify(data)
})
exports.handler = async event => {
const decodedToken = accessTokenVerifier(event.headers['Authorization'])
if (!decodedToken) {
return response(401, {
error: 'Please include access token in authorization header.'
})
}
const sagemakerRuntime = new aws.SageMakerRuntime()
const { ENDPOINT_NAME_PREFIX } = process.env
try {
const data = await parser.parse(event)
const result = await sagemakerRuntime
.invokeEndpoint({
Body: data.files[0].content,
EndpointName: ENDPOINT_NAME_PREFIX + decodedToken.username,
ContentType: data.files[0].contentType
})
.promise()
console.log('Result: ', result)
return response(200, result)
} catch (error) {
console.log('Error: ', error)
return response(500, {
error: error.message
})
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment