0.0.3 • Published 6 years ago

ec2-spot v0.0.3

Weekly downloads
2
License
MIT
Repository
github
Last release
6 years ago

useage

create ec2Instance

const ec2Spot = require('ec2-spot')
const spotInstance = new ec2Spot(AWSCertificate,SpotInstanceConfig,startUpCommand,webHookEndpoints)

start

spot.launch(function (err, result) {
  console.log(err)
  console.log(JSON.stringify(result, null, 2))
})

terminate

spot.terminate(function () {
  process.exit(0)
})

configs

configrequiredetc
AWSCertificatetruehttp://docs.amazonaws.cn/en_us/AWSJavaScriptSDK/latest/AWS/EC2.html
SpotInstanceConfigtruehttp://docs.amazonaws.cn/en_us/AWSJavaScriptSDK/latest/AWS/EC2.html#requestSpotInstances-property
startUpCommandfalse
webHookEndpointsfalse

ec2 spot instance config example

//AWSCertificate
{
  "accessKeyId": "",
  "secretAccessKey":"",
  "region": ""
}

//SpotInstanceConfig
{
  "LaunchSpecification": {
    "IamInstanceProfile": {
      Arn: ""
    },
    "ImageId": "",
    "InstanceType": "",
    "KeyName": "",
    "SecurityGroupIds": []
  },
  "SpotPrice": "",
  "Type": ""
}

let cmd = []
cmd.push(`#!/bin/bash`)
cmd.push(`git clone -b develop https://${config.id}:${config.passwd}@bitbucket.org/${config.group}/${config.project}.git`)
cmd.push(`cd ${config.project}`)
cmd.push(`npm install`)
cmd.push(`node run`)
//startUpCommand
{
  cmd: cmd.join('\n')
}

//webHookEndpoints
{
  create: {
    url: `${config.startWebhookUrl}`
  },
  terminate: {
    url: `${config.endWebhookUrl}`
  }
}