【发布时间】:2019-12-24 07:53:48
【问题描述】:
import sys
import botocore
import boto3
from botocore.exceptions import ClientError
def lambda_handler(event, context):
# TODO implement
rds = boto3.client('rds')
lambdaFunc = boto3.client('lambda')
print 'Trying to get Environment variable'
try:
funcResponse = lambdaFunc.get_function_configuration(
FunctionName='RDSInstanceStart'
)
#print (funcResponse)
DBinstance = funcResponse['Environment']['Variables']['DBInstanceName']
print 'Starting RDS service for DBInstance : ' + DBinstance
except ClientError as e:
print(e)
try:
response = rds.start_db_instance(
DBInstanceIdentifier=DBinstance
)
print 'Success :: '
return response
except ClientError as e:
print(e)
return
{
'message' : "Script execution completed. See Cloudwatch logs for complete output"
}
我有一个正在运行的 rds 实例。每天我都使用 lambda 表达式启动和停止我的 AWS 的 RDS 实例(db.t2.micro (MSSQL Server))。它以前工作正常,但出乎意料的是今天我遇到了这个问题。 我的 rds 实例不是由 lambda 表达式自动启动的。我看了一个错误日志,但没有问题,它通常看起来像每日日志。我无法排除故障并解决问题。谁能告诉我这个问题?
【问题讨论】:
-
如果您的日志未显示问题,请更新您的日志,直到问题在日志中可见。或者尝试重现问题并定位问题。
-
你能告诉我们你用来启动实例的代码吗?您是否在其周围添加了调试代码以显示可能出现的问题?您是否可以手动启动 RDS 实例,只是为了检查是否可行?
-
@JohnRotenstein 先生,我已经添加了代码。
-
仅供参考,您可以通过
import os和dbName = os.environ['DBInstanceName'])访问函数的环境变量 -
你可以
print response而不是return response吗?这样,您将在日志文件中看到结果。