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

Add support for routing to AWS Services #688

Open
YasiruShaminda opened this issue Nov 3, 2022 · 8 comments
Open

Add support for routing to AWS Services #688

YasiruShaminda opened this issue Nov 3, 2022 · 8 comments
Assignees
Labels
kind/enhancement New feature or request
Milestone

Comments

@YasiruShaminda
Copy link

Description:
Add support for invoke Aws Lambda

@YasiruShaminda YasiruShaminda added the kind/enhancement New feature or request label Nov 3, 2022
@arkodg
Copy link
Contributor

arkodg commented Nov 3, 2022

thanks for raising this issue, this will most likely require EG to run in a non K8s environment as well as be able to route to non K8s Backend, hoping the community has cycles to design for this in 2023, moving it to the backlog for now

@arkodg arkodg added this to the Backlog milestone Nov 3, 2022
@YasiruShaminda
Copy link
Author

I am proposing the following design for the AWS Lambda filter for the Envoy Gateway. What do you think about the design? Is this fit with requirements on envoy side and align with the other filters/policies that are available in the Envoy Gateway?

apiVersion: gateway.envoy.io/v1alpha1
kind: AWSLambda
metadata:
  name: lambdafunc-order
Spec:
  arn: arn:aws:lambda:us-east-1:65xxxxxxxxxx:function:randomFunc
  payloadPasstrough : false
  invocationMode: synchronous
apiVersion: gateway.networking.k8s.io/v1beta1
kind: HTTPRoute
metadata:
  name: http-route-randomFunc
spec:
  parentRefs:
  - name: my-gateway
  hostnames:
  - "gateway.apis.com"
  rules:
  - matches:
    -	path:
        type: PathPrefix
        value: /randomFunc/1.0.1/order
     	method: GET
queryParams:
      - type: Exact
        name: status
        value: available
    - path:
        type: PathPrefix
        value: /randomFunc/1.0.1/menu
    filters:
	- type: extensionRef
  extensionRef:
    group: gateway.envoy.io/v1alpha1
    kind: AWSLambda
    name: lambdafunc-order

@arkodg
Copy link
Contributor

arkodg commented Nov 18, 2022

thanks for kickstarting this debate, would recommend looking into BackendObjectReference to consider routing to a AWSLambda backend.

   backendRefs:
   - group: gateway.envoy.io/v1alpha1
     kind: AWSLambda
     name: lambdafunc-order
     port: 8080

This should solve the user feature but before we attempt to support custom backends the project will need to think of a way
to provide extensions for service / backend to endpoint resolvers, else it might become hard to manage all these vendor based backends
for e.g. an external process can consume the user's AWS creds and translate all cloud map services to some Custom Backend resource similar to Istio's Service Entry which EG can consume

@danehans danehans added the help wanted Extra attention is needed label Dec 1, 2022
@arkodg
Copy link
Contributor

arkodg commented Apr 25, 2023

closing this issue since it can be solved with ServiceImport which is being tracked with #9 where Envoy Gateway is the ServiceImport consumer and AWS Lattice is the ServiceImport MCS producer https://github.com/aws/aws-application-networking-k8s/blob/main/docs/multi-sn.md

@arkodg arkodg closed this as completed Apr 25, 2023
@arkodg
Copy link
Contributor

arkodg commented Sep 26, 2024

reopening this issue, since this cannot be solved with ServiceImport

Backend API can be enhanced to support this use case
and this is already supported by Envoy https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/aws_lambda_filter#configuration-as-an-upstream-http-filter
cc @mathetake

@arkodg arkodg reopened this Sep 26, 2024
@arkodg arkodg modified the milestones: Backlog, v1.3.0-rc.1 Nov 21, 2024
@arkodg arkodg changed the title Add support for Aws Lambda Add support for routing to AWS Services Nov 25, 2024
@mathetake
Copy link
Member

cc @aabchoo this can be really helpful if we can utilize the EG native AWS authz rather than the custom stuff like we have now

@arkodg arkodg modified the milestones: v1.3.0-rc.1, Backlog Dec 5, 2024
@aabchoo
Copy link

aabchoo commented Dec 9, 2024

I agree, I'll take a look at this sometime this week

@arkodg arkodg modified the milestones: Backlog, v1.3.0-rc.1 Dec 9, 2024
@arkodg arkodg removed the help wanted Extra attention is needed label Dec 9, 2024
@arkodg
Copy link
Contributor

arkodg commented Dec 9, 2024

thanks @aabchoo assigning this issue to you for now, feel free to unassign later if something changes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

5 participants