Terraform Azure 流分析作业 - 开始/停止

Posted

技术标签:

【中文标题】Terraform Azure 流分析作业 - 开始/停止【英文标题】:Terraform Azure Stream Analytics Job - Start/Stop 【发布时间】:2020-04-24 17:26:18 【问题描述】:

我在 terraform 中定义了一个流分析作业,但如果对作业进行了更改并且它当前正在运行,terraform apply 将失败。有没有办法在 terraform 中检测作业的变化,如果有,请停止作业,然后在 apply 完成后重新启动作业?

我可以运行一个 powershell 脚本来停止并在 apply 上启动它,但如果可能的话,我希望避免在每次运行 apply 时停止/启动作业。我正在查看this 文章,但它看起来不适用于这种情况。

【问题讨论】:

【参考方案1】:

寻找同样的东西!我正在考虑使用一些额外的步骤来启动和停止流分析工作。为此,您需要在用于供应的系统上安装 az cli。当一切正常时,我会更新我的答案。

更新:我找到了一种可行的方法,尽管我希望 Terraform 自己管理它。我使用 Github 操作,但这些步骤可以应用于任何环境:

# Stop the job, so it can be updated.
# Do not fail when job does not exist.
az stream-analytics job stop \
  --resource-group <RESOURCE_GROUP> \
  --name <JOB_NAME> || true

# Apply changes
terraform apply

# Start the job again
az stream-analytics job start \
  --resource-group <RESOURCE_GROUP> \
  --name <JOB_NAME> \
  --output-start-mode LastOutputEventTime

注意,不要忘记--output-start-mode LastOutputEventTime,这意味着作业将从停止时开始处理。否则,您正在更新的窗口中未处理的事件可能会丢失。

【讨论】:

如果 terraform apply 失败会怎样?

以上是关于Terraform Azure 流分析作业 - 开始/停止的主要内容,如果未能解决你的问题,请参考以下文章

Azure 流分析作业无限运行

使用流分析作业查询从 EventHub 中过滤 Azure 事件

重新启动 Azure 流分析作业而不丢失数据

Azure 流分析作业在作业开始时触发误报缺失资产

Azure 流分析作业在输入格式错误 (JSON) 后被阻止

Azure 流分析作业降级,没有运行时错误