我有一个python应用程序,它应该通过AWS管道远程运行,并使用机密获取数据库凭据之类的参数。在本地运行应用程序时,参数是从parameters.json
文件加载的。我的问题是如何远程测试我的运行(因此取代了IN_CLOUD_TEST
):
import boto3
from json import load
if [IN_CLOUD_TEST]:
params_raw = boto3.client('ssm').get_parameters_by_path(Path='/', Recursive=True)['Parameters']
params = format_params(params)
else:
with open('parameters.txt') as json_file:
params = load(json_file)
我当然可以试一试/除了,但肯定有更好的东西。
发布于 2019-08-13 06:29:51
您可以使用AWS进行检查,但另一种更简单的选择(不需要进行HTTP调用,帮助您减少一些延迟)是在远程服务器上设置一个环境变量,告诉它是生产服务器,并从代码中读取它。
import boto3
from json import load
from os import getenv
if getenv('IS_REMOTE', False):
params_raw = boto3.client('ssm').get_parameters_by_path(Path='/', Recursive=True)['Parameters']
params = format_params(params)
else:
with open('parameters.txt') as json_file:
params = load(json_file)
您还可以应用相同的逻辑,但在服务器应该是测试服务器时定义一个等于true的变量,并在本地测试机器上设置它。
https://stackoverflow.com/questions/57479310
复制相似问题