[英]Update data in Google Cloud Secret Manager using Node.js
我在 Google Cloud Secret Manager 中有一些数据,有什么方法可以更新这些数据。 我正在尝试使用以下代码进行更新
client.updateSecret({
secret: {
name: 'projects/xyz/secrets/test',
labels: {
secretmanager: 'rocks',
},
},
updateMask: {
paths: ['labels'],
},
}).then(res => {
let [data] = res
console.log('success in updating', data)
}).catch(rej => {
console.log('erro in updating', rej)
})
Secret Manager 中的数据存储在 Secret Version 上。
一个Secret包含 0 个或多个Secret Versions 。 Secret Versions是不可变的,所以你不能更新里面的值。 但是,您可以添加新的Secret Version 。 这将创建一个新的秘密版本并更新“最新”指针的值:
const [version] = await client.addSecretVersion({
parent: parent,
payload: {
data: myNewPayload,
},
});
有关版本控制的更多信息,请查看:
您可以使用此“Node.js”示例代码作为参考来更新 Google Cloud Secret Manager 中的数据。
/**
* TODO(developer): Uncomment these variables before running.
*/
// const name = 'projects/my-project/secrets/my-secret';
// Imports the Secret Manager library
const {SecretManagerServiceClient} = require('@google-cloud/secret-manager');
// Instantiates a client
const client = new SecretManagerServiceClient();
async function updateSecret() {
const [secret] = await client.updateSecret({
secret: {
name: name,
labels: {
secretmanager: 'rocks',
},
},
updateMask: {
paths: ['labels'],
},
});
console.info(`Updated secret ${secret.name}`);
}
updateSecret();
有关更多信息,请参阅此文档。
假设秘密已经存在,您需要创建一个秘密版本来更新秘密数据。 这是我使用的方法。
const { SecretManagerServiceClient } = require('@google-cloud/secret-manager');
const client = new SecretManagerServiceClient()
const parent = 'projects/YOUR_PROJECT'
async function addSecretVersion(secretName, payload) {
if (typeof payload != 'string') throw `Secret payload must be a string`
const [version] = await client.addSecretVersion({
parent: `${parent}/secrets/${secretName}`,
payload: {
data: Buffer.from(payload, 'utf8'),
},
})
console.info(`Added secret version ${version.name}`)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.