Event-driven computing
First Claim
1. A system for processing event messages for requests to execute program code on one or more virtual machine instances, the system comprising:
- a frontend computing system comprising one or more hardware computing devices executing specific computer-executable instructions, the frontend computing system in communication with (i) a virtual compute system adapted to provide compute capacity on a per-request basis and (ii) one or more other services, the frontend computing system configured to at least;
receive a plurality of code execution requests associated with a first program code, each code execution request including an identity of a user account, an identity of the first program code, and one or more first input parameters to the first program code, wherein the user account is associated with the first program code and a set of execution parameters used for executing program codes associated with the user account;
process the plurality of code execution requests at least by attempting to execute the first program code at a first time period using the one or more first input parameters and the set of execution parameters;
determine that one or more requests from the plurality of code execution requests were not processed successfully due to an error during execution of the first program code;
route the one or more requests to a separate storage area for additional processing, the separate storage area storing a plurality of requests that were not processed successfully by the frontend computing system;
determine whether a request stored in the separate storage area is to be processed again by the frontend computing system; and
in response to determining that the request is to be processed again by the frontend computing system, process the request at least by attempting to execute the first program code at a second time period subsequent to the first time period.
1 Assignment
0 Petitions
Accused Products
Abstract
A service manages a plurality of virtual machine instances for low latency execution of user codes. The service can provide the capability to execute user code in response to events triggered on various event sources and initiate execution of other control functions to improve the code execution environment in response to detecting errors or unexpected execution results. The service may maintain or communicate with a separate storage area for storing code execution requests that were not successfully processed by the service. Requests stored in such a storage area may subsequently be re-processed by the service.
224 Citations
17 Claims
-
1. A system for processing event messages for requests to execute program code on one or more virtual machine instances, the system comprising:
a frontend computing system comprising one or more hardware computing devices executing specific computer-executable instructions, the frontend computing system in communication with (i) a virtual compute system adapted to provide compute capacity on a per-request basis and (ii) one or more other services, the frontend computing system configured to at least; receive a plurality of code execution requests associated with a first program code, each code execution request including an identity of a user account, an identity of the first program code, and one or more first input parameters to the first program code, wherein the user account is associated with the first program code and a set of execution parameters used for executing program codes associated with the user account; process the plurality of code execution requests at least by attempting to execute the first program code at a first time period using the one or more first input parameters and the set of execution parameters; determine that one or more requests from the plurality of code execution requests were not processed successfully due to an error during execution of the first program code; route the one or more requests to a separate storage area for additional processing, the separate storage area storing a plurality of requests that were not processed successfully by the frontend computing system; determine whether a request stored in the separate storage area is to be processed again by the frontend computing system; and in response to determining that the request is to be processed again by the frontend computing system, process the request at least by attempting to execute the first program code at a second time period subsequent to the first time period. - View Dependent Claims (2, 3, 4)
-
5. A system, comprising:
-
a virtual compute system comprising one or more hardware computing devices executing specific computer-executable instructions and configured to at least maintain a plurality of pre-initialized virtual machine instances configured to execute program codes thereon; a dynamic dead letter queue (DLQ) configured to store code execution requests; and a frontend computing system comprising one or more hardware computing devices executing specific computer-executable instructions and configured to at least; receive a plurality of code execution requests associated with the first program code, each code execution request including one or more first input parameters to the first program code, the first program code associated with configuration data; process the plurality of code execution requests using the one or more first input parameters and the configuration data; detect a problem in executing a subset of the plurality of code execution requests associated with the first program code; without successfully executing the first program code for the subset of plurality of code execution requests, route the subset of the plurality of code execution requests to the dynamic DLQ; determine that a request in the subset of the plurality of code execution requests in the dynamic DLQ is to be re-processed; re-process the request at least by executing the first program code using the one or more first input parameters; detect a trend in the processing of the plurality of code execution requests; determine one or more second input parameters to a second program code based on the detected trend; and cause the second program code to be executed on one of the plurality of pre-initialized virtual machine instances that is pre-initialized for executing the second program code using the one or more second input parameters. - View Dependent Claims (6, 7, 8, 9)
-
-
10. A computer-implemented method comprising:
as implemented by one or more computing devices configured with specific executable instructions, receiving a plurality of code execution requests associated with a first program code, each code execution request including one or more first input parameters to the first program code, the first program code associated with configuration data; processing the plurality of code execution requests using the one or more first input parameters and the configuration data; detecting a problem in executing one of the plurality of code execution requests associated with the first program code; without successfully executing the first program code for the code execution request, routing the code execution request to a dynamic dead letter queue (DLQ) configured to store code execution requests; causing at least one of the first program code or the configuration data associated with the first program code to be modified; determining that the code execution request in the dynamic DLQ is to be re-processed; re-processing the code execution request using the modified at least one of the first program code or the configuration data; detecting a trend in the processing of the plurality of code execution requests; selecting an action based on the detected trend; and causing a second program code configured to perform the selected action to be executed on a pre-initialized virtual computing instance. - View Dependent Claims (11, 12, 13)
-
14. Non-transitory physical computer storage comprising instructions that, when executed by one or more computing devices, configure the one or more computing devices to:
-
receive a plurality of code execution requests associated with a first program code, each code execution request including one or more first input parameters to the first program code, the first program code associated with configuration data; process the plurality of code execution requests using the one or more first input parameters and the configuration data; detect a problem in executing one of the plurality of code execution requests associated with the first program code; without successfully executing the first program code for the code execution request, route the code execution request to a dynamic dead letter queue (DLQ) configured to store code execution requests; cause at least one of the first program code or the configuration data associated with the first program code to be modified; determine that the code execution request in the dynamic DLQ is to be re-processed; re-process the code execution request using the modified at least one of the first program code or the configuration data; detect a trend in the processing of the plurality of code execution requests; select an action based on the detected trend; and cause a second program code configured to perform the selected action to be executed on a pre-initialized virtual computing instance. - View Dependent Claims (15, 16, 17)
-
Specification