提供商网络中的基于规则的动作触发的制作方法

文档序号:11236812阅读:417来源:国知局
提供商网络中的基于规则的动作触发的制造方法与工艺



背景技术:

许多公司和其他组织运营互连许多计算系统以支持他们的操作的计算机网络,诸如其中所述计算系统共置(例如,作为本地网络的一部分)或者替代地位于多个不同的地理位置中(例如,经由一个或多个专用或公用中间网络连接)。例如,容纳大量互连的计算系统的分布式系统已变得平常。此类分布式系统可以向与客户端交互的web服务器提供后端服务。此类分布式系统也可以包括由实体运营以向客户提供计算资源的数据中心。一些数据中心运营商为由各种客户拥有的硬件提供网络访问、电力和安全安装设施,然而其他数据中心运营商提供也包括可供由他们的客户使用的硬件资源的“全服务”设施。

因为分布式系统的规模和范围已增加,所以提供、经营和管理资源的任务已变得日益复杂。例如,当分布式系统的各种组件出现问题时维护常常是必要的。系统管理员往常以人工和自组织方式执行此类维护任务。当人工地执行维护任务时,结果可能是不必要地昂贵的且易于出错。附加地,可能需要系统管理员开发并部署用于执行维护任务的定制系统。

附图说明

图1图示出根据一些实施例的提供商网络中的基于规则的动作触发的示例系统环境。

图2图示出根据一些实施例的提供商网络中的基于规则的动作触发的示例系统环境的另外的方面。

图3图示出根据一些实施例的提供商网络中的基于规则的动作触发的示例系统环境(包括队列服务)的另外的方面。

图4a图示出根据一些实施例的提供商网络中的基于规则的动作触发的示例系统环境(包括触发器到动作的一对一映射)的另外的方面。

图4b图示出根据一些实施例的提供商网络中的基于规则的动作触发的示例系统环境(包括触发器到动作的一对多映射)的另外的方面。

图4c图示出根据一些实施例的提供商网络中的基于规则的动作触发的示例系统环境(包括触发器到动作的多对一映射)的另外的方面。

图4d图示出根据一些实施例的提供商网络中的基于规则的动作触发的示例系统环境(包括触发器到动作的多对多映射)的另外的方面。

图5a图示出根据一些实施例的提供商网络中的基于规则的动作触发的示例系统环境(包括触发器到动作以及也到队列交换的映射)的另外的方面。

图5b图示出根据一些实施例的提供商网络中的基于规则的动作触发的示例系统环境(包括触发器到队列交换而非到动作的映射)的另外的方面。

图6是图示出根据一些实施例的提供商网络中的基于规则的动作触发的方法的流程图。

图7是图示出根据一些实施例的提供商网络中的基于规则的消息触发的方法的流程图。

图8是图示出根据一些实施例的提供商网络中的基于调度的动作触发的方法的流程图。

图9图示出根据一些实施例的用于基于规则的动作触发的路由处理程序的示例系统环境。

图10图示出根据一些实施例的用于基于规则的动作触发的路由处理程序的示例系统环境(包括动态加载的路由图的使用)的另外的方面。

图11图示出根据一些实施例的用于基于规则的动作触发的路由处理程序的示例系统环境(包括针对特定子服务的http客户端的使用)的另外的方面。

图12图示出根据一些实施例的用于基于规则的动作触发的路由处理程序的示例系统环境(包括子服务的示例)的另外的方面。

图13图示出根据一些实施例的用于基于规则的动作触发的路由处理程序的示例系统环境(包括更新路由图以反映对子服务的更新)的另外的方面。

图14图示出根据一些实施例的用于基于规则的动作触发的路由处理程序的示例系统环境(包括子服务和路由处理程序处的度量收集)的另外的方面。

图15是图示出根据一些实施例的用于使用用于基于规则的动作触发的路由处理程序的方法的流程图。

图16图示出可以在一些实施例中使用的计算装置的示例。

虽然在本文中针对数个实施例和说明性附图通过示例对实施例进行描述,但是本领域的技术人员将认识到,实施例不限于所描述的实施例或附图。应该理解的是,附图及其详细描述不旨在将实施例限于所公开的特定形式,而是相反,意图是涵盖落入如由所附权利要求所限定的精神和范围内的所有修改、等同物和替代方案。本文中所使用的标题仅用于组织目的,而不旨在用于限制本说明书或权利要求的范围。如遍及本申请所使用的,单词“可以”在允许意义(即,意指“有可能”)而不是强制意义(即,意指“必须”)上使用。类似地,单词“包括”意指“包括但不限于”。

具体实施方式

描述了针对提供商网络中的基于规则的动作触发的方法和系统的各种实施例。使用本文中所描述的技术,可以基于触发器和动作来定义规则。在一个实施例中,规则可以包括一个或多个触发器和一个或多个动作。提供商网络中的资源可以在它们的操作期间被监视。当满足任一个触发器的条件时,可以执行与规则中的触发器相关联的任何动作。为了发起动作,可以生成描述动作的消息并且将所述消息发送到消息传送服务。例如,消息传送服务可以包括队列服务,并且可以将消息放置在一个或多个队列中。可以将消息从消息传送服务递送给执行消息中所描述的动作的一个或多个动作处理程序。以这种方式,可以使提供商网络中的维护任务或其他任务自动化。

描述了用于基于规则的动作触发的路由处理程序的方法和系统的各种实施例。使用本文中所描述的技术,路由处理程序可以将请求路由到各种子服务。路由处理程序可以使用从外部数据存储中检索到的路由图来将请求中的特定操作映射到特定子服务。子服务可以包括用于基于规则的动作触发、对动作进行调度、基于规则执行动作和/或任何其他适合的任务的子服务。当特定子服务处的一个或多个操作被更新时,可以更新路由图而不是路由处理程序它本身。路由处理程序可以是一队路由处理程序的一部分。通过更新路由图而不是整队路由处理程序,可以高效地实现对子服务的更新。

提供商网络中的基于规则的动作触发

图1图示出根据一些实施例的提供商网络中的基于规则的动作触发的示例系统环境。基于规则的动作触发系统100可以包括用于基于规则触发和执行动作的多个组件。在一个实施例中,基于规则的动作触发系统100可以包括触发器定义功能110a、动作定义功能110b和规则定义功能110c。数据存储115可以存储与使用触发器定义功能110a、动作定义功能110b和/或规则定义功能110c所定义的触发器111a、动作111b和规则111c相关联的信息。数据存储115可以使用任何适合的存储技术(诸如数据库管理技术)来实现。

基于规则的动作触发系统100还可以包括用户接口105。在一个实施例中,用户接口105可以使得用户能够使用触发器定义功能110a、动作定义功能110b和/或规则定义功能110c来定义和/或选择触发器111a、动作111b和/或规则111c。例如,用户接口105可以允许用户选择一个或多个预定义触发器并且/或者定义一个或多个定制触发器。类似地,用户接口105可以允许用户选择一个或多个预定义动作并且/或者定义一个或多个定制动作。用户接口105可以允许用户定义一个或多个规则。在一个实施例中,可以将规则定义为包括一个或多个触发器和一个或多个动作。在一个实施例中,可以将规则定义为包括触发器和消息交换。关于图4a、图4b、图4c、图4d、图5a和图5b在下面更详细地讨论触发器111a、动作111b和规则111c的定义。

基于规则的动作触发系统100可以使用一个或多个计算装置来实现,所述一个或多个计算装置中的任一个可以由图16中所图示的示例计算装置3000来实现。在各种实施例中,基于规则的动作触发系统100的功能的部分可以由同一计算装置或者由任何适合数量的不同的计算装置来提供。如果基于规则的动作触发系统100的组件中的任一个使用不同的计算装置来实现,则所述组件及其相应的计算装置可以例如经由网络以通信方式耦合。所图示的组件中的每一个可以表示可用于执行它们相应的功能的软件和硬件的任何组合。设想了基于规则的动作触发系统100可以包括未示出的附加组件、比所示更少的组件,或所示组件的不同的组合、配置或量。

基于规则的动作触发系统100可以使用一个或多个网络190或其他互连耦合到提供商网络170。提供商网络170可以包括诸如计算资源171a和171b至171n的多个计算资源。资源171a-171n可以包括任何适合数量和配置的计算实例和/或其他处理资源、存储资源、数据库资源、网络资源、电力资源和/或其他适合类型的计算资源。尽管出于图示的目的示出三个计算资源171a、171b和171n,然而设想了可以使用任何适合数量和配置的计算资源。提供商网络170可以包括用于动作的触发器的源、触发动作的目标和/或执行触发动作的一个或多个动作处理程序。

提供商网络170可以由诸如公司或公共部门组织的实体运营以经由互联网和/或其他网络向一组分布式客户端提供资源(诸如资源171a-171n)和/或服务(诸如各种类型的基于云的计算或存储)。提供商网络170可以包括托管各种资源池的许多数据中心,诸如物理和/或虚拟化计算机服务器、存储装置以及用于实现并分发由提供商提供的基础设施和服务的联网设备的集合。在一些实施例中,可以将资源按照被称作“实例”(诸如虚拟或物理计算实例或存储实例)的单元提供给客户端。虚拟计算实例可以例如包括具有指定的计算容量(其可以通过指示cpu的类型和数量、主存储器大小等来指定)和指定的软件栈(例如,操作系统的特定版本,其可以进而在管理程序之上运行)的一个或多个服务器。可以单独地或相结合地使用许多不同类型的计算装置以在不同的实施例中实现提供商网络170的资源,包括通用或专用计算机服务器、存储装置、网络装置等。

在一个实施例中,提供商网络170可以为客户端实现一组灵活的资源保留、控制和访问接口。例如,提供商网络170可以实现允许客户端了解资源、选择资源、购买对资源的访问和/或保留资源的程序资源保留接口(例如,经由网站或一组网页)。在一个实施例中,可以使用客户端可访问的服务来代表客户端保留资源。在一个实施例中,提供商网络170可以使用提供商网络的选择的资源池的一个或多个资源来代表客户端执行任务。在一个实施例中,可以基于各种任务的预期计算需要自动地选择资源池。在一个实施例中,可以基于由客户端提交的特定资源请求或保留来选择资源池。

提供商网络170还可以包括监视功能180。监视功能180可以例如在资源的操作和/或使用期间监视任一个资源。监视功能180可以使用代理软件或任何其他适合的技术来监视个别资源。在一个实施例中,监视提供商网络中的资源可以包括监视一个或多个服务日志、监视一个或多个服务度量和/或监视任何适合的数据流。在一个实施例中,监视可以将与资源171a-171n的操作有关的性能度量、使用度量和/或其他适合的数据与预定阈值和/或警报进行比较。任何适合的预定阈值和/或警报可以表示特定触发器的一个或多个条件。当计算资源的监视指示满足触发器的任何条件时,监视功能180可以激发或者激活触发器。监视功能180可以基于阈值和/或警报确定对触发器来说已经满足条件。例如,监视功能180可以检测警报状态改变并且作为结果可以使触发器被激发。在一个实施例中,外部代理可以实现监视功能180并且激发触发器。在一个实施例中,提供商网络170内的服务可以实现监视功能180并且激发触发器。在一个实施例中,监视功能180可以通过经由适当的应用编程接口(api)向基于规则的动作触发系统100发送请求来激发触发器。

在一个实施例中,基于规则的动作触发系统100可以包括规则实施功能120。规则实施功能120可以例如在接收到激发触发器的请求之后按照激发的触发器行动。当接收到激发触发器的请求时,规则实施功能120可以确定哪些规则(若有的话)包括触发器。为了确定哪些规则包括触发器,规则实施功能120可以参考数据存储115中所存储的规则、触发器和/或其他适当的数据。在检索到包括经激发的触发器的任何规则之后,规则实施功能120可以确定所检索到的规则中定义的任何动作。规则实施功能120然后可以发起所检索到的规则中定义的任何动作或者以其他方式使动作被执行。当发起动作时,规则实施功能120可以供应动作的元数据或参数,例如,如在激发触发器的请求中接收到的。以这种方式,当特定触发器被激活时基于规则的动作触发系统100可以使用定义的规则来执行特定动作。

图2图示出根据一些实施例的提供商网络中的基于规则的动作触发的示例系统环境的另外的方面。基于规则的动作触发系统100可以包括消息生成功能130。当由规则实施功能120调用时,消息生成功能130可以生成描述待例如当与动作相关联的触发器被激发时执行的动作的消息145。消息生成功能130可以将消息145发送到消息传送服务140。可以基于给任何激发的触发器供应的运行时输入参数和/或与动作相关联的缺省参数来生成消息。在一个实施例中,作业分配器150可以与消息传送服务140交互以基于消息145分配作业。

在一个实施例中,动作执行环境160可以执行在消息145中描述并且由作业分配器150分配的动作。动作执行环境160可以包括用于执行指令(包括脚本、工作流和/或编译的程序代码)的一个或多个环境。动作执行环境160可以包括一个或多个动作处理程序,诸如动作处理程序161a和161b至161n。尽管出于图示的目的示出三个动作处理程序161a、161b和161n,然而设想了可以使用任何数量的动作处理程序。由动作处理程序161a-161n执行的动作可以包括资源171a-171n和/或其组成要素中的任一个的任何适合的修改和/或配置。例如,当特定触发器被激发时动作可以在提供商网络170中自动地终止、挂起或者重新启动计算实例。作为另一示例,当向特定存储位置、目录或桶添加图像文件时可以执行动作以自动地重新调整图像文件的大小至预定义宽度和预定义高度。动作可以由动作处理程序基于触发器被激发、基于调度或者基于来自用户或其他计算组件的请求来执行。

在一个实施例中,基于规则的动作触发系统100可以包括推荐引擎。推荐引擎可以使用机器学习技术来基于客户资源使用模式和/或资源元数据向客户推荐自动化。推荐引擎还可以适应客户反应并且随着时间的推移而改进推荐。可以使用具有来自客户的输入的反馈环和基于规则的动作触发系统100中的流行趋势来改进推荐。

图3图示出根据一些实施例的提供商网络中的基于规则的动作触发的示例系统环境(包括队列服务)的另外的方面。在一个实施例中,消息传送服务140可以使用管理一个或多个队列的队列服务来实现。描述待执行的动作的消息145可以被发送到消息传送服务或者放置在一个或多个队列中。尽管出于图示的目的示出三个队列141a、141b和141n,然而设想了可以使用任何适合数量的队列。在一个实施例中,队列141a可以是最初存储由消息生成功能130生成的所有消息的主队列,而其他队列141b-141n可以仅在主队列不足以处理所有消息的情况下用作备用队列。

在一个实施例中,作业分配器150可以使用任务轮询器151来实现。任务轮询器151可以以适合的间隔轮询一个或多个队列以确定所述队列是否包括消息,例如,描述待执行的动作的消息。任务轮询器151可以在从主队列141a接收到适当的错误消息时发起备用队列141b-141n的使用。任务轮询器151可以以特定间隔轮询各个队列141a-141n中的每一个。在一个实施例中,任务轮询器151可以比备用队列141b-141n更频繁地轮询主队列141a。

图4a图示出根据一些实施例的提供商网络中的基于规则的动作触发的示例系统环境(包括触发器到动作的一对一映射)的另外的方面。如以上所讨论的,数据存储115可以存储触发器111a、动作111b和规则111c。在图4a中所示的示例中,触发器111a可以包括触发器400a和400b至400n。然而,设想了可以在数据存储115中存储任何适合数量的触发器。

在图4a中所示的示例中,动作111b可以包括动作配置410a和一个或多个附加动作配置(未示出)。每个动作配置(诸如动作配置410a)可以包括动作(诸如动作411)、用于该动作的任何缺省参数(诸如缺省参数412)以及该动作所需的任何角色(诸如角色413)。动作可以包括用于执行一个或多个任务的功能的一个或多个命令、指令或其他调用。动作可以与适用于动作的所有调用的缺省参数相关联。在一个实施例中,也可以在动作被调用时为动作的特定实例指定运行时输入参数。在一个实施例中,运行时输入参数可以扩增但不覆写缺省参数。例如,如果动作涉及在图像文件被添加时重新调整图像文件的大小,则缺省参数可以包括目标宽度和高度,而运行时输入参数可以包括图像文件的存储位置。角色可以包括允许动作能够在运行时访问一组资源的权限或其他安全凭证。角色可以与任何特定用户或用户组无关并且可以表示机构对所关联的动作的授权。

在图4a中所示的示例中,规则111c可以包括规则420a和一个或多个附加规则(未示出)。规则420a可以指定触发器中的一个(诸如触发器400a)和动作配置中的一个,诸如动作配置410a。当触发器400a被激发时,规则实施功能120可以使用数据存储115来确定触发器400a是规则420a的一部分。规则实施功能120也可以使用数据存储115来确定动作配置410a也是规则420a的一部分,即,绑定到触发器400a。规则实施功能120然后可以使所指定的动作411以缺省参数412(和可选地运行时输入参数)并且使用角色413来执行。在一个实施例中,消息生成功能130可以生成指定动作411、缺省参数412、任何运行时输入参数和角色413的消息。

图4b图示出根据一些实施例的提供商网络中的基于规则的动作触发的示例系统环境(包括触发器到动作的一对多映射)的另外的方面。在图4b中所示的示例中,触发器111a可以包括触发器400a和400b至400n。然而,设想了可以在数据存储115中存储任何适合数量的触发器。在图4b中所示的示例中,动作111b可以包括动作配置410a和410b至410n。然而,设想了可以在数据存储115中存储任何适合数量的动作配置。如以上所讨论的,动作配置410a-410n中的每一个可以包括动作、用于该动作的任何缺省参数和该动作所需的任何角色。动作配置410a-410n中的个别动作配置可以表示相同的动作(例如,具有不同的缺省参数)或不同的动作。

在一个实施例中,规则111c可以包括触发器到动作的一对多映射。在图4b中所示的示例中,规则111c可以包括规则420a和420b。规则420a可以表示触发器400a到动作配置410a的绑定。规则420b可以表示相同的触发器400a到不同的动作配置410b的绑定。当触发器400a被激发时,规则实施功能120可以使用数据存储115来确定触发器400a是规则420a和420b的一部分。规则实施功能120也可以使用数据存储115来确定动作配置410a是规则420a的一部分并且动作配置410b是规则420b的一部分。规则实施功能120然后可以使两个动作配置410a和410b中所指定的动作被执行。在一个实施例中,消息生成功能130可以生成指定动作、与动作相关联的缺省参数、任何运行时输入参数和任何必要的角色的一个或多个消息。

图4c图示出根据一些实施例的提供商网络中的基于规则的动作触发的示例系统环境(包括触发器到动作的多对一映射)的另外的方面。在图4c中所示的示例中,触发器111a可以包括触发器400a和400b至400n。然而,设想了可以在数据存储115中存储任何适合数量的触发器。在图4c中所示的示例中,动作111b可以包括动作配置410a和410b至410n。然而,设想了可以在数据存储115中存储任何适合数量的动作配置。如以上所讨论的,动作配置410a-410n中的每一个可以包括动作、用于该动作的任何缺省参数和该动作所需的任何角色。

在一个实施例中,规则111c可以包括触发器到动作的多对一映射。在图4c中所示的示例中,规则111c可以包括规则420a和420c。规则420a可以表示触发器400a到动作配置410a的绑定。规则420c可以表示不同的触发器400b到相同的动作配置410a的绑定。当触发器400a被激发时,规则实施功能120可以使用数据存储115来确定触发器400a是规则420a的一部分。类似地,当触发器400b被激发时,规则实施功能120可以使用数据存储115来确定触发器400b是规则420c的一部分。当任何一个或两个触发器400a和/或400b被激发时,规则实施功能120可以使用数据存储115来确定动作配置410a是规则420a的一部分并且动作配置410a也是规则420c的一部分。如果触发器400a或400b中的任何一个已被激发或者两者已被激发,则规则实施功能120然后可以使在动作配置410a中所指定的动作被执行。在一个实施例中,消息生成功能130可以生成指定动作、与该动作相关联的缺省参数、任何运行时输入参数和任何必要的角色的消息。

图4d图示出根据一些实施例的提供商网络中的基于规则的动作触发的示例系统环境(包括触发器到动作的多对多映射)的另外的方面。在图4d中所示的示例中,触发器111a可以包括触发器400a和400b至400n。然而,设想了可以在数据存储115中存储任何适合数量的触发器。在图4d中所示的示例中,动作111b可以包括动作配置410a和410b至410n。然而,设想了可以在数据存储115中存储任何适合数量的动作配置。如以上所讨论的,动作配置410a-410n中的每一个可以包括动作、用于该动作的任何缺省参数和该动作所需的任何角色。

在一个实施例中,规则111c可以包括触发器到动作的多对多映射。在图4d中所示的示例中,规则111c可以包括规则420a、420b、420c和420d。规则420a可以表示第一触发器400a到第一动作配置410a的绑定。规则420b可以表示第一触发器400a到第二动作配置410b的绑定。规则420c可以表示第二触发器400b到第一动作配置410a的绑定。规则420d可以表示第二触发器400b到第二动作配置410b的绑定。当触发器400a被激发时,规则实施功能120可以使用数据存储115来确定触发器400a是规则420a和420b的一部分。规则实施功能120也可以使用数据存储115来确定动作配置410a是规则420a的一部分并且动作配置410b是规则420b的一部分。类似地,当触发器400b被激发时,规则实施功能120可以使用数据存储115来确定触发器400b是规则420c和420d的一部分。规则实施功能120也可以使用数据存储115来确定动作配置410a是规则420c的一部分并且动作配置410b是规则420d的一部分。如果触发器400a或400b中的任何一个已被激发或者两者已被激发,则规则实施功能120然后可以使动作配置410a和410b中所指定的动作被执行。在一个实施例中,消息生成功能130可以生成指定动作、与动作相关联的缺省参数、任何运行时输入参数和任何必要的角色的一个或多个消息。

图5a图示出根据一些实施例的提供商网络中的基于规则的动作触发的示例系统环境(包括触发器到动作以及也到队列交换的映射)的另外的方面。在图5a中所示的示例中,触发器111a可以包括触发器400a和400b至400n。然而,设想了可以在数据存储115中存储任何适合数量的触发器。在图5a中所示的示例中,动作111b可以包括动作配置410a和410b至410n。然而,设想了可以在数据存储115中存储任何适合数量的动作配置。如以上所讨论的,动作配置410a-410n中的每一个可以包括动作、用于该动作的任何缺省参数和该动作所需的任何角色。

在一个实施例中,规则111c可以包括触发器到动作的映射和触发器到队列交换的映射。在图5a中所示的示例中,规则111c可以包括规则420a和420e。规则420a可以表示触发器400a到动作配置410a的绑定。规则420e可以表示相同的触发器400a到队列交换430的绑定。队列交换430可以指定待生成的一个或多个队列消息。当触发器400a被激发时,规则实施功能120可以使用数据存储115来确定触发器400a是规则420a和420e的一部分。规则实施功能120也可以使用数据存储115来确定动作配置410a是规则420a的一部分并且队列交换430是规则420b的一部分。规则实施功能120然后可以使动作配置410a中所指定的动作被执行。在一个实施例中,消息生成功能130可以生成指定动作、与动作相关联的缺省参数、任何运行时输入参数和任何必要的角色的一个或多个消息。附加地,规则实施功能120可以生成如由队列交换430指定的队列消息并且将该消息放置在队列中或者以其他方式将该消息发送到消息传送服务。例如,队列消息可以表示触发器400a在特定时间被激发或者动作配置410a中的动作被以特定参数并且在特定时间执行的通知(例如,给管理员或日志)。

图5b图示出根据一些实施例的提供商网络中的基于规则的动作触发的示例系统环境(包括触发器到队列交换而非到动作的映射)的另外的方面。在图5b中所示的示例中,触发器111a可以包括触发器400a和400b至400n。然而,设想了可以在数据存储115中存储任何适合数量的触发器。在图5b中所示的示例中,动作111b可以包括动作配置410a和410b至410n。然而,设想了可以在数据存储115中存储任何适合数量的动作配置。如以上所讨论的,动作配置410a-410n中的每一个可以包括动作、用于该动作的任何缺省参数和该动作所需的任何角色。

在一个实施例中,规则111c可以包括触发器到队列交换的映射。在图5b中所示的示例中,规则111c可以包括规则420f。规则420f可以表示触发器400n到队列交换430的绑定。队列交换430可以指定待生成的一个或多个队列消息。可以不将相同的触发器400n绑定到动作配置410a-410n中的任一个。当触发器400n被激发时,规则实施功能120可以使用数据存储115来确定触发器400n是规则420f的一部分。规则实施功能120也可以使用数据存储115来确定队列交换430是规则420f的一部分。规则实施功能120可以生成如由队列交换430指定的队列消息并且将该消息放置在队列中或者以其他方式将该消息发送到消息传送服务。例如,队列消息可以表示触发器400n在特定时间被激发的通知(例如,给管理员或日志)。

