kobayashi-m42 / aws-env-creator

Create an env file from AWS Secrets Manager.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

aws-env-creator

npm version Build Status Coverage Status

Create an env file from AWS Secrets Manager.

Getting Started

Install npm package

yarn

yarn add @nekonomokochan/aws-env-creator

npm

npm install --save @nekonomokochan/aws-env-creator

Set up AWS credentials

Please set credentials using AWS CLI.

The following is the setting procedure in MacOS.

  1. brew install awscli
  2. aws configure --profile YOUR_PROFILE_NAME
AWS Access Key ID [None]: `YOUR_AWS_ACCESS_KEY_ID`
AWS Secret Access Key [None]: `YOUR_AWS_SECRET_ACCESS_KEY`
Default region name [None]: ap-northeast-1
Default output format [None]: json
  • Be sure to set the profile name.
  • The access key must also have at least the following permissions.
    • secretsmanager:ListSecrets
    • secretsmanager:DescribeSecret
    • secretsmanager:GetSecretValue
    • kms:Decrypt

How To Use

Use With TypeScript

import { createEnvFile, EnvFileType, AwsRegion } from "@nekonomokochan/aws-env-creator";

(async () => {
  const params = {
    type: EnvFileType.dotenv,
    outputDir: "./",
    secretIds: ["dev/app"],
    profile: "nekochans-dev",
    region: AwsRegion.ap_northeast_1
  };

  await createEnvFile(params);
})();

.env is created in your current directory.

Use With JavaScript

(async () => {
  "use strict";

  const awsEnvCreator = require("@nekonomokochan/aws-env-creator");

  const params = {
    type: ".env",
    outputDir: "./",
    secretIds: ["dev/app"],
    profile: "nekochans-dev",
    region: "ap-northeast-1"
  };

  await awsEnvCreator.createEnvFile(params);
})();

.env is created in your current directory.

Set an environment variable with an arbitrary key name

Assume that the following information is registered in your AWS Secret Manager.

{
  "ANOTHER_API_KEY": "another_api_key",
  "ANOTHER_API_SECRET": "another_api_secret"
}

When this code is executed, .envrc is created with the following contents.

(async () => {
    const params = {
      type: EnvFileType.direnv,
      outputDir: "./",
      secretIds: ["dev/app"],
      profile: "nekochans-dev",
      region: AwsRegion.ap_northeast_1,
      keyMapping: {
        ANOTHER_API_KEY: "AWS_API_KEY",
        ANOTHER_API_SECRET: "AWS_API_SECRET"
      }
    };

    await createEnvFile(params);
})();
export AWS_API_KEY=another_api_key
export AWS_API_SECRET=another_api_secret

Optionally set optional parameters

Use With TypeScript

import { createEnvFile, EnvFileType, AwsRegion } from "@nekonomokochan/aws-env-creator";

(async () => {
  const params = {
    type: EnvFileType.dotenv,
    outputDir: "./",
    secretIds: ["dev/app"],
    profile: "nekochans-dev",
    region: AwsRegion.ap_northeast_1,
    addParams: { APP_URL: "http://localhost/3000" }
  };

  await createEnvFile(params);
})();

Use With JavaScript

(async () => {
  "use strict";

  const awsEnvCreator = require("@nekonomokochan/aws-env-creator");

  const params = {
    type: ".env",
    outputDir: "./",
    secretIds: ["dev/app"],
    profile: "nekochans-dev",
    region: "ap-northeast-1",
    addParams: { APP_URL: "http://localhost/3000" }
  };

  await awsEnvCreator.createEnvFile(params);
})();

The following file will be output.

{
  "ANOTHER_API_KEY": "another_api_key",
  "ANOTHER_API_SECRET": "another_api_secret",
  "APP_URL": "http://localhost/3000"
}

A description of the parameter

parameter description value
type The type of file to output Enum .env .envrc
outputDir Output path String
secretIds Your AWS Secrets Manager ID String[]
profile Your AWS CLI Credentials Name String
region The region where your AWS Secrets Manager is located String
keyMapping Key Mapping Object Object
addParams Additional Parameters Object

License

MIT

About

Create an env file from AWS Secrets Manager.

License:MIT License


Languages

Language:TypeScript 100.0%