From 1139ff97618a4968db89275ce8037c6a7bf460de Mon Sep 17 00:00:00 2001 From: thomasabishop Date: Fri, 1 Sep 2023 08:23:04 +0100 Subject: [PATCH] aws: add example of getting value from Secrets Manager --- .../Accessing_secrets_from_a_Lambda.md | 2 + .../Fetch_from_Secrets_Manager.md | 38 ++++++++++++++++++- 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/DevOps/AWS/AWS_Lambda/Accessing_secrets_from_a_Lambda.md b/DevOps/AWS/AWS_Lambda/Accessing_secrets_from_a_Lambda.md index 8231c09..35d11b0 100644 --- a/DevOps/AWS/AWS_Lambda/Accessing_secrets_from_a_Lambda.md +++ b/DevOps/AWS/AWS_Lambda/Accessing_secrets_from_a_Lambda.md @@ -35,4 +35,6 @@ Here is an example of a resource permission giving access to a Lambda: } ``` +See [Fetch from Secrets Manager](/DevOps/AWS/AWS_Lambda/Code_examples/Fetch_from_Secrets_Manager.md) for a code example of retrieving a value from Secrets Manager. + // TODO: Add link to code example diff --git a/DevOps/AWS/AWS_Lambda/Code_examples/Fetch_from_Secrets_Manager.md b/DevOps/AWS/AWS_Lambda/Code_examples/Fetch_from_Secrets_Manager.md index 737781e..2914009 100644 --- a/DevOps/AWS/AWS_Lambda/Code_examples/Fetch_from_Secrets_Manager.md +++ b/DevOps/AWS/AWS_Lambda/Code_examples/Fetch_from_Secrets_Manager.md @@ -1,3 +1,39 @@ -// TODO: Add example code of retrieving a value from SecretsManager +--- +categories: + - DevOps +tags: [AWS, backend] +--- + +# Fetch from Secrets Manager + +## TypeScript + +```ts +const getSecret = async (): Promise => { + const secretsManager = new AWS.SecretsManager(); + const response = await secretsManager + .getSecretValue({ SecretId: process.env.SECRET_ARN as string }) + .promise(); + const secretValues = JSON.parse(response.SecretString as string); + + if (secretValues) { + return { + accessToken: secretValues.POCKET_ACCESS_TOKEN, + consumerKey: secretValues.POCKET_CONSUMER_KEY, + }; + } else { + throw new Error("Failed to return Pocket credentials"); + } +}; + +type SomeCredentials = { + accessToken: string; + consumerKey: string; +}; +``` // TODO: Add example of deferring to local env var + +## Python + +// TODO: Add Python example