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

技术咨询:如何从Python脚本或Control-M作业触发MWAA DAG?

从Control-M启动MWAA DAG的替代方案

1. 直接在Control-M作业中调用MWAA CLI/API(通过VPC内资源)

如果公网调用受限,可将Control-M部署在与MWAA同VPC的子网,或通过VPC peering、VPN连接让Control-M所在网络访问MWAA私有端点。随后在Control-M作业中执行AWS CLI命令触发DAG:

aws mwaa start-dag-run --name <你的DAG名称> --execution-date <执行时间> --region <区域>

也可在Control-M作业环境配置AWS凭证后,用Python脚本调用boto3库:

import boto3

client = boto3.client('mwaa', region_name='<你的区域>')
response = client.start_dag_run(
    Name='<你的DAG名称>',
    ExecutionDate='<执行时间>'
)

注意要给Control-M的执行角色配置AmazonMWAAFullAccess或最小权限的IAM策略(允许mwaa:StartDagRun操作)。

2. 使用Control-M的AWS集成插件

Control-M自带AWS集成组件,无需额外写脚本,可直接在Control-M作业中配置调用MWAA的操作。借助该插件能直接触发DAG运行,同时复用Control-M的调度、依赖管理和监控能力。需要在Control-M环境安装并配置AWS插件,再创建对应作业类型,指定MWAA集群信息、DAG名称等参数。

3. 通过Amazon EventBridge触发

在Control-M作业中发送自定义事件到EventBridge,再配置EventBridge规则:当收到该事件时调用MWAA的StartDagRun API。这种方式适合解耦Control-M与MWAA的场景,EventBridge还可添加过滤、重试逻辑。

  • Control-M作业中执行发送事件的命令:
aws events put-events --entries '[{"Source":"control-m.mwaa.trigger","DetailType":"StartDag","Detail":"{\"dag_name\":\"<你的DAG名称>\"}"}]' --region <区域>
  • 在EventBridge中创建规则,匹配对应事件源和类型,目标选择MWAA的StartDagRun动作并配置DAG参数。

4. 借助EC2跳板机

若Control-M无法直接访问MWAA的VPC,可在MWAA所在VPC内部署EC2实例作为跳板。Control-M通过SSH连接到该EC2,再在EC2上执行触发DAG的脚本或CLI命令。需给Control-M服务器配置SSH访问EC2的权限,同时EC2要有访问MWAA的权限和AWS凭证。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 10:41:55