【发布时间】:2019-11-19 22:09:02
【问题描述】:
默认情况下,如果您的 Lambda 函数出错,它将自动重试 2 次。我正在处理 Lambda 函数中并非真正错误的某些错误,基本上是如果我正在搜索的 json 不在返回的 json 中,我会记录它没有找到,我希望脚本停止在这一点上,因为他们没有任何事情要做。但是,当我尝试捕获异常时,它会正确记录并退出,但因为它会将其报告为错误,Lambda 会再次运行它。
是我对 sys.exit() 的使用导致了它吗?在第一个示例中我没有尝试/捕获错误,但它会重试。
示例:循环遍历 json 节点,如果找到匹配则分配一个变量,如果它不处理异常并写入 cloudwatch(打印)它没有找到匹配。
while index < result_nodes:
if TL2['message_response']['computers'][index]['resource_name'] == instance_name:
resource_id = TL2['message_response']['computers'][index]['resource_id']
index += 1
index += 1
if resource_id == '':
print('No match found, quitting.')
sys.exit()
另一个类似的用法
instance_name = ''
try:
for tag in response['Reservations'][0]['Instances'][0]['Tags']:
if tag['Key'] == 'Name':
instance_name = tag['Value']
if instance_name == '':
print('EC2 Instance name not set, quitting')
sys.exit()
else:
print('Step 2 - Get Computer Name: ' + instance_name)
except Exception:
print('No tags exist for this terminated EC2 instance, quitting.')
sys.exit()
【问题讨论】:
标签: python aws-lambda