Configuration file switching based on environment variables
The reason the configuration is extracted from the code is to better adapt to changes. Usually our applications have different operating environments such as development environment and production environment. Certain configurations of these applications will definitely be different, such as the address of the configuration center.
If the configuration of all environments is placed in the same file, it is very difficult to manage. After receiving new requirements, we need to change the parameters in the configuration file to the development environment when developing the development environment. You have to change it back. It’s very easy to make mistakes.
The solution to the above problem is to distinguish the current running environment through environment variables, and switch between different configuration files through environment variables. The corresponding environment variable in APISIX is: APISIX_PROFILE
When APISIX_PROFILE
is not set, the following three configuration files are used by default:
- conf/config.yaml
- conf/apisix.yaml
- conf/debug.yaml
If the value of APISIX_PROFILE
is set to prod
, the following three configuration files are used:
- conf/config-prod.yaml
- conf/apisix-prod.yaml
- conf/debug-prod.yaml
Although this way will increase the number of configuration files, it can be managed independently, and then version management tools such as git can be configured, and version management can be better achieved.