ictools / env-generator
此包允许您通过从 AWS Secret Manager 获取数据来生成生产中需要的 env 文件
v1.3
2023-07-09 08:57 UTC
Requires
- aws/aws-sdk-php: ^3
- guzzlehttp/psr7: >=2.4.5
- league/flysystem: ^3.2
- vlucas/phpdotenv: ^5.4
Requires (Dev)
- roave/security-advisories: dev-latest
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