工作流相关
更新时间:2026-09-04
创建工作流模版
使用以下代码可以创建工作流模版。
Python
1import logging
2import os
3
4import dotenv
5
6from baidubce.bce_client_configuration import BceClientConfiguration
7from baidubce.auth.bce_credentials import BceCredentials
8from baidubce.services.aihc.aihc_client import AihcClient
9from baidubce.exception import BceHttpClientError, BceServerError
10
11# 加载环境变量(可选,推荐使用)
12dotenv.load_dotenv()
13
14logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s', force=True)
15logging.getLogger().setLevel(logging.INFO)
16logging.getLogger("baidubce").setLevel(logging.INFO)
17__logger = logging.getLogger(__name__)
18__logger.setLevel(logging.INFO)
19
20# 配置认证信息和服务端点
21HOST = os.getenv('HOST') or 'https://aihc.bj.baidubce.com' # 百舸AIHC服务地址
22AK = os.getenv('AK') or 'your-access-key-id' # 您的Access Key ID
23SK = os.getenv('SK') or 'your-secret-access-key' # 您的Secret Access Key
24
25# 创建BCE客户端配置
26config = BceClientConfiguration(credentials=BceCredentials(AK, SK), endpoint=HOST)
27
28# 创建 aihc client
29aihc_client = AihcClient(config)
30
31# 创建工作流模版
32try:
33 __logger.info('--------------------------------CreatePipeline start--------------------------------')
34 name = "python-sdk-test-pipeline" # 工作流模版名称
35 description = "示例 Pipeline" # 工作流模版描述
36 pipeline_type = "normal" # 工作流模版类型
37 resource_pool_id = "aihc-xxx" # 替换为实际的资源池ID
38 concurrency_policy = "Allow" # 并发策略:Allow / Forbid / Replace
39 manifest = ( # 工作流模版 YAML 定义,详见接口文档
40 "version: v1\n"
41 "kind: PipelineTemplate\n"
42 "taskTemplates:\n"
43 " - name: custom-task-template\n"
44 " type: CustomTask\n"
45 )
46 response = aihc_client.workflow.CreatePipeline(
47 name=name,
48 manifest=manifest,
49 description=description,
50 pipelineType=pipeline_type,
51 resourcePoolId=resource_pool_id,
52 concurrencyPolicy=concurrency_policy,
53 )
54 print(response)
55except BceHttpClientError as e:
56 if isinstance(e.last_error, BceServerError):
57 __logger.error('send request failed. Response %s, code: %s, msg: %s'
58 % (e.last_error.status_code, e.last_error.code, str(e.last_error)))
59 else:
60 __logger.error('send request failed. Unknown exception: %s' % e)
注意: 根据接口文档去填写具体的访问参数,接口链接为创建工作流模版
查询工作流模版列表
使用以下代码可以查询工作流模版列表。
Python
1import logging
2import os
3
4import dotenv
5
6from baidubce.bce_client_configuration import BceClientConfiguration
7from baidubce.auth.bce_credentials import BceCredentials
8from baidubce.services.aihc.aihc_client import AihcClient
9from baidubce.exception import BceHttpClientError, BceServerError
10
11# 加载环境变量
12dotenv.load_dotenv()
13
14logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s', force=True)
15logging.getLogger().setLevel(logging.INFO)
16logging.getLogger("baidubce").setLevel(logging.INFO)
17__logger = logging.getLogger(__name__)
18__logger.setLevel(logging.INFO)
19
20# 配置认证信息
21HOST = os.getenv('HOST') or 'https://aihc.bj.baidubce.com'
22AK = os.getenv('AK') or 'your-access-key-id'
23SK = os.getenv('SK') or 'your-secret-access-key'
24
25config = BceClientConfiguration(credentials=BceCredentials(AK, SK), endpoint=HOST)
26aihc_client = AihcClient(config)
27
28# 查询工作流模版列表
29try:
30 __logger.info('--------------------------------DescribePipelines start--------------------------------')
31 page_number = 1 # 页码,从 1 开始
32 page_size = 10 # 每页条数
33 response = aihc_client.workflow.DescribePipelines(
34 pageNumber=page_number,
35 pageSize=page_size,
36 )
37 print(response)
38except BceHttpClientError as e:
39 if isinstance(e.last_error, BceServerError):
40 __logger.error('send request failed. Response %s, code: %s, msg: %s'
41 % (e.last_error.status_code, e.last_error.code, str(e.last_error)))
42 else:
43 __logger.error('send request failed. Unknown exception: %s' % e)
注意: 根据接口文档去填写具体的访问参数,接口链接为查询工作流模版列表
查询工作流模版详情
使用以下代码可以查询工作流模版详情。
Python
1import logging
2import os
3
4import dotenv
5
6from baidubce.bce_client_configuration import BceClientConfiguration
7from baidubce.auth.bce_credentials import BceCredentials
8from baidubce.services.aihc.aihc_client import AihcClient
9from baidubce.exception import BceHttpClientError, BceServerError
10
11# 加载环境变量
12dotenv.load_dotenv()
13
14logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s', force=True)
15logging.getLogger().setLevel(logging.INFO)
16logging.getLogger("baidubce").setLevel(logging.INFO)
17__logger = logging.getLogger(__name__)
18__logger.setLevel(logging.INFO)
19
20# 配置认证信息
21HOST = os.getenv('HOST') or 'https://aihc.bj.baidubce.com'
22AK = os.getenv('AK') or 'your-access-key-id'
23SK = os.getenv('SK') or 'your-secret-access-key'
24
25config = BceClientConfiguration(credentials=BceCredentials(AK, SK), endpoint=HOST)
26aihc_client = AihcClient(config)
27
28# 查询工作流模版详情
29try:
30 __logger.info('--------------------------------DescribePipeline start--------------------------------')
31 pipeline_id = "pipe-xxx" # 替换为实际的工作流模版ID
32 response = aihc_client.workflow.DescribePipeline(
33 pipelineId=pipeline_id,
34 )
35 print(response)
36except BceHttpClientError as e:
37 if isinstance(e.last_error, BceServerError):
38 __logger.error('send request failed. Response %s, code: %s, msg: %s'
39 % (e.last_error.status_code, e.last_error.code, str(e.last_error)))
40 else:
41 __logger.error('send request failed. Unknown exception: %s' % e)
注意: 根据接口文档去填写具体的访问参数,接口链接为查询工作流模版详情
更新工作流模版
使用以下代码可以更新工作流模版。
Python
1import logging
2import os
3
4import dotenv
5
6from baidubce.bce_client_configuration import BceClientConfiguration
7from baidubce.auth.bce_credentials import BceCredentials
8from baidubce.services.aihc.aihc_client import AihcClient
9from baidubce.exception import BceHttpClientError, BceServerError
10
11# 加载环境变量
12dotenv.load_dotenv()
13
14logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s', force=True)
15logging.getLogger().setLevel(logging.INFO)
16logging.getLogger("baidubce").setLevel(logging.INFO)
17__logger = logging.getLogger(__name__)
18__logger.setLevel(logging.INFO)
19
20# 配置认证信息
21HOST = os.getenv('HOST') or 'https://aihc.bj.baidubce.com'
22AK = os.getenv('AK') or 'your-access-key-id'
23SK = os.getenv('SK') or 'your-secret-access-key'
24
25config = BceClientConfiguration(credentials=BceCredentials(AK, SK), endpoint=HOST)
26aihc_client = AihcClient(config)
27
28# 更新工作流模版
29try:
30 __logger.info('--------------------------------UpdatePipeline start--------------------------------')
31 pipeline_id = "pipe-xxx" # 替换为实际的工作流模版ID
32 new_name = "updated-pipeline" # 更新后的模版名称
33 new_description = "更新后的描述" # 更新后的描述
34 response = aihc_client.workflow.UpdatePipeline(
35 pipelineId=pipeline_id,
36 name=new_name,
37 description=new_description,
38 )
39 print(response)
40except BceHttpClientError as e:
41 if isinstance(e.last_error, BceServerError):
42 __logger.error('send request failed. Response %s, code: %s, msg: %s'
43 % (e.last_error.status_code, e.last_error.code, str(e.last_error)))
44 else:
45 __logger.error('send request failed. Unknown exception: %s' % e)
注意: 根据接口文档去填写具体的访问参数,接口链接为更新工作流模版
删除工作流模版
使用以下代码可以删除工作流模版。
Python
1import logging
2import os
3
4import dotenv
5
6from baidubce.bce_client_configuration import BceClientConfiguration
7from baidubce.auth.bce_credentials import BceCredentials
8from baidubce.services.aihc.aihc_client import AihcClient
9from baidubce.exception import BceHttpClientError, BceServerError
10
11# 加载环境变量
12dotenv.load_dotenv()
13
14logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s', force=True)
15logging.getLogger().setLevel(logging.INFO)
16logging.getLogger("baidubce").setLevel(logging.INFO)
17__logger = logging.getLogger(__name__)
18__logger.setLevel(logging.INFO)
19
20# 配置认证信息
21HOST = os.getenv('HOST') or 'https://aihc.bj.baidubce.com'
22AK = os.getenv('AK') or 'your-access-key-id'
23SK = os.getenv('SK') or 'your-secret-access-key'
24
25config = BceClientConfiguration(credentials=BceCredentials(AK, SK), endpoint=HOST)
26aihc_client = AihcClient(config)
27
28# 删除工作流模版
29try:
30 __logger.info('--------------------------------DeletePipeline start--------------------------------')
31 pipeline_id = "pipe-xxx" # 替换为实际的工作流模版ID
32 response = aihc_client.workflow.DeletePipeline(
33 pipelineId=pipeline_id,
34 )
35 print(response)
36except BceHttpClientError as e:
37 if isinstance(e.last_error, BceServerError):
38 __logger.error('send request failed. Response %s, code: %s, msg: %s'
39 % (e.last_error.status_code, e.last_error.code, str(e.last_error)))
40 else:
41 __logger.error('send request failed. Unknown exception: %s' % e)
注意: 根据接口文档去填写具体的访问参数,接口链接为删除工作流模版
运行工作流
使用以下代码可以运行工作流(创建工作流运行实例)。
Python
1import logging
2import os
3
4import dotenv
5
6from baidubce.bce_client_configuration import BceClientConfiguration
7from baidubce.auth.bce_credentials import BceCredentials
8from baidubce.services.aihc.aihc_client import AihcClient
9from baidubce.exception import BceHttpClientError, BceServerError
10
11# 加载环境变量
12dotenv.load_dotenv()
13
14logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s', force=True)
15logging.getLogger().setLevel(logging.INFO)
16logging.getLogger("baidubce").setLevel(logging.INFO)
17__logger = logging.getLogger(__name__)
18__logger.setLevel(logging.INFO)
19
20# 配置认证信息
21HOST = os.getenv('HOST') or 'https://aihc.bj.baidubce.com'
22AK = os.getenv('AK') or 'your-access-key-id'
23SK = os.getenv('SK') or 'your-secret-access-key'
24
25config = BceClientConfiguration(credentials=BceCredentials(AK, SK), endpoint=HOST)
26aihc_client = AihcClient(config)
27
28# 运行工作流
29try:
30 __logger.info('--------------------------------CreatePipelineRun start--------------------------------')
31 pipeline_id = "pipe-xxx" # 替换为实际的工作流模版ID
32 response = aihc_client.workflow.CreatePipelineRun(
33 pipelineId=pipeline_id,
34 )
35 print(response)
36except BceHttpClientError as e:
37 if isinstance(e.last_error, BceServerError):
38 __logger.error('send request failed. Response %s, code: %s, msg: %s'
39 % (e.last_error.status_code, e.last_error.code, str(e.last_error)))
40 else:
41 __logger.error('send request failed. Unknown exception: %s' % e)
注意: 根据接口文档去填写具体的访问参数,接口链接为运行工作流
查询工作流运行列表
使用以下代码可以查询工作流运行列表。
Python
1import logging
2import os
3
4import dotenv
5
6from baidubce.bce_client_configuration import BceClientConfiguration
7from baidubce.auth.bce_credentials import BceCredentials
8from baidubce.services.aihc.aihc_client import AihcClient
9from baidubce.exception import BceHttpClientError, BceServerError
10
11# 加载环境变量
12dotenv.load_dotenv()
13
14logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s', force=True)
15logging.getLogger().setLevel(logging.INFO)
16logging.getLogger("baidubce").setLevel(logging.INFO)
17__logger = logging.getLogger(__name__)
18__logger.setLevel(logging.INFO)
19
20# 配置认证信息
21HOST = os.getenv('HOST') or 'https://aihc.bj.baidubce.com'
22AK = os.getenv('AK') or 'your-access-key-id'
23SK = os.getenv('SK') or 'your-secret-access-key'
24
25config = BceClientConfiguration(credentials=BceCredentials(AK, SK), endpoint=HOST)
26aihc_client = AihcClient(config)
27
28# 查询工作流运行列表
29try:
30 __logger.info('--------------------------------DescribePipelineRuns start--------------------------------')
31 pipeline_id = "pipe-xxx" # 替换为实际的工作流模版ID
32 page_number = 1 # 页码,从 1 开始
33 page_size = 10 # 每页条数
34 response = aihc_client.workflow.DescribePipelineRuns(
35 pipelineId=pipeline_id,
36 pageNumber=page_number,
37 pageSize=page_size,
38 )
39 print(response)
40except BceHttpClientError as e:
41 if isinstance(e.last_error, BceServerError):
42 __logger.error('send request failed. Response %s, code: %s, msg: %s'
43 % (e.last_error.status_code, e.last_error.code, str(e.last_error)))
44 else:
45 __logger.error('send request failed. Unknown exception: %s' % e)
注意: 根据接口文档去填写具体的访问参数,接口链接为查询工作流运行列表
查询工作流运行详情
使用以下代码可以查询工作流运行详情。
Python
1import logging
2import os
3
4import dotenv
5
6from baidubce.bce_client_configuration import BceClientConfiguration
7from baidubce.auth.bce_credentials import BceCredentials
8from baidubce.services.aihc.aihc_client import AihcClient
9from baidubce.exception import BceHttpClientError, BceServerError
10
11# 加载环境变量
12dotenv.load_dotenv()
13
14logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s', force=True)
15logging.getLogger().setLevel(logging.INFO)
16logging.getLogger("baidubce").setLevel(logging.INFO)
17__logger = logging.getLogger(__name__)
18__logger.setLevel(logging.INFO)
19
20# 配置认证信息
21HOST = os.getenv('HOST') or 'https://aihc.bj.baidubce.com'
22AK = os.getenv('AK') or 'your-access-key-id'
23SK = os.getenv('SK') or 'your-secret-access-key'
24
25config = BceClientConfiguration(credentials=BceCredentials(AK, SK), endpoint=HOST)
26aihc_client = AihcClient(config)
27
28# 查询工作流运行详情
29try:
30 __logger.info('--------------------------------DescribePipelineRun start--------------------------------')
31 run_id = "run-xxx" # 替换为实际的工作流运行ID
32 response = aihc_client.workflow.DescribePipelineRun(
33 runId=run_id,
34 )
35 print(response)
36except BceHttpClientError as e:
37 if isinstance(e.last_error, BceServerError):
38 __logger.error('send request failed. Response %s, code: %s, msg: %s'
39 % (e.last_error.status_code, e.last_error.code, str(e.last_error)))
40 else:
41 __logger.error('send request failed. Unknown exception: %s' % e)
注意: 根据接口文档去填写具体的访问参数,接口链接为查询工作流运行详情
查询工作流运行节点列表
使用以下代码可以查询工作流运行节点列表。
Python
1import logging
2import os
3
4import dotenv
5
6from baidubce.bce_client_configuration import BceClientConfiguration
7from baidubce.auth.bce_credentials import BceCredentials
8from baidubce.services.aihc.aihc_client import AihcClient
9from baidubce.exception import BceHttpClientError, BceServerError
10
11# 加载环境变量
12dotenv.load_dotenv()
13
14logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s', force=True)
15logging.getLogger().setLevel(logging.INFO)
16logging.getLogger("baidubce").setLevel(logging.INFO)
17__logger = logging.getLogger(__name__)
18__logger.setLevel(logging.INFO)
19
20# 配置认证信息
21HOST = os.getenv('HOST') or 'https://aihc.bj.baidubce.com'
22AK = os.getenv('AK') or 'your-access-key-id'
23SK = os.getenv('SK') or 'your-secret-access-key'
24
25config = BceClientConfiguration(credentials=BceCredentials(AK, SK), endpoint=HOST)
26aihc_client = AihcClient(config)
27
28# 查询工作流运行节点列表
29try:
30 __logger.info('--------------------------------DescribePipelineRunNodes start--------------------------------')
31 run_id = "run-xxx" # 替换为实际的工作流运行ID
32 response = aihc_client.workflow.DescribePipelineRunNodes(
33 runId=run_id,
34 )
35 print(response)
36except BceHttpClientError as e:
37 if isinstance(e.last_error, BceServerError):
38 __logger.error('send request failed. Response %s, code: %s, msg: %s'
39 % (e.last_error.status_code, e.last_error.code, str(e.last_error)))
40 else:
41 __logger.error('send request failed. Unknown exception: %s' % e)
注意: 根据接口文档去填写具体的访问参数,接口链接为查询工作流运行节点列表
重试工作流运行
使用以下代码可以重试工作流运行。
Python
1import logging
2import os
3
4import dotenv
5
6from baidubce.bce_client_configuration import BceClientConfiguration
7from baidubce.auth.bce_credentials import BceCredentials
8from baidubce.services.aihc.aihc_client import AihcClient
9from baidubce.exception import BceHttpClientError, BceServerError
10
11# 加载环境变量
12dotenv.load_dotenv()
13
14logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s', force=True)
15logging.getLogger().setLevel(logging.INFO)
16logging.getLogger("baidubce").setLevel(logging.INFO)
17__logger = logging.getLogger(__name__)
18__logger.setLevel(logging.INFO)
19
20# 配置认证信息
21HOST = os.getenv('HOST') or 'https://aihc.bj.baidubce.com'
22AK = os.getenv('AK') or 'your-access-key-id'
23SK = os.getenv('SK') or 'your-secret-access-key'
24
25config = BceClientConfiguration(credentials=BceCredentials(AK, SK), endpoint=HOST)
26aihc_client = AihcClient(config)
27
28# 重试工作流运行
29try:
30 __logger.info('--------------------------------RetryPipelineRun start--------------------------------')
31 run_id = "run-xxx" # 替换为实际的工作流运行ID
32 mode = "full" # 重试模式:full(全部重试)或 failed(仅重试失败节点)
33 response = aihc_client.workflow.RetryPipelineRun(
34 runId=run_id,
35 mode=mode,
36 )
37 print(response)
38except BceHttpClientError as e:
39 if isinstance(e.last_error, BceServerError):
40 __logger.error('send request failed. Response %s, code: %s, msg: %s'
41 % (e.last_error.status_code, e.last_error.code, str(e.last_error)))
42 else:
43 __logger.error('send request failed. Unknown exception: %s' % e)
注意: 根据接口文档去填写具体的访问参数,接口链接为重试工作流运行
停止工作流运行
使用以下代码可以停止工作流运行。
Python
1import logging
2import os
3
4import dotenv
5
6from baidubce.bce_client_configuration import BceClientConfiguration
7from baidubce.auth.bce_credentials import BceCredentials
8from baidubce.services.aihc.aihc_client import AihcClient
9from baidubce.exception import BceHttpClientError, BceServerError
10
11# 加载环境变量
12dotenv.load_dotenv()
13
14logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s', force=True)
15logging.getLogger().setLevel(logging.INFO)
16logging.getLogger("baidubce").setLevel(logging.INFO)
17__logger = logging.getLogger(__name__)
18__logger.setLevel(logging.INFO)
19
20# 配置认证信息
21HOST = os.getenv('HOST') or 'https://aihc.bj.baidubce.com'
22AK = os.getenv('AK') or 'your-access-key-id'
23SK = os.getenv('SK') or 'your-secret-access-key'
24
25config = BceClientConfiguration(credentials=BceCredentials(AK, SK), endpoint=HOST)
26aihc_client = AihcClient(config)
27
28# 停止工作流运行
29try:
30 __logger.info('--------------------------------StopPipelineRun start--------------------------------')
31 run_id = "run-xxx" # 替换为实际的工作流运行ID
32 terminate = False # 是否强制终止:True 表示强制终止,False 表示优雅停止
33 message = "手动停止" # 停止原因(可选)
34 response = aihc_client.workflow.StopPipelineRun(
35 runId=run_id,
36 terminate=terminate,
37 message=message,
38 )
39 print(response)
40except BceHttpClientError as e:
41 if isinstance(e.last_error, BceServerError):
42 __logger.error('send request failed. Response %s, code: %s, msg: %s'
43 % (e.last_error.status_code, e.last_error.code, str(e.last_error)))
44 else:
45 __logger.error('send request failed. Unknown exception: %s' % e)
注意: 根据接口文档去填写具体的访问参数,接口链接为停止工作流运行
删除工作流运行实例
使用以下代码可以删除工作流运行实例。
Python
1import logging
2import os
3
4import dotenv
5
6from baidubce.bce_client_configuration import BceClientConfiguration
7from baidubce.auth.bce_credentials import BceCredentials
8from baidubce.services.aihc.aihc_client import AihcClient
9from baidubce.exception import BceHttpClientError, BceServerError
10
11# 加载环境变量
12dotenv.load_dotenv()
13
14logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s', force=True)
15logging.getLogger().setLevel(logging.INFO)
16logging.getLogger("baidubce").setLevel(logging.INFO)
17__logger = logging.getLogger(__name__)
18__logger.setLevel(logging.INFO)
19
20# 配置认证信息
21HOST = os.getenv('HOST') or 'https://aihc.bj.baidubce.com'
22AK = os.getenv('AK') or 'your-access-key-id'
23SK = os.getenv('SK') or 'your-secret-access-key'
24
25config = BceClientConfiguration(credentials=BceCredentials(AK, SK), endpoint=HOST)
26aihc_client = AihcClient(config)
27
28# 删除工作流运行实例
29try:
30 __logger.info('--------------------------------DeletePipelineRun start--------------------------------')
31 run_id = "run-xxx" # 替换为实际的工作流运行ID
32 response = aihc_client.workflow.DeletePipelineRun(
33 runId=run_id,
34 )
35 print(response)
36except BceHttpClientError as e:
37 if isinstance(e.last_error, BceServerError):
38 __logger.error('send request failed. Response %s, code: %s, msg: %s'
39 % (e.last_error.status_code, e.last_error.code, str(e.last_error)))
40 else:
41 __logger.error('send request failed. Unknown exception: %s' % e)
注意: 根据接口文档去填写具体的访问参数,接口链接为删除工作流运行实例
评价此篇文章
