
# 简介 #
欢迎使用京东云开发者Node.js工具套件
(Node.js SDK
)。使用京东云Node.js SDK
,您无需复杂编程就可以访问京东云提供的各种服务。
为了方便您理解SDK中的一些概念和参数的含义
,使用SDK前建议您先查看
京东云OpenAPI使用入门。要了解每个API的具体参数和含义
,请参考程序注释或参考OpenAPI&SDK下具体产品线的API文档。
# 环境准备 #
1.京东云Node.js SDK适用于Node.js 8.6.0及以上
,npm 5.6.0及以上。
2.在开始调用京东云open API之前
,需提前在京东云用户中心账户管理下的
AccessKey管理页面申请accesskey和secretKey密钥对
(简称AK/SK
)。AK/SK信息请妥善保管
,如果遗失可能会造成非法用户使用此信息操作您在云上的资源
,给你造成数据和财产损失。
# SDK使用方法 #
建议使用npm安装京东云Node.js SDK
,如下所示
:
npm install jdcloud-sdk-js
您还可以下载sdk源代码自行使用
,源代码地址。
SDK使用中的任何问题
,欢迎您在
SDK使用问题反馈页面交流。
注意:京东云并没有提供其他下载方式,请务必使用上述官方下载方式!
# 调用SDK #
## 两种引用方式 ##
var JDCloud = require('jdcloud-sdk-js');
这种引用方式会加载所有的可用的services
var NC = require('jdcloud-sdk-js/services/nativecontainer');
这种引用方式只会加载用到的service
,此时仍然可以使用var JDCloud = require('jdcloud-sdk-js/global')来引用JDCloud对象
## 配置方法 ##
对JDCloud的配置为通用配置
,所有services共享配置:
JDCloud.config.update({//
配置项//});
对某个service的配置会覆盖通用配置
:
var NC = require('jdcloud-sdk-js/services/nativecontainer');
var nc = new NATIVECONTAINER({//
配置项//});
## 配置项 ##
let config = {
credentials: {
accessKeyId: global.accessKeyId, secretAccessKey: global.secretAccessKey
},
regionId: 'cn-north-1' //地域信息
,某个api调用可以单独传参regionId
,如果不传则会使用此配置中的regionId
}
## 调用示例 ##
以下是查询单个云主机实例详情的调用示例
### 引用和配置 ###
var VM = require('jdcloud-sdk-js/services/vm')
var vm = new VM({
credentials: {
accessKeyId: global.accessKeyId,
secretAccessKey: global.secretAccessKey
},
regionId: 'cn-north-1'
})
### Promise方式调用 ####
vm.createInstances({
instanceSpec: {
instanceType: 'g.s1.micro',
az: 'cn-north-1a',
imageId: '98d44a0f-88c1-451a-8971-f1f769073b6c',
name: 'node-sdk-test',
elasticIp: {
bandwidthMbps: 2, provider: 'BGP'
},
primaryNetworkInterface: {
networkInterface: {
subnetId: 'subnet-3dm13k30gh',
az: 'cn-north-1a'
}
},
systemDisk: {
diskCategory: 'local'
},
description: 'sdk'
},
maxCount: 1
},'cn-north-1').then(function(data){ // 返回数据处理 data
},
function(e){ // 调用API失败
,错误处理
})
### callback方式调用 ###
vm.createInstances({
instanceSpec: {
instanceType: 'g.s1.micro',
az: 'cn-north-1a',
imageId: '98d44a0f-88c1-451a-8971-f1f769073b6c',
name: 'node-sdk-test',
elasticIp: {
bandwidthMbps: 2,
provider: 'BGP'
},
primaryNetworkInterface: {
networkInterface: {
subnetId: 'subnet-3dm13k30gh',
az: 'cn-north-1a'
}
},
systemDisk: {
diskCategory: 'local'
},
description: 'sdk'
},
maxCount: 1
},'cn-north-1',
function(err, data){
if(err){ // 调用API失败
,错误处理
}
else { // 返回数据处理 data
}
})
如果需要设置访问点,配置超时,额外请求头等,请参考如下更复杂的例子:
var nc = new NATIVECONTAINER({ credentials: { accessKeyId: global.accessKeyId, secretAccessKey: global.secretAccessKey }, endpoint: { host: 'nativecontainer.internal.cn-north-1.jdcloud-api.com', //指定非默认Endpoint protocol: 'http' //设置使用HTTP而不是HTTPS,vpc专用域名不支持HTTPS }, 'x-extra-header': { //指定额外header "x-jdcloud-security-token" : "xxx", //要调用开启了MFA操作保护的接口需要传递 "x-jdcloud-content-sha256" : "xxx", //body过大,希望用此value替代对body进行哈希的过程 "MyOwn" : "xxx" }, version: { nativecontainer: 'v1' } })
更多调用示例参考
SDK使用Demo