feat: add interactive callback CLI #8486
Merged
+464
−3
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Which issue(s) does this change fix?
Why is this change necessary?
Customers using
sam local invoketo test durable functions that are using callback operations need a way to know when their functions are suspended and waiting for a callback. Otherwise, the only other way to know is by querying the execution history (sam local execution history) and seeing aCallbackStartedandInvocationCompletedevent. This is not the best user experience, and we should be prompting users to respond to pending callbacks immediately.How does it address the issue?
This PR adds a callback handler which will prompt users to respond to pending callbacks. The prompts include success, fail, heartbeat or stopping the execution entirely. We create a new thread in the polling loop to prompt the user, so we can continue checking the execution state and history. If another process resolves the callback (e.g. you call
sam local callback succeedfrom another session), the execution will continue.What side effects does this change have?
None. Improved UX for callbacks in the
local invokeloop.Mandatory Checklist
PRs will only be reviewed after checklist is complete
make prpassesmake update-reproducible-reqsif dependencies were changedBy submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.