图6是图示出根据一些实施例的提供商网络中的基于规则的动作触发的方法的流程图。如605中所示,可以基于多个触发器和多个动作来定义多个规则。在一个实施例中,特定规则包括一个或多个触发器和一个或多个动作。可替代地,特定规则可以包括触发器和队列交换。触发器、动作和/或规则可以由用户使用预定义要素和/或定制要素来定义或者选择。

如610中所示,可以监视提供商网络中的多个资源。可以监视资源以确定是否激发任一个触发器。换句话说,可以在资源的操作或使用期间监视提供商网络中的条件以确定所述条件是否满足任何触发器。在一个实施例中,监视提供商网络中的资源可以包括监视一个或多个服务日志、一个或多个服务度量和/或一个或多个其他数据流。监视可以由任何适合的组件(诸如外部代理和/或服务本身)来执行。如615中所示,可以基于监视确定对特定一个或多个触发器来说已经满足条件。615中所示的操作可以包括将度量与阈值进行比较、对日志进行分析和/或检测警报级改变。如果对触发器来说已经满足条件,则可以例如从执行监视的外部代理、服务或其他实体向基于规则的动作触发系统发送“激发触发器”请求。

如620中所示,可以确定包括被激发的特定一个或多个触发器的规则中的特定一个或多个。可以响应于确定对特定一个或多个触发器来说满足条件而确定特定一个或多个规则。可以通过基于规则内定义的特定一个或多个触发器从数据存储中检索规则来确定特定一个或多个规则。所述特定规则中的每一个还可以包括特定一个或多个动作。

如625中所示,可以生成一个或多个消息。所述一个或多个消息可以描述也包括特定一个或多个触发器的特定一个或多个规则中的特定一个或多个动作。如630中所示,可以将所述一个或多个消息发送到消息传送服务。在一个实施例中,消息传送服务可以使用队列服务来实现,并且可以将所述一个或多个消息放置在由该队列服务管理的一个或多个队列中。

如635中所示,可以将所述一个或多个消息从消息传送服务分配给一个或多个动作处理程序。动作处理程序可以是动作执行环境的一部分。如640中所示,一个或多个动作处理程序可以执行所述一个或多个消息中所描述的一个或多个动作。在一个实施例中,执行的动作可以导致另一触发器被激发,使得针对不同的触发器、不同的规则和/或不同的动作再次执行610至640中所示的操作。以这种方式,触发器可以链接到其他触发器以执行动作的复杂链。

图7是图示出根据一些实施例的提供商网络中的基于规则的消息触发的方法的流程图。如605中所示,可以基于多个触发器和多个动作来定义多个规则。在一个实施例中,特定规则包括一个或多个触发器和一个或多个动作。可替代地,特定规则可以包括触发器和队列交换。触发器、动作和/或规则可以由用户使用预定义要素和/或定制要素来定义或者选择。

如610中所示,可以监视提供商网络中的多个资源。可以监视资源以确定是否激发任一个触发器。换句话说,可以在资源的操作或使用期间监视提供商网络中的条件以确定所述条件是否满足任何触发器。在一个实施例中,监视提供商网络中的资源可以包括监视一个或多个服务日志、一个或多个服务度量和/或一个或多个其他数据流。监视可以由任何适合的组件(诸如外部代理和/或服务本身)来执行。如615中所示,可以基于监视确定对特定一个或多个触发器来说已经满足条件。615中所示的操作可以包括将度量与阈值进行比较、对日志进行分析和/或检测警报级改变。如果对触发器来说已经满足条件,则可以例如从执行监视的外部代理、服务或其他实体向基于规则的动作触发系统发送“激发触发器”请求。

如720中所示,可以确定包括被激发的特定触发器的特定规则。可以响应于确定对特定触发器来说满足条件而确定特定规则。可以通过基于规则内定义的特定触发器从数据存储中检索规则来确定特定规则。所述特定规则还可以包括指定要生成的一个或多个队列消息的特定队列交换。

如725中所示,可以基于特定规则中的队列交换来生成队列消息。如730中所示,可以将队列消息发送到诸如队列服务的消息传送服务。在一个实施例中,队列消息可以被放置在由队列服务管理的一个或多个队列中并且最终递送给适当的接收方。

图8是图示出根据一些实施例的提供商网络中的基于调度的动作触发的方法的流程图。如605中所示,可以基于多个触发器和多个动作来定义多个规则。在一个实施例中,特定规则包括一个或多个触发器和一个或多个动作。可替代地,特定规则可以包括触发器和队列交换。触发器、动作和/或规则可以由用户使用预定义要素和/或定制要素来定义或者选择。

如807中所示,可以针对特定时间对触发器进行调度。可以将触发器作为一次性事件或者作为循环事件进行调度。例如,可以每天在特定时间、每七天在特定时间、在每月的特定天或者以任何其他适合的间隔对触发器进行调度。可以自动地或者基于用户输入对触发器进行调度。如810中所示,可以在提供商网络中监视时间的经过以确定何时激发任何调度的触发器。

如815中所示,可以基于监视确定已到达激发特定调度的触发器的时间。如果已到达触发器的时间,则可以例如从执行监视的外部代理、服务或其他实体向基于规则的动作触发系统发送“激发触发器”请求。如620中所示,可以确定包括被激发的特定调度的触发器的规则中的特定一个或多个。可以响应于确定对所述特定调度的触发器来说满足条件而确定特定一个或多个规则。可以通过基于规则内定义的特定调度的触发器从数据存储中检索规则来确定特定一个或多个规则。所述特定规则中的每一个还可以包括特定一个或多个动作。

如625中所示,可以生成一个或多个消息。所述一个或多个消息可以描述也包括特定调度的触发器的特定一个或多个规则中的特定一个或多个动作。如630中所示,可以将所述一个或多个消息发送到消息传送服务。在一个实施例中,消息传送服务可以使用队列服务来实现,并且可以将所述一个或多个消息放置在由该队列服务管理的一个或多个队列中。

如635中所示,可以将所述一个或多个消息从消息传送服务分配给一个或多个动作处理程序。动作处理程序可以是动作执行环境的一部分。如640中所示,一个或多个动作处理程序可以执行所述一个或多个消息中所描述的一个或多个动作。在一个实施例中,执行的动作可以导致另一触发器被激发,使得针对不同的触发器、不同的规则和/或不同的动作再次执行610至640中所示的操作。以这种方式,触发器可以链接到其他触发器以执行动作的复杂链。

用于基于规则的动作触发的路由处理程序

图9图示出根据一些实施例的用于基于规则的动作触发的路由处理程序的示例系统环境。路由处理程序900可以将请求路由到以上所讨论的组件中的各个组件,包括基于规则的动作触发系统100的组件和由基于规则的动作触发系统100使用的其他组件。路由处理程序900也可以被称为基于规则的动作触发系统100及其相关组件的代理。路由处理程序900将请求路由到的组件可以在本文中被称为子服务。路由处理程序900可以将个别请求路由到多个子服务(诸如子服务950a和950b至950n)中的选择的子服务。尽管出于图示的目的示出三个子服务950a、950b和950n,然而设想了可以使用任何适合数量和配置的子服务。子服务950a-950n可以表示不同的子服务或同一子服务的不同版本。如图9的示例中所示,所述子服务中的一个或多个(诸如子服务950a)可以实现基于规则的动作触发系统100的功能的各方面。所述子服务中的其他子服务(诸如子服务950b和950n)可以实现由基于规则的动作触发系统100调用的或者以其他方式与基于规则的动作触发系统100相关联的功能。以这种方式,路由处理程序900可以为与和以上所讨论的基于规则的动作触发和/或基于调度的动作触发相关联的各种不同的子服务950a-950n的交互提供统一的客户体验。附加地,可以在不用更新和/或重新部署路由处理程序本身的情况下为一队路由处理程序更新路由信息。

