我正在尝试使用 AWS rds-data api 在极光无服务器 Postgresql 中执行一些繁重的 etl。
根据AWS Rds DATA文档,By default, a call times out if it's not finished processing within 45 seconds. However, you can continue running a SQL statement if the call times out by using the continueAfterTimeout parameter.
我看到boto3 rds-data支持 continueAfterTimeout 参数(布尔值)。我可以在这样的交易中使用这个标志。
def execute_transaction_query(sql, transaction_id):
print(sql)
response = rds_client.execute_statement(
secretArn=AURORA_DB_CREDS_ARN,
resourceArn=AURORA_DB_ARN,
database=AURORA_DB_NAME,
sql=sql,
transactionId=transaction_id,
continueAfterTimeout=True, # boolean flag to continue after timeout in theory
)
但是,查询在 45 秒后仍然失败并出现错误
An error occurred (StatementTimeoutException) when calling the ExecuteStatement operation: Request timed out