ictools/env-generator

此包允许您通过从 AWS Secret Manager 获取数据来生成生产中需要的 env 文件

v1.3 2023-07-09 08:57 UTC

This package is auto-updated.

Last update: 2024-09-09 12:11:31 UTC


README

设想使用此组件的架构是一个部署在 AWS EC2 实例上的 Monorepo

此工具允许您从 AWS Secrets Manager 下载环境变量并将它们添加到您的环境文件中。如果您有多个组件,这将非常有用。

monorepo
├── api                 # An api component
│   ├── env             # If ENV_GENERATOR_SPECIFIC_PATH=env
│   │   └── prod.env    # env-generator will generate this file
│   └── ...             
├── redis               
│   ├── env             # If ENV_GENERATOR_SPECIFIC_PATH=env  
│   │   └── prod.env    # env-generator will generate this file
│   └── ... 
├── ... 
└── .env                # Specify here the environment variables for env-generator

安装

1. 创建一个秘密

  • AWS Secrets Manager 中创建一个秘密
  • 一个秘密中可以有多个密钥/值
  • 秘密名称: 'projectName/env/component/secretName'* ⚠

(*) 例如:mysite/prod/api/top_secret

2. 创建 .env

将此添加到项目的根目录

ENV_GENERATOR_PROJECT_NAME=
ENV_GENERATOR_APP_ENV=
ENV_GENERATOR_AWS_USER_KEY=
ENV_GENERATOR_AWS_USER_SECRET=
ENV_GENERATOR_AWS_REGION=


### Optional ###
# This variable allows you to define a specific path for your .env files
ENV_GENERATOR_SPECIFIC_PATH=

3. 运行

在项目根目录下运行此命令

使用 Docker

docker run --env-file .env -v ${PWD}:/app davidgodefroid/env-generator:v1

或使用 PHP 脚本

composer require ictools/env-generator  
php vendor/ictools/env-generator/src/generate.php