命名空间:Microsoft.Azure。Workflows.Sdk
提供工厂方法,用于创建直接在逻辑应用运行环境中运行的内置工作流动作。 通过WorkflowActionsWorkflowActions.BuiltIn访问该类,创建数据转换、HTTP、响应、嵌套工作流、自定义代码和代理动作。
用法
// Built-in actions are accessed via WorkflowActions.BuiltIn
var compose = WorkflowActions.BuiltIn.Compose(inputs: () => "Hello").WithName("Greet");
var http = WorkflowActions.BuiltIn.HttpAction(
uri: () => new Uri("https://api.example.com"),
method: () => HttpMethod.Post,
requestBody: () => new { message = "test" }).WithName("PostData");
var response = WorkflowActions.BuiltIn.Response(
responseBody: () => $"{http.Body}").WithName("Reply");
// Chain actions in a workflow
var trigger = WorkflowTriggers.BuiltIn.CreateHttpTrigger();
trigger.Then(compose).Then(http).Then(response);
属性
| 名称 | 说明 | 类型 | 必需 |
|---|---|---|---|
| 控件 | 获取控制流动作的工厂,如Scope、Condition、ForEach、Until、Switch和Terminate。 | 工作流程控制操作 | 否 |
| Variables | 获取初始化、设置、递增、递减和附加等变量操作的工厂。 | 工作流程变量动作 | 否 |
Methods
Compose
创建一个 Compose 动作,并返回 IOutputWorkflowAction<JToken> ,其输出可被后续动作引用。
IOutputWorkflowAction<JToken> Compose(Expression<Func<string>> inputs)
| 名称 | 说明 | 类型 | 必需 |
|---|---|---|---|
| inputs | 输入表达式,用于合成。 | 表达<式函子<字符串>> | 是的 |
var compose = WorkflowActions.BuiltIn.Compose(inputs: () => "Hello World").WithName("Greet");
Compose<T(表达>式 Func<T< 输入)>>
创建一个类型的 Compose 动作,并返回 IOutputWorkflowAction<T> 以表示强类型输出引用。
IOutputWorkflowAction<T> Compose<T>(Expression<Func<T>> input)
| 名称 | 说明 | 类型 | 必需 |
|---|---|---|---|
| 输入 | 表达式,用于编写输入。 | 表达<式 Func<T>> | 是的 |
var typed = WorkflowActions.BuiltIn.Compose<int>(input: () => 42).WithName("Answer");
HttpAction
创建 HTTP 动作,并返回 IBodyWorkflowAction<JToken> 用于调用外部端点。
IBodyWorkflowAction<JToken> HttpAction(Expression<Func<Uri>> uri, Expression<Func<HttpMethod>> method, Expression<Func<object>> requestBody = null, Expression<Func<Dictionary<string, string>>> queries = null, Expression<Func<Dictionary<string, string>>> headers = null)
| 名称 | 说明 | 类型 | 必需 |
|---|---|---|---|
| Uri | 请求表达式为URI。 | 表达<式 Func<Uri>> | 是的 |
| 方法 | HTTP 方法的表达式。 | 表达<式 Func<HttpMethod>> | 是的 |
| requestBody | 请求文本的表达式。 | 表达<式 Func<对象>> | 否 |
| queries | 查询参数的表达式。 | 表达<式 Func<词典<字符串,字符串>>> | 否 |
| 标题 | 请求头的表达式。 | 表达<式 Func<词典<字符串,字符串>>> | 否 |
var http = WorkflowActions.BuiltIn.HttpAction(
uri: () => new Uri("https://api.example.com/data"),
method: () => HttpMethod.Get,
headers: () => new Dictionary<string, string> { ["Authorization"] = "Bearer token" })
.WithName("CallAPI");
响应
创建响应动作,并返回 IBodyWorkflowAction<JToken> ,用于发送请求工作流中的HTTP响应。
IBodyWorkflowAction<JToken> Response(Expression<Func<HttpStatusCode>> statusCode = null, Expression<Func<object>> responseBody = null, Expression<Func<Dictionary<string, string>>> headers = null, Expression<Func<JToken>> schema = null)
| 名称 | 说明 | 类型 | 必需 |
|---|---|---|---|
| 状态码 | HTTP 状态码的表达式。 | Expression<func<HttpStatusCode>> | 否 |
| 回复正文 | 响应体的表达式。 | 表达<式 Func<对象>> | 否 |
| 标题 | 响应头的表达式。 | 表达<式 Func<词典<字符串,字符串>>> | 否 |
| 架构 | 响应模式的表达式。 | 表达式<Func<JToken>> | 否 |
var response = WorkflowActions.BuiltIn.Response(
statusCode: () => HttpStatusCode.OK,
responseBody: () => "Success").WithName("SendResponse");
CustomCode<T>(Func<WorkflowContext, Task T<>> callback)
创建自定义代码动作,返回一个 IBodyWorkflowAction<T,该 T> 在 WorkflowContext 上执行内联 C#。
IBodyWorkflowAction<T> CustomCode<T>(Func<WorkflowContext, Task<T>> callback)
| 名称 | 说明 | 类型 | 必需 |
|---|---|---|---|
| 回叫 | 执行时的异步回调。 | Func<WorkflowContext, Task T<>> | 是的 |
var custom = WorkflowActions.BuiltIn.CustomCode<string>(async (context) =>
{
var result = await context.GetTriggerResults();
return "Processed";
}).WithName("RunCode");
嵌套工作流程
创建嵌套工作流程动作,返回 IBodyWorkflowAction<JToken> ,通过引用名调用另一个工作流程。
IBodyWorkflowAction<JToken> NestedWorkflow(Expression<Func<string>> workflowReferenceName, Expression<Func<object>> requestBody = null, Expression<Func<Dictionary<string, string>>> headers = null)
| 名称 | 说明 | 类型 | 必需 |
|---|---|---|---|
| workflowReferenceName | 引用子工作流程的名称。 | 表达<式函子<字符串>> | 是的 |
| requestBody | 请求主体用于子流程。 | 表达<式 Func<对象>> | 否 |
| 标题 | 请求子流程的头部。 | 表达<式 Func<词典<字符串,字符串>>> | 否 |
var nested = WorkflowActions.BuiltIn.NestedWorkflow(
workflowReferenceName: () => "ChildWorkflow",
requestBody: () => new { name = "test" }).WithName("CallChild");
Agent
创建一个 AgentAction,向为代理工作流程配置的 AI 模型发送提示消息。
AgentAction Agent(AgentModelType agentModelType, string deploymentId, AgentModelSettings agentModelSettings, string connectionName, Expression<Func<AgentPromptMessage[]>> messages)
| 名称 | 说明 | 类型 | 必需 |
|---|---|---|---|
| agentModelType | AI模型类型,比如OpenAI。 | AgentModelType | 是的 |
| deploymentId | 模型部署标识符。 | 字符串 | 是的 |
| agentModelSettings | 代理模型的配置。 | AgentModelSettings | 是的 |
| connectionName | AI服务的连接名称。 | 字符串 | 是的 |
| messages | 提示消息数组的表达式。 | 表达<式 Func<代理提示消息[]>> | 是的 |
var agent = WorkflowActions.BuiltIn.Agent(
agentModelType: AgentModelType.OpenAI,
deploymentId: "gpt-4",
agentModelSettings: new AgentModelSettings(),
connectionName: "openai-connection",
messages: () => new[] { new AgentPromptMessage { Role = "system", Content = "You are helpful" } });
相关内容
- AgentToolContext 类定义
- IChainableNode 接口定义
- 可实现工作流程操作接口定义
- IWorkflowAction 接口定义
- IWorkflowOperation 接口定义
- IWorkflowProvider 接口定义
- IWorkflowTrigger 接口定义
- OperationChain 类定义
- 类型工作流动作接口定义
- 类型化工作流触发器接口定义
- WorkflowActionBase 类定义
- WorkflowActions 类定义
- WorkflowBuiltInTriggers 类定义
- WorkflowContext 类定义
- 工作流程控制行动类定义
- WorkflowFactory 类定义
- WorkflowManagedActions 类定义
- WorkflowManagedTriggers 类定义
- WorkflowProviderExtensions 类定义
- WorkflowTriggerBase 类定义
- 工作流程触发类定义
- WorkflowVariableActions 类定义