路由处理程序900可以例如通过网络从一个或多个客户端990接收请求901。客户端990可以表示维护路由处理程序900的组织的外部客户、维护路由处理程序900的组织的内部客户或子服务950a-950n中的任何适合的子服务。个别请求可以指定待由个别子服务执行的操作。如将在下面更详细地讨论的,路由处理程序900可以确定子服务中的哪一个是任何特定请求的目标。路由处理程序900然后可以例如通过网络将请求路由到该特定子服务(例如,到实现该子服务的一个或多个主机)。如果对请求的任何响应由接收方子服务生成,则路由处理程序可以接收该响应并且将它路由到发送了请求的客户端。如图9的示例中所示,路由处理程序900可以发送请求951a并从子服务950a接收响应952a,可以发送请求951b并从子服务950b接收响应952b,并且可以发送请求951n并从子服务950n接收响应952n。从客户端接收到的请求901可以共同地表示路由到子服务950a-950n的请求951a-951n。路由到客户端的响应902可以共同地表示从子服务950a-950n接收到的响应952a-952n。

路由处理程序900可以使用一个或多个计算装置来实现,所述一个或多个计算装置中的任一个可以由图16中所图示的示例计算装置3000来实现。在各种实施例中,路由处理程序900的功能的部分可以由同一计算装置或者由任何适合数量的不同的计算装置来提供。如果路由处理程序900的组件中的任一个使用不同的计算装置来实现,则所述组件及其相应的计算装置可以例如经由网络以通信方式耦合。路由处理程序900可以是一队路由处理程序的一部分。该队路由处理程序中的其他路由处理程序可以被类似地配置并且/或者提供类似的功能。

子服务950a-950n中的每一个也可以使用一个或多个计算装置来实现,所述一个或多个计算装置中的任一个可以由图16中所图示的示例计算装置3000来实现。在各种实施例中,子服务950a-950n中的任一个的功能可以由同一计算装置或者由任何适合数量的不同的计算装置来提供。如果子服务950a-950n中的一个的组件中的任一个使用不同的计算装置来实现,则所述组件及其相应的计算装置可以例如经由网络以通信方式耦合。

图10图示出根据一些实施例的用于基于规则的动作触发的路由处理程序的示例系统环境(包括动态加载的路由图的使用)的另外的方面。路由处理程序900可以使用从外部数据存储915中检索到的路由图916来将请求中的特定操作映射到特定子服务。数据存储915可以使用任何适合的存储技术来实现。在一个实施例中,路由处理程序900可以包括请求分析功能910、动态路由配置功能920和操作至子服务映射功能930。设想了路由处理程序900可以包括未示出的附加组件、比所示更少的组件或所示组件的不同组合、配置或量。

在一个实施例中,请求分析功能910可以对传入请求901执行请求分析。使用任何适合的技术,请求分析功能910可以确定传入请求中所指定的一个或多个操作。例如,可以将传入请求作为http(超文本传输协议)请求来接收,并且可以在该http请求的特定部分中指定操作。各种操作可以表示由各种子服务提供的各种api(应用编程接口)。

在一个实施例中,动态路由配置功能920可以维护最新的路由图916。路由图916可以被以适当的间隔从外部数据存储915中检索并且由动态路由配置功能920缓存。路由图916可以在路由处理程序900处动态地加载,例如,在无需更新路由处理程序的程序代码的情况下在路由处理程序的执行期间加载,重新部署路由处理程序,或者重新启动路由处理程序。路由图916可以表示特定操作名称(或其他标识符)到提供那些操作的特定子服务的映射。路由图916可以使用键-值数据存储来实现,在所述键-值数据存储中键表示操作名称(或其他标识符)并且所关联的值表示子服务名称(或其他标识符)。在一个实施例中,多个路由处理程序(例如,在一队路由处理程序中)可以例如通过缓存路由图的不同副本来参考相同的路由图916。

在一个实施例中,操作至子服务映射功能930可以使用路由图916来确定传入请求应该被路由到的特定子服务。操作至子服务映射功能930可以在路由表916(如由动态路由配置功能920所提供的)中查找特定操作(如由请求分析功能910所确定的)以确定提供请求中所命名的操作的特定子服务。路由处理程序900然后可以将请求路由到如由操作至子服务映射功能930所确定的适当的子服务。可以将由路由处理程序900从子服务接收到的任何响应路由到发送了请求的客户端。一队主机可以实现特定子服务,并且将请求路由到子服务可以包括将请求路由到与该子服务相关联的负载均衡器。负载均衡器然后可以将请求路由到特定主机。

图11图示出根据一些实施例的用于基于规则的动作触发的路由处理程序的示例系统环境(包括针对特定子服务的http客户端的使用)的另外的方面。在一个实施例中,可以将请求901表达为http请求,并且路由处理程序900可以使用多个http客户端来与子服务950a-950n进行通信。在一个实施例中,路由处理程序900可以每子服务或每子服务主机使用一个http客户端。如图11的示例中所示,路由处理程序900可以使用一个http客户端940a来与子服务950a进行通信,使用另一http客户端940b来与子服务950b进行通信,并且使用又一个http客户端940n来与子服务950n进行通信。然而,设想了可以使用任何适合数量和配置的http客户端。当路由处理程序900设法将请求路由到子服务950a-950n中的对应一个时可以创建(例如,例示)或者重新使用http客户端940a-940n中的任一个。

在一个实施例中,http客户端可以在该http客户端在将请求转发到子服务中的一个之后等待响应的同步模式下执行。在一个实施例中,一个或多个http客户端可以替代地在异步模式下执行。在异步模式下,http客户端中的一个或多个线程可以在所述一个或多个线程已用于将请求路由到子服务之后被返回给线程池。一个或多个队列可以由路由处理程序900使用来从子服务接收响应。以这种方式使用异步输入/输出(i/o),可以更高效地使用路由处理程序900处的资源。

图12图示出根据一些实施例的用于基于规则的动作触发的路由处理程序的示例系统环境(包括子服务的示例)的另外的方面。在各种实施例中,所述子服务可以包括用于基于规则的动作触发、对动作进行调度、基于规则执行动作和/或任何其他适合的任务的子服务。如图12的示例中所示,路由处理程序900可以将请求路由到规则子服务950c、调度子服务950d和动作子服务950e。规则子服务950c可以表示以上针对基于规则的动作触发系统100所描述的功能,例如,如以上关于图1、图2和图3所讨论的。例如,规则子服务950c可以定义将触发器绑定到动作并且可以激发触发器以基于规则执行动作的规则。规则子服务950c可以接收从路由处理程序900路由的请求951c并且向该路由处理程序发送响应952c。调度子服务950d可以对待在特定时间执行的动作进行调度,例如,如以上关于图8所讨论的。调度子服务950d可以接收从路由处理程序900路由的请求951d并且向该路由处理程序发送响应952d。动作子服务950e可以表示以上针对动作处理程序161a-161n和/或动作执行环境160所描述的功能,例如,如以上关于图1、图2和图3所讨论的。例如,动作子服务950e可以对提供商网络170中的资源171a-171n执行基于规则的动作和/或基于调度的动作。动作子服务950e可以接收从路由处理程序900路由的请求951e并且向该路由处理程序发送响应952e。

图13图示出根据一些实施例的用于基于规则的动作触发的路由处理程序的示例系统环境(包括更新路由图以反映对子服务的更新)的另外的方面。当特定子服务处的一个或多个操作被更新时,可以更新路由图而不是路由处理程序它本身。路由处理程序可以是一队路由处理程序的一部分。通过更新路由图而不是整队路由处理程序,可以高效地实现对子服务的更新。因此,如图13中所示,更新的子服务950f可以替换或者补充另一子服务(例如,子服务950b)。与和路由处理程序900一起使用的较早版本相比,经更新的子服务950f可以实现并向客户端提供:一个或多个附加的操作、一个或多个更少的操作和/或一个或多个修改的操作。经修改的操作可以反映与操作相关联的操作名称(或其他标识符)和/或参数方面的差异。在一个实施例中,服务所有者960可以负责更新经更新的子服务950f并且将经更新的子服务950f添加到其业务由路由处理程序900管理的子服务的集合。当经更新的子服务950f被添加到由路由处理程序900管理的子服务的集合时,服务所有者960也可以产生更新的路由图917。经更新的路由图917可以表示特定操作名称(或其他标识符)到提供那些操作(包括针对经更新的子服务950f的经更新的操作)的特定子服务的映射。服务所有者960可以将经更新的路由图917存储在数据存储915中。在一个实施例中,服务所有者960可以提供任何适合的安全凭证以便用数据存储915中的经更新的路由图917覆写陈旧的路由图916。

图14图示出根据一些实施例的用于基于规则的动作触发的路由处理程序的示例系统环境(包括子服务和路由处理程序处的度量收集)的另外的方面。在一个实施例中,个别子服务950a-950n可以收集与请求901的接收和/或处理有关的性能度量。如图14的示例中所示,子服务950a可以包括度量收集功能955a,子服务950b可以包括度量收集功能955b,并且子服务950n可以包括度量收集功能955n。路由处理程序900也可以包括用于收集与它执行的各种任务(包括路由请求901和响应902)有关的性能度量的度量收集功能945。所收集的度量可以涉及网络使用、处理器使用、存储器使用、存储使用、电力使用和/或其他资源使用。各种度量收集功能955a-955n和945可以将所收集的度量报告给任何适合的组件以用于聚合和/或分析。例如,为了测量用于请求的路由和处理的端到端延迟,可以从路由处理程序900和接收方子服务两者收集请求的延迟度量。

在一个实施例中,子服务950a-950n中的个别子服务可以表示同一子服务的不同版本。例如,子服务950a-950n中的两个可以表示规则子服务的较早版本和规则子服务的较新版本。路由处理程序900可以通过将一些请求路由到一个版本并且将其他请求路由到另一个版本来协助同一子服务的两个版本的a/b测试。可以基于客户端白名单和/或客户端黑名单路由请求。在一个实施例中,对应子服务处的度量收集功能以及路由处理程序900处的度量收集功能945可以用于例如通过确定同一子服务的两个不同版本的相对性能来评估测试的结果。

图15是图示出根据一些实施例的用于使用用于基于规则的动作触发的路由处理程序的方法的流程图。如1505中所示,可以在请求路由器处从客户端接收请求。该请求可以指定特定子服务处的特定操作。如1510中所示,可以确定请求中的特定操作。在一个实施例中,可以使用请求分析来确定特定操作,例如,以标识http请求中的操作名称(或其他标识符)。

如1515中所示,可以基于特定操作确定子服务中的特定一个。子服务中的特定一个可以使用表示操作名称(或其他标识符)与子服务名称(或其他标识符)之间的关联的路由图来确定。可以从数据存储动态地加载路由图,使得一队中的每个路由处理程序具有最新的路由信息。

如1520中所示,可以将请求从路由处理程序路由到特定子服务。如1525中所示,可以在路由处理程序处从特定子服务接收对请求的响应。如1530中所示,可以将响应从路由处理程序返回给客户端。

可以鉴于以下条款更好地理解上文:

1.一种系统,包括:

多个计算装置,所述多个计算装置被配置成实现基于规则的动作触发系统和包括多个资源的提供商网络,其中所述基于规则的动作触发系统被配置成:

至少部分地基于多个触发器和多个动作来定义多个规则,其中所述多个规则中的每一个包括相应一个或多个所述触发器和相应一个或多个所述动作;

接收激发特定一个所述触发器的请求,其中用于激发所述特定一个所述触发器的一个或多个条件是至少部分地基于对所述提供商网络中的所述多个资源的监视而确定的;

确定包括所述特定一个所述触发器的特定一个或多个所述规则;

生成一个或多个消息,所述一个或多个消息描述包括所述特定一个所述触发器的所述特定一个或多个所述规则中的特定一个或多个所述动作;

将所述一个或多个消息发送到消息传送服务;以及

将所述一个或多个消息从所述消息传送服务递送给一个或多个动作处理程序,其中所述一个或多个动作处理程序被配置成执行所述一个或多个消息中所描述的所述特定一个或多个所述动作。

2.根据条款1所述的系统,其中所述基于规则的动作触发系统还被配置成:

确定包括所述特定一个所述触发器的附加的一个所述规则,其中所述附加的一个所述规则包括队列交换;以及

至少部分地基于所述附加的一个所述规则中的所述队列交换向队列服务发送队列消息。

3.根据条款1所述的系统,其中所述基于规则的动作触发系统还被配置成:

接收激发附加的一个所述触发器的请求,其中所述附加的一个所述触发器是针对特定时间而调度的;

生成一个或多个附加消息,所述一个或多个附加消息描述包括所述附加的一个所述触发器的附加的一个或多个所述规则中的附加的一个或多个所述动作;

将所述一个或多个附加消息发送到所述消息传送服务;以及

将所述一个或多个附加消息从所述消息传送服务递送给所述一个或多个动作处理程序,其中所述一个或多个动作处理程序被配置成执行所述一个或多个附加消息中所描述的所述附加的一个或多个所述动作。

4.根据条款1所述的系统,其中,响应于所述一个或多个消息中所描述的所述特定一个或多个所述动作,所述基于规则的动作触发系统还被配置成:

接收激发附加的一个或多个所述触发器的请求;

确定包括所述附加的一个或多个所述触发器的附加的一个或多个所述规则;

生成一个或多个附加消息,所述一个或多个附加消息描述包括所述附加的一个或多个所述触发器的所述附加的一个或多个所述规则中的附加的一个或多个所述动作;

将所述一个或多个附加消息发送到所述消息传送服务;以及

将所述一个或多个附加消息从所述消息传送服务递送给所述一个或多个动作处理程序,其中所述一个或多个动作处理程序被配置成执行所述一个或多个附加消息中所描述的所述附加的一个或多个动作。

5.一种计算机实现的方法,包括:

确定包括一个或多个触发器的一个或多个规则,其中在包括多个资源的提供商网络中确定所述一个或多个触发器的一个或多个条件;

确定包括所述一个或多个触发器的所述一个或多个规则中的一个或多个动作;以及

执行所述一个或多个动作,包括修改所述提供商网络中的所述多个资源中的一个或多个。

6.根据条款5所述的方法,还包括:

生成描述所述一个或多个动作的一个或多个消息;

将所述一个或多个消息发送到消息传送服务;以及

将所述一个或多个消息从所述消息传送服务递送给一个或多个动作处理程序。

7.根据条款6所述的方法,其中所述消息传送服务包括队列服务,其中所述一个或多个消息被放置在由所述队列服务管理的一个或多个队列中,并且其中所述一个或多个消息由作业分配器从所述一个或多个队列中移除。

8.根据条款5所述的方法,还包括:

确定包括所述一个或多个触发器中的至少一个的附加规则,其中所述附加规则包括队列交换;以及

至少部分地基于所述附加规则中的所述队列交换向队列服务发送队列消息。

9.根据条款5所述的方法,还包括:

针对特定时间对附加触发器进行调度;

响应于所述特定时间的到达,确定包括所述附加触发器的一个或多个附加规则中的一个或多个附加动作;以及

执行所述一个或多个附加动作。

10.根据条款5所述的方法,其中,响应于执行所述一个或多个动作,所述方法还包括:

激发一个或多个附加触发器;

确定包括所述一个或多个附加触发器的一个或多个附加规则;

确定包括所述一个或多个附加触发器的所述一个或多个附加规则中的一个或多个附加动作;以及

执行所述一个或多个附加动作。

11.根据条款5所述的方法,其中所述一个或多个条件是至少部分地基于对所述提供商网络中的所述多个资源的监视而确定的,其中所述监视包括监视一个或多个服务日志、监视一个或多个服务度量、监视一个或多个数据流、监视一个或多个警报状态改变或其组合。

12.根据条款5所述的方法,还包括:

接收至少部分地基于多个触发器和多个动作来定义多个规则的用户输入,其中所述多个规则中的每一个包括相应一个或多个所述触发器和相应一个或多个所述动作。

13.一种存储程序指令的计算机可读存储介质,所述程序指令可由计算机执行以执行:

至少部分地基于多个触发器和多个动作来定义多个规则,其中所述多个规则中的每一个包括相应一个或多个所述触发器和相应一个或多个所述动作;

确定对特定一个或多个所述触发器来说满足一个或多个条件,其中在包括多个资源的提供商网络中确定所述一个或多个条件;

确定包括所述特定一个或多个所述触发器的特定一个或多个所述规则;以及

发送一个或多个消息,所述一个或多个消息描述包括所述特定一个或多个所述触发器的所述特定一个或多个所述规则中的特定一个或多个所述动作,其中一个或多个动作处理程序被配置成接收所述一个或多个消息并且执行所述一个或多个消息中所描述的所述特定一个或多个所述动作。

14.根据条款13所述的计算机可读存储介质,其中,在发送所述一个或多个消息时,所述程序指令还可由计算机执行以执行:

将所述一个或多个消息发送到消息传送服务;以及

将所述一个或多个消息从所述消息传送服务递送给所述一个或多个动作处理程序。

15.根据条款13所述的计算机可读存储介质,其中所述规则中的至少一个将所述触发器中的一个绑定到所述动作中的多个。

16.根据条款13所述的计算机可读存储介质,其中所述程序指令还可由计算机执行以执行:

确定包括所述特定一个或多个所述触发器的附加的一个所述规则,其中所述附加的一个所述规则包括队列交换;以及

至少部分地基于所述附加的一个所述规则中的所述队列交换向队列服务发送队列消息。

17.根据条款13所述的计算机可读存储介质,其中所述程序指令还可由计算机执行以执行:

针对特定时间对附加的一个所述触发器进行调度;以及

发送一个或多个附加消息,所述一个或多个附加消息描述包括所述附加的一个所述触发器的附加的一个或多个所述规则中的附加的一个或多个所述动作,其中所述一个或多个动作处理程序被配置成接收所述一个或多个附加消息并且执行所述一个或多个附加消息中所描述的所述附加的一个或多个所述动作。

18.根据条款13所述的计算机可读存储介质,其中,响应于执行所述一个或多个消息中所描述的所述特定一个或多个所述动作,所述程序指令还可由计算机执行以执行:

激发附加的一个或多个所述触发器;

确定包括所述附加的一个或多个所述触发器的附加的一个或多个所述规则;

发送一个或多个附加消息,所述一个或多个附加消息描述包括所述附加的一个或多个所述触发器的所述附加的一个或多个所述规则中的附加的一个或多个所述动作,其中所述一个或多个动作处理程序被配置成接收所述一个或多个附加消息并且执行所述一个或多个附加消息中所描述的所述附加的一个或多个所述动作。

19.根据条款13所述的计算机可读存储介质,其中所述一个或多个条件是至少部分地基于对所述提供商网络中的所述多个资源的监视而确定的,其中所述监视包括监视一个或多个服务日志、监视一个或多个服务度量、监视一个或多个数据流、监视一个或多个警报状态改变或其组合。

20.根据条款13所述的计算机可读存储介质,其中,在定义所述多个规则时,所述程序指令还可由计算机执行以执行:

接收定义所述多个规则的用户输入,其中所述用户输入包括对一个或多个预定义动作、一个或多个定制动作或者一个或多个预定义动作和一个或多个定制动作的选择。

此外,可以鉴于以下附加条款更好地理解上文:

1.一种系统,包括:

多个计算装置,所述多个计算装置被配置成实现多个子服务和路由处理程序,并且其中所述路由处理程序被配置成:

从客户端接收指定所述多个子服务中的特定一个处的特定操作的请求,其中所述多个子服务包括规则子服务和动作子服务,其中所述规则子服务包括用于使用多个触发器和多个动作来定义多个规则的一个或多个操作,其中所述规则中的个别规则被定义成将相应一个或多个所述触发器绑定到相应一个或多个所述动作,并且其中所述动作子服务包括用于在包括多个资源的提供商网络中执行所述动作的一个或多个操作;

确定所述请求中的所述特定操作;

至少部分地基于所述特定操作确定所述子服务中的所述特定一个,其中所述子服务中的所述特定一个是使用路由图来确定,其中所述路由图被从数据存储动态地加载到所述路由处理程序;

将所述请求路由到所述子服务中的所述特定一个;

从所述子服务中的所述特定一个接收对所述请求的响应;以及

将所述响应返回给所述客户端。

2.根据条款1所述的系统,其中所述多个子服务包括调度子服务,其中所述调度子服务包括用于在特定时间对所述动作中的个别动作进行调度的一个或多个操作。

3.根据条款1所述的系统,其中,响应于所述一个或多个操作在所述规则子服务处的修改或所述一个或多个操作在所述动作子服务处的修改,至少部分地基于所述路由图来生成更新的路由图,其中所述更新的路由图包括一个或多个新的或修改的操作到所述子服务中的特定一个的映射,并且其中所述更新的路由图被存储在所述数据存储中。

4.根据条款1所述的系统,其中所述特定子服务包括所述规则子服务,其中所述特定操作包括激发特定触发器的操作,并且其中,在执行所述激发所述特定触发器的操作时,所述规则子服务被配置成:

确定包括所述特定触发器的特定一个或多个所述规则;以及

生成一个或多个消息,所述一个或多个消息描述包括所述特定触发器的所述特定一个或多个所述规则中的特定一个或多个所述动作。

5.一种计算机实现的方法,包括:

在路由处理程序处从客户端接收指定多个子服务中的特定一个处的特定操作的请求,其中所述多个子服务包括用于定义多个规则的一个或多个操作,其中所述规则中的个别规则被定义成将多个触发器中的相应一个或多个绑定到多个动作中的相应一个或多个,并且其中所述多个子服务包括用于在包括多个资源的提供商网络中执行所述多个动作的一个或多个操作;

在所述路由处理程序处确定所述请求中的所述特定操作;

在所述路由处理程序处至少部分地基于所述特定操作确定所述子服务中的所述特定一个,其中所述子服务中的所述特定一个是使用由所述路由处理程序和一个或多个附加路由处理程序所共享的路由图来确定;以及

将所述请求路由到所述子服务中的所述特定一个。

6.根据条款5所述的方法,其中所述多个子服务包括规则子服务,其中所述规则子服务包括用于定义所述多个规则的所述一个或多个操作,并且其中所述规则子服务包括用于激发所述触发器中的一个或多个的一个或多个操作。

7.根据条款5所述的方法,其中所述多个子服务包括动作子服务,其中所述动作子服务包括用于在包括所述多个资源的所述提供商网络中执行所述多个动作的所述一个或多个操作。

8.根据条款5所述的方法,其中所述多个子服务包括调度子服务,其中所述调度子服务包括用于在特定时间对所述动作中的个别动作进行调度的一个或多个操作。

9.根据条款5所述的方法,其中所述路由图被从数据存储动态地加载到所述路由处理程序,并且其中所述方法还包括:

至少部分地基于所述路由图来生成更新的路由图,其中所述更新的路由图包括一个或多个新的或修改的操作到所述子服务中的特定一个的映射;以及

将所述更新的路由图存储在所述数据存储中。

10.根据条款5所述的方法,其中所述特定子服务包括规则子服务,其中所述特定操作包括激发特定触发器的操作,并且其中,在执行所述激发所述特定触发器的操作时,所述方法还包括:

确定包括所述特定触发器的特定一个或多个所述规则;以及

生成一个或多个消息,所述一个或多个消息描述包括所述特定触发器的所述特定一个或多个所述规则中的特定一个或多个所述动作。

11.根据条款5所述的方法,还包括:

在所述路由处理程序处从所述子服务中的所述特定一个接收对所述请求的响应;以及

将所述响应返回给所述客户端。

12.根据条款5所述的方法,其中所述请求是使用特定http客户端被路由到所述子服务中的所述特定一个,并且其中附加请求是使用附加http客户端被路由到所述子服务中的另一个。

13.一种存储程序指令的计算机可读存储介质,所述程序指令可由计算机执行以执行:

在路由处理程序处从客户端接收指定多个子服务中的特定一个处的特定操作的请求,其中所述多个子服务包括用于定义多个规则的一个或多个操作,其中所述规则中的个别规则被定义成将多个触发器中的相应一个或多个绑定到多个动作中的相应一个或多个,并且其中所述多个子服务包括用于在包括多个资源的提供商网络中执行所述多个动作的一个或多个操作;

在所述路由处理程序处确定所述请求中的所述特定操作;

在所述路由处理程序处至少部分地基于所述特定操作确定所述子服务中的所述特定一个,其中所述子服务中的所述特定一个是使用从数据存储加载并且由所述路由处理程序和一个或多个附加路由处理程序所共享的路由图来确定;以及

将所述请求路由到所述子服务中的所述特定一个。

14.根据条款13所述的计算机可读存储介质,其中所述多个子服务包括规则子服务,其中所述规则子服务包括用于定义所述多个规则的所述一个或多个操作,并且其中所述规则子服务包括用于激发所述触发器中的一个或多个的一个或多个操作。

15.根据条款13所述的计算机可读存储介质,其中所述多个子服务包括动作子服务,其中所述动作子服务包括用于在包括所述多个资源的所述提供商网络中执行所述多个动作的所述一个或多个操作。

16.根据条款13所述的计算机可读存储介质,其中所述多个子服务包括调度子服务,其中所述调度子服务包括用于在特定时间对所述动作中的个别动作进行调度的一个或多个操作。

17.根据条款13所述的计算机可读存储介质,其中所述程序指令还可由计算机执行以执行:

至少部分地基于所述路由图来生成更新的路由图,其中所述更新的路由图包括一个或多个新的或修改的操作到所述子服务中的特定一个的映射;以及

将所述更新的路由图存储在所述数据存储中。

18.根据条款13所述的计算机可读存储介质,其中所述特定子服务包括规则子服务,其中所述特定操作包括激发特定触发器的操作,并且其中,在执行所述激发所述特定触发器的操作时,所述规则子服务被配置成执行:

确定包括所述特定触发器的特定一个或多个所述规则;以及

生成一个或多个消息,所述一个或多个消息描述包括所述特定触发器的所述特定一个或多个所述规则中的特定一个或多个所述动作。

19.根据条款13所述的计算机可读存储介质,其中所述程序指令还可由计算机执行以执行:

在所述路由处理程序处从所述子服务中的所述特定一个接收对所述请求的响应;以及

将所述响应返回给所述客户端。

20.根据条款13所述的计算机可读存储介质,其中所述请求是使用特定http客户端被路由到所述子服务中的所述特定一个,其中附加请求是使用附加http客户端被路由到所述子服务中的另一个,并且其中所述特定http客户端被配置成使用异步输入/输出来路由所述请求。

说明性计算机系统

在至少一些实施例中,实现本文中所描述的一个或多个技术的一部分或全部的计算机系统可以包括包含或者被配置成访问一个或多个计算机可读介质的通用计算机系统。图16图示出这样的通用计算装置3000。在所图示的实施例中,计算装置3000包括经由输入/输出(i/o)接口3030耦合到系统存储器3020的一个或多个处理器3010。计算装置3000还包括耦合到i/o接口3030的网络接口3040。

在各种实施例中,计算装置3000可以是包括一个处理器3010的单处理器系统或包括数个处理器3010(例如,两个、四个、八个或另一适合的数量)的多处理器系统。处理器3010可以包括能够执行指令的任何适合的处理器。例如,在各种实施例中,处理器3010可以是实现各种指令集架构isa中的任一个(诸如x86、powerpc、sparc或mipsisa或任何其他适合的isa)的通用或嵌入式处理器。在多处理器系统中,处理器3010中的每一个可以通常但未必实现相同的isa。

系统存储器3020可以被配置成存储可由处理器3010访问的程序指令和数据。在各种实施例中,系统存储器3020可以使用任何适合的存储器技术(诸如静态随机存取存储器(sram)、同步动态ram(sdram)、非易失性/闪速型存储器或任何其他类型的存储器)来实现。在所图示的实施例中,实现一个或多个期望功能的程序指令和数据(诸如以上所描述的那些方法、技术和数据)被示出为作为代码(即,程序指令)3025和数据3026存储在系统存储器3020内。

在一个实施例中,i/o接口3030可以被配置成协调处理器3010、系统存储器3020及装置中的任何外围器件(包括网络接口3040或其他外围接口)之间的i/o业务。在一些实施例中,i/o接口3030可以执行任何必要的协议、定时或其他数据变换以将来自一个组件(例如,系统存储器3020)的数据信号转换成适合于由另一组件(例如,处理器3010)使用的格式。例如,在一些实施例中,i/o接口3030可以包括对通过各种类型的外围总线(诸如外围组件互连(pci)总线标准或通用串行总线(usb)标准的变体)附连的装置的支持。例如,在一些实施例中,可以将i/o接口3030的功能分到两个或更多个单独的组件,诸如北桥和南桥。另外,在一些实施例中可以将i/o接口3030的功能中的一些或全部(诸如到系统存储器3020的接口)直接并入处理器3010。

网络接口3040可以被配置成允许在计算装置3000与附连到一个或多个网络3050的其他装置3060之间交换数据。例如,在各种实施例中,网络接口3040可以经由任何适合的有线或无线通用数据网络(诸如以太网型网络)支持通信。附加地,网络接口3040可以经由诸如模拟语音网络或数字光纤通信网络的电信/电话网络、经由诸如光纤通道san的存储区域网络或者经由任何其他适合类型的网络和/或协议支持通信。

在一些实施例中,系统存储器3020可以是被配置成存储如上所述用于实现对应方法和设备的实施例的程序指令和数据的计算机可读(即,计算机可访问)介质的一个实施例。然而,在其他实施例中,可以在不同类型的计算机可读介质上接收、发送或者存储程序指令和/或数据。一般地说,计算机可读介质可以包括诸如磁或光学介质的非暂时性存储介质或存储器介质,例如,经由i/o接口3030耦合到计算装置3000的磁盘或dvd/cd。非暂时性计算机可读存储介质还可以包括可以在计算装置3000的一些实施例中作为系统存储器3020或另一类型的存储器包括的任何易失性或非易失性介质,诸如ram(例如,sdram、ddrsdram、rdram、sram等)、rom等。另外,计算机可读介质可以包括经由诸如网络和/或无线链路的通信介质传送的传输介质或信号(诸如电、电磁或数字信号),所述通信介质诸如可以经由网络接口3040来实现。诸如图16中所图示的计算装置的多个计算装置的部分或全部可以用于实现各种实施例中所描述的功能;例如,在各种不同的装置和服务器上运行的软件组件可以合作以提供所述功能。在一些实施例中,所描述的功能的部分除了或者代替使用通用计算机系统来实现之外还可以使用存储装置、网络装置或专用计算机系统来实现。如本文中所使用的术语“计算装置”指代至少所有这些类型的装置,并且不限于这些类型的装置。

各种实施例还可以包括在计算机可读介质上接收、发送或者存储依照上述描述所实现的指令和/或数据。一般地说,计算机可读介质可以包括诸如磁或光学介质的存储介质或存储器介质(例如,磁盘或dvd/cd-rom)、诸如ram(例如,sdram、ddr、rdram、sram等)、rom等的易失性或非易失性介质。在一些实施例中,计算机可读介质还可以包括经由诸如网络和/或无线链路的通信介质传送的传输介质或信号(诸如电、电磁或数字信号)。

如图中所图示的和本文中所描述的各种方法表示方法的实施例的示例。所述方法可以用软件、硬件或其组合来实现。在各种方法中,可以改变步骤的顺序,并且可以添加、重新排序、组合、省略、修改等各种要素。可以自动地(例如,在无需通过用户输入直接提示的情况下)和/或以编程方式(例如,根据程序指令)执行所述步骤中的各个步骤。

在本文发明的描述中使用的术语仅用于描述特定实施例的目的,而不旨在限制本发明。如本发明和所附权利要求的描述中所使用的,除非上下文另外清楚地指示,否则单数形式“一”、“一个”和“所述”旨在还包括复数形式。还应理解的是,如本文中所使用的术语“和/或”指代并包含所关联的列举项中的一个或多个的任一且所有可能的组合。还应理解的是,术语“包括”当用在本说明中时,指定陈述的特征、整数、步骤、操作、要素和/或组件的存在,但是不排除一个或更多个其他特征、整数、步骤、操作、要素、组件和/或其组的存在或添加。

如本文中所使用的,取决于上下文,术语“如果”可以被解释为意指“何时”或“在...时”或“响应于确定”或“响应于检测到”。类似地,取决于上下文,短语“如果确定了”或“如果检测到[陈述的条件或事件]”可以被解释为意指“在确定...时”或“响应于确定”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。

还将理解的是,尽管术语第一、第二等可以在本文中用于描述各种要素,但是这些要素不应该受这些术语限制。这些术语仅用于区分一个要素与另一要素。例如,在不脱离本发明的范围的情况下,第一触点能被称为第二触点,并且类似地,第二触点能被称为第一触点。第一触点和第二触点皆是触点,但是它们不是同一触点。

在本文中阐述了许多特定细节以提供对要求保护的主题的彻底理解。然而,本领域的技术人员应理解的是,可以在没有这些特定细节的情况下实践要求保护的主提。在其他实例中,尚未详细地描述本领域的普通技术人员所知道的方法、设备或系统,以便不使要求保护的主题混淆。可以做出如对于已受益于本公开的本领域的技术人员而言将显而易见的各种修改和改变。旨在包含所有此类修改和改变,并且因此,以上描述将在说明性而不是限制性意义上考虑。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1