如何在 AWS 上测试进程是否"in cloud"



我有一个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)

我当然可以使用尝试/例外,但一定有更好的东西。

您可以使用 AWS API 进行检查,但更简单的替代方法(并且不需要进行 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,并将其设置在本地测试计算机上。

最新更新