1.0.9 • Published 11 months ago
tencentcloud-ssm-sdk-nodejs-v1 v1.0.9
SSM Rotated Credential SDK For Nodejs
支持平台
- Linux x64(glibc >= 2.17)
- Windows x64
- Mac x64
依赖说明
建议 nodejs >= 12。
使用说明
npm install tencentcloud-ssm-sdk-nodejs-v1
环境变量
SSM_SECURED_ACCESS_KEY_RUNTIME_DEVICE_FINGERPRINT:值为UUID SSM_SECURED_ACCESS_KEY_PROFILE:profile_xxx.json文件的位置(绝对路径 + 文件名) SSM_SECURED_ACCESS_KEY_PROFILE_DECRYPT_KEY_DIR:whitebox.bin文件的位置(绝对路径) SSM_SECURED_ACCESS_KEY_PROFILE_DECRYPT_KEY_NAME:whitebox.bin文件的名字(文件名)
使用流程
- 设置profile 有关参数
- profile = await rc.LoadAccessKeyProfile() ,加载profile 配置信息
- cred = await profile.GetCredential(secretName) 获取认证信息, 如果发生轮转cred中的认证信息会变更
- profile.Close() 关闭定时器
例子:
以调用云产品KMS的GetRegions接口为例
const EnvSsmSecuredAccessKeyProfile = "SSM_SECURED_ACCESS_KEY_PROFILE"
const ssmSdk = require("tencentcloud-ssm-sdk-nodejs-v1")
const tencentcloud = require("tencentcloud-sdk-nodejs");
const KmsClient = tencentcloud.kms.v20190118.Client;
const rc = ssmSdk.rotated_credential
async function main() {
try {
// 子账号和tag的信息
let tagName = "AKSK_XXX"
//指定日志输出到控制台
let log = new rc.ConsoleLogger()
let profile = await rc.LoadAccessKeyProfile(log)
//获取一次即可
let cred = await profile.GetCredential(tagName)
const clientConfig = {
credential: cred,
region: "ap-guangzhou",
profile: {
httpProfile: {
endpoint: "kms.tencentcloudapi.com",
},
},
};
const client = new KmsClient(clientConfig);
const params = {};
let regions = await client.GetRegions(params)
console.log("load regions success", regions)
} catch (e) {
console.log("load cred failed", e)
}
}
main()
COS SDK使用
COS SDK 版本 >= 2.11.17 npm i cos-nodejs-sdk-v5@2.11.17
const EnvSsmSecuredAccessKeyProfile = "SSM_SECURED_ACCESS_KEY_PROFILE"
const ssmSdk = require("tencentcloud-ssm-sdk-nodejs-v1")
const tencentcloud = require("tencentcloud-sdk-nodejs");
// 引入模块
const COS = require('cos-nodejs-sdk-v5');
const rc = ssmSdk.rotated_credential
async function main() {
try {
// 子账号和tag的信息
let tagName = "AKSK_XXX"
//指定日志输出到控制台
let log = new rc.ConsoleLogger()
let profile = await rc.LoadAccessKeyProfile(log)
//获取一次即可,如果发生轮转 密钥信息会自动更新
let cred = await profile.GetCredential(tagName)
// 使用认证信息创建cos实例
var cos = new COS({Credentials: cred});
// 存储桶名称,由bucketname-appid 组成,appid必须填入,可以在COS控制台查看存储桶名称。 https://console.cloud.tencent.com/cos5/bucket
var Bucket = 'test-1250000000';
// 存储桶Region可以在COS控制台指定存储桶的概览页查看 https://console.cloud.tencent.com/cos5/bucket/
// 关于地域的详情见 https://cloud.tencent.com/document/product/436/6224
var Region = 'ap-guangzhou';
// 分片上传
cos.sliceUploadFile({
Bucket: Bucket,
Region: Region,
Key: '1.zip',
FilePath: './1.zip' // 本地文件地址,需自行替换
}, function (err, data) {
console.log(err, data);
});
} catch (e) {
console.log("load cred failed", e)
}
}
main()
腾讯云云函数
某些场景下 腾讯云云函数判断会走到musl
去,但是实际上云函数只支持glibc。可以通过设置环境变量来解决该问题
# 设置该值为非空 则可以使用glibc版本的底层依赖
TENCENT_CLOUD_SERVERLESS = xx