Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8936

Cloud Functions(Node.js)でberglasのsm://形式の秘密情報を展開する方法

$
0
0
本文 Cloud Runでは sm://<project_id>/<secret_name> の形式で環境変数をセットして起動すれば自動的にSecretManagerから秘密情報を取得して展開してくれます。(言語不問) 同様の機能がCloud Functionsにもあったらいいなと思ったんですが、Go言語版のみしかサポートされていなかったので、Node.js版を作成しました。 const { SecretManagerServiceClient } = require('@google-cloud/secret-manager'); async function resolveSecret(element) { const client = new SecretManagerServiceClient(); const [, , projectId, secretName] = element.split('/'); const name = `projects/${projectId}/secrets/${secretName}/versions/latest`; const [version] = await client.accessSecretVersion({ name: name, }); return version.payload.data.toString(); } async function substituteSecrets() { const resolved = await Promise.all( Object.entries(process.env) .filter(([_, element]) => element.startsWith('sm://')) .map(async ([key, element]) => [key, await resolveSecret(element)]) ); for (const [key, element] of resolved) { process.env[key] = element; } } 参考 https://github.com/GoogleCloudPlatform/berglas https://www.npmjs.com/package/@google-cloud/secret-manager

Viewing all articles
Browse latest Browse all 8936

Trending Articles