使用AWS Redshift SDK删除集群时遇SCHEDULER_API未支持错误求助
解决Redshift SDK删除集群时"SCHEDULER_API support is not yet available."错误
错误原因
这个报错是因为你的Redshift集群启用了调度器功能(Scheduler API),但当前使用的AWS Redshift SDK版本过低,不支持该API的相关操作,导致删除集群时无法处理关联的调度资源。
解决方案
1. 升级AWS Redshift SDK包
这是最直接的解决办法:
- 如果你用的是.NET项目,打开NuGet包管理器,找到
AWSSDK.Redshift包,更新到最新稳定版本(推荐v3系列的最新版) - 升级后的SDK会包含Scheduler API的支持,删除集群时能自动处理关联的调度任务,不会再触发该错误
2. 临时 workaround(不推荐长期使用)
如果暂时无法升级SDK,可以先手动在Redshift控制台删除目标集群的所有调度任务,再运行你的删除代码。但这种方法需要手动操作,无法自动化,仅适合临时场景。
你的代码参考
Amazon.Redshift.Model.DescribeClustersRequest describeClustersRequest = new Amazon.Redshift.Model.DescribeClustersRequest(); Amazon.Redshift.Model.DescribeClustersResponse describeClustersResponse = clientRedshift.DescribeClusters(describeClustersRequest); List<Amazon.Redshift.Model.Cluster> redshiftClusters = describeClustersResponse.Clusters; if (redshiftClusters.Count() > 0) { foreach (Amazon.Redshift.Model.Cluster cluster in redshiftClusters) { try { var deleteRequest = new Amazon.Redshift.Model.DeleteClusterRequest() { ClusterIdentifier = cluster.ClusterIdentifier, SkipFinalClusterSnapshot = true }; var deleteResponse = clientRedshift.DeleteCluster(deleteRequest); } catch (Exception ex) { // 建议添加错误日志输出,方便排查具体问题 Console.WriteLine($"删除集群 {cluster.ClusterIdentifier} 失败: {ex.Message}"); } } }
内容的提问来源于stack exchange,提问作者Sakkulsum Khan
相关产品推荐
相关产品推荐

