WorkflowBuiltInActions 类

命名空间: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" } });