in_ec2#
该模块用于在 EC2 实例中被调用, 并 “自省” 发现自己的服务器 ID 并在 AWS Parameter Store 找到对应的配置数据并读取.
注: 该模块只应在 EC2 内被运行, 它需要调用 AWS EC2 metadata API 获得自己的 instance id 从而继续发现自己的服务器 ID, 然后到 AWS Parameter Store 读取配置数据.
Usage:
>>> from acore_server_config.api import get_server
>>> server = get_server()
>>> server
Server(id='sbx-blue', db_admin_password='sbx*dummy4test', db_username='myuser', db_password='sbx*dummy4test')
- acore_server_config.in_ec2.get_server(bsm: BotoSesManager = None, parameter_name_prefix: Optional[str] = None, use_s3: bool = True, use_parameter_store: bool = False, s3folder_config: Optional[str] = None, server_id: Optional[str] = None) Server[source]#
在 EC2 上通过 “自省”, 获得属于这个服务器的配置数据.
配置数据的详细数据结构请参考
acore_server_config.config.define.server.Server.Note
从 0.3.1 开始, 该函数被 Ec2ConfigLoader 和 ConfigLoader 所替代, 该函数仍然保留 但不建议使用.
- Parameters:
bsm – BotoSesManager 实例. 默认使用 EC2 上 IAM Role 所对应的.
parameter_name_prefix – the parameter name prefix, the full name will be ${parameter_name_prefix}-${env_name}.
use_s3 – 是否从 S3 读取配置数据, 默认使用 S3, 因为配置数据可能会很大.
use_parameter_store – 是否从 AWS Parameter Store 读取配置数据
s3folder_config – S3 配置数据的根目录, 默认为 s3://aws_account_id}-{aws_region}-artifacts/projects/acore_server_config/config/
server_id – 强制指定 server_id, 跳过 “自省” 阶段. 常用于测试. 这个 server_id 的格式为: ${env_name}-${server_name}, 例如: sbx-blue