You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

寻求非工作时段启停Synapse的脚本以降低运维成本

Synapse非工作时段自动启停解决方案

针对非工作时段(晚间、周末)启停Synapse计算资源以降低成本的需求,你可以借助Azure Automation Runbook实现自动化调度,以下是具体脚本和配置步骤:

一、核心脚本(PowerShell)

1. 停止Synapse计算资源脚本

用于晚间/周末暂停专用SQL池、Spark池等付费计算资源:

# 配置参数,替换为你的资源信息
$resourceGroupName = "你的资源组名称"
$synapseWorkspaceName = "你的Synapse工作区名称"
$sqlPoolName = "你的专用SQL池名称"
$sparkPoolName = "你的Spark池名称"

# 使用Automation托管身份连接Azure
Connect-AzAccount -Identity

# 暂停专用SQL池
Suspend-AzSynapseSqlPool -ResourceGroupName $resourceGroupName -WorkspaceName $synapseWorkspaceName -Name $sqlPoolName

# 暂停Spark池(如有需要)
Suspend-AzSynapseSparkPool -ResourceGroupName $resourceGroupName -WorkspaceName $synapseWorkspaceName -Name $sparkPoolName

2. 启动Synapse计算资源脚本

用于工作日早间恢复计算资源:

# 配置参数,替换为你的资源信息
$resourceGroupName = "你的资源组名称"
$synapseWorkspaceName = "你的Synapse工作区名称"
$sqlPoolName = "你的专用SQL池名称"
$sparkPoolName = "你的Spark池名称"

# 使用Automation托管身份连接Azure
Connect-AzAccount -Identity

# 恢复专用SQL池
Resume-AzSynapseSqlPool -ResourceGroupName $resourceGroupName -WorkspaceName $synapseWorkspaceName -Name $sqlPoolName

# 恢复Spark池(如有需要)
Resume-AzSynapseSparkPool -ResourceGroupName $resourceGroupName -WorkspaceName $synapseWorkspaceName -Name $sparkPoolName

二、配置自动化调度步骤

  1. 创建Azure Automation账户:在Azure门户中创建Automation账户,启用系统托管身份。
  2. 导入依赖模块:在Automation账户的「模块」页面,导入Az.Synapse及Az.Accounts模块(确保模块版本兼容)。
  3. 创建Runbook:分别创建两个PowerShell类型的Runbook,将上述停止/启动脚本粘贴进去,替换参数后发布。
  4. 设置定时触发器:
    • 停止触发器:设置为工作日20:00执行,同时添加周末全天的重复触发规则。
    • 启动触发器:设置为工作日08:00执行。
  5. 分配权限:给Automation账户的托管身份分配「Synapse Contributor」角色到Synapse工作区或所属资源组,确保具备启停资源的权限。

三、注意事项

  • 若有多个计算资源,需在脚本中逐一添加对应的启停命令。
  • 先手动运行Runbook验证资源启停正常,再启用定时触发器。
  • 可结合Synapse无服务器SQL池的自动暂停功能,进一步优化成本。

内容的提问来源于stack exchange,提问作者Dave

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 12:02:17