Node.js&TypeScript&lambda環境、aws-sdkを用いて、AWS SecretManagerからシークレットを取得する方法を解説します。
1. aws-sdkをinstall
npm install aws-sdk
2. コードを記述
referSecrets.ts
import * as AWS from "aws-sdk";
export const referSecrets = async () => {
try {
const secretsManager = new AWS.SecretsManager({
region: "ap-northeast-1",
})
const response = await secretsManager.getSecretValue({
SecretId: SECRET_NAME,
}).promise()
return JSON.parse(response.SecretString)
} catch(err) {
return JSON.stringify({err}, null, 2)
}
}
注意点
- requireではなく、importを使用する。
- typeが使用でき、vscodeがメソッドや型を推論してくれます。
- SECRET_NAMEには、シークレット名を記述
- iamroleなどの設定は省いています。
参考