Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support sdk-type binding reference type #1107

Merged
merged 13 commits into from Nov 3, 2022

Conversation

liliankasem
Copy link
Member

@liliankasem liliankasem commented Oct 6, 2022

Issue describing the changes in this PR

Related epic: #1081

Part of the work to support SDK-type bindings for out-of-proc workers is to let the host know when an extension supports "deferred binding". Deferred binding means that instead of the host resolving bindings, it will be deferred so that the worker does the binding when it gets the invocation request. You can see how we intend to handle that deferred binding by looking at the Blob Converter PR.

Things happening in this PR:

  1. The abstractions project has been updated so that ExtensionInformationAttribute has a flag (SupportsDeferredBinding)
    that extensions can use to indicate that they support deferred binding (on the extension side, it means that they have a converter for ParameterBindingData, you can look what this looks like in the blob extension PR)

  2. The SDK will check to see if a given extension supports deferred binding (meaning it has SupportsDeferredBinding set to true), and if it does it will add a "supportsDeferredBinding" flag to the binding Properties. This flag tells the host that a given function supports deferred binding and to use ParameterBindingData as the function's "DefaultType" - you can learn more about that in the host PR.

  3. Finally, the worker needs a representation of ParameterBindingData. This is actually defined in the protobuf as ModelBindingData. We create an abstract class to represent the ModelBindingData message that is generated in the gRPC layer.

The epic has a list of all the PRs related to this feature.

Pull request checklist

  • My changes do not require documentation changes
    • Otherwise: Documentation issue linked to PR
  • My changes should not be added to the release notes for the next release
    • Otherwise: I've added my notes to release_notes.md
  • My changes do not need to be backported to a previous version
    • Otherwise: Backport tracked by issue/PR #issue_or_pr
  • I have added all required tests (Unit tests, E2E tests)

Additional information

Additional PR information

pack-sdk.ps1 Outdated Show resolved Hide resolved
sdk/Sdk/Constants.cs Outdated Show resolved Hide resolved
@liliankasem liliankasem marked this pull request as ready for review November 1, 2022 22:17
pack-sdk.ps1 Outdated Show resolved Hide resolved
src/ci.yml Outdated Show resolved Hide resolved
@surgupta-msft
Copy link
Contributor

/check-enforcer evaluate

@surgupta-msft
Copy link
Contributor

/check-enforcer evaluate

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants