我正在使用一个简单的boto3脚本从我的AWS帐户中的SSM参数存储中检索参数。Python脚本如下所示:
client = get_boto3_client('ssm', 'us-east-1')
try:
response = client.get_parameter(Name='my_param_name',WithDecryption=True)
except Exception as e:
logging.error("retrieve param error: {0}".format(e))
raise e
return response
如果给定的参数不可用,我会在响应中得到一个通用错误,如下所示:
An error occurred (ParameterNotFound) when calling the GetParameter operation: Parameter my_param_name not found.
我已经验证了boto3 ssm文档的方法签名。当param store中不存在参数时,相关AWS API Docs确认返回400响应。
我的问题是,如何验证响应中捕获的异常是否实际上是400状态码,以便我可以相应地处理它。
3条答案
按热度按时间wtzytmuj1#
您可以尝试捕获
client.exceptions.ParameterNotFound
:g0czyy6m2#
捕获异常并不总是一个好主意。对于那些不想使用get-parameters的人,请使用get-parameters,并检查您的参数是否在
InvalidParameters
中:ou6hu8tu3#
你可以通过response ['Error']['Code']查看状态,但是由于400的原因有很多,我推荐一个更好的方法: