2019-05-13 06:19:21 UTC - Stéphane Wecker: Hi, I use AWS Lambda / EDGE for my client. I want to migrate to OpenWhisk for my personal version of this project. Is there a good entry point to migrate from AWS to Openwhisk ? https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1557728361094500 ---- 2019-05-13 06:21:14 UTC - Stéphane Wecker: My reason to do this : I don't want to depend on AWS if I sell the project to another client. And as I was a backend PHP dev, I probably rewrite some code in PHP or Swift code (All the project is in TS/JS) https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1557728474096400 ---- 2019-05-13 06:31:12 UTC - Rob Allen: Morning @Stéphane Wecker. I can't think of a specific article that talks about migrating from AWS to OpenWhisk. For the functions, the handler entry and exit is a little different but should be easy to migrate. The complications are probably more on the other services. e.g. if you've used DynamoDB, then that's pretty AWS specific. https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1557729072098800 ---- 2019-05-13 06:31:43 UTC - Rob Allen: Also, if you're provisioning everything with CloudFormation, you'll need to use something else. https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1557729103099500 ---- 2019-05-13 06:36:00 UTC - Stéphane Wecker: Morning @Rob Allen. The project use one EC2 (for backend), some buckets and a lot of lambdas. So the migration seams easy. But I didn't find an Lambda@Edge replacement (or a best way to do the same job). https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1557729360102600 ---- 2019-05-13 06:55:26 UTC - Rob Allen: OpenWhisk as the OSS project doesn't have anything similar as it doesn't have a CDN component. https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1557730526103300 ---- 2019-05-13 06:56:35 UTC - Rob Allen: In pure OpenWhisk, you'd have a sequence of actions that you attach to your API Gateway https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1557730595104600 ---- 2019-05-13 06:57:20 UTC - Rob Allen: i.e. a sequence of: the edge action that runs before -> the action itself -> the edge action that runs after https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1557730640105400 ---- 2019-05-13 06:58:31 UTC - Rob Allen: Information on sequences: <https://github.com/apache/incubator-openwhisk/blob/master/docs/actions.md#creating-action-sequences> https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1557730711105600 ---- 2019-05-13 06:59:34 UTC - Rob Allen: <https://www.raymondcamden.com/2017/01/06/an-example-of-an-openwhisk-sequence> is a good post on them too. https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1557730774105900 ---- 2019-05-13 07:06:10 UTC - Stéphane Wecker: Thanks a lot, I will read this. In the frozen morning, I don't really see how I can use sequence as a EDGE replacement :slightly_smiling_face: https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1557731170109000 ---- 2019-05-13 07:06:45 UTC - Rob Allen: I don't really understand what EDGE is so I'm guessing based on the picture https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1557731205109500 ---- 2019-05-13 07:07:04 UTC - Rob Allen: It looks like a lambda that goes between the API request and the lambda that does the work. https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1557731224110000 ---- 2019-05-13 07:07:24 UTC - Rob Allen: looking at <https://docs.aws.amazon.com/lambda/latest/dg/lambda-edge.html> anyway. https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1557731244110200 ---- 2019-05-13 07:08:44 UTC - Rob Allen: if so, it does two things: 1. manipulate the incoming request before it goes to the real lambda 2. manipulate the output of the real lambda before it goes back to the client. https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1557731324111800 ---- 2019-05-13 07:09:12 UTC - Rob Allen: and it does it within the CDN component of AWS. https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1557731352112300 ---- 2019-05-13 07:10:28 UTC - Stéphane Wecker: Yes, I have to add a http server and some smart rewrite rules to do the job I think https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1557731428114700 ---- 2019-05-13 07:11:19 UTC - Rob Allen: As OpenWhisk doesn't have a CDN, you can't put an action (our name for a lambda) there. Hence you need two new actions for the two things: before and after. In OpenWhisk we have the concept of a sequence where you can string a set of action to happen sequentially, so that seems like a way to replicate the same basic functionality. A sequence of:
1. Action to manipulate the incoming Request 2. Real Action 3. Action to manipulate the output of the the Real Action before before it goes back to the client https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1557731479115800 ---- 2019-05-13 07:12:18 UTC - Rob Allen: Depends what the lambda@edge does though :slightly_smiling_face: https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1557731538117100 ---- 2019-05-13 07:14:28 UTC - Stéphane Wecker: as an exemple, if you have a Wordpress that build a page but not the header parts, a Lambda Edge can inject it. And if the Header parts depend of a cookie (is the client a student ?) that make sense to use a lambda@edge instead a big hack of Wordpress. https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1557731668118800 ---- 2019-05-13 07:15:22 UTC - Rob Allen: Right - but wordpress isn't running in lambda I guess? https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1557731722119200 ---- 2019-05-13 07:15:50 UTC - Rob Allen: so in that scenario, you're using lambda@edge as a way to add smarts to the CDN that's in front of a standard webserver? https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1557731750119900 ---- 2019-05-13 07:42:30 UTC - Stéphane Wecker: Yes https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1557733350120100 ---- 2019-05-13 07:42:53 UTC - Stéphane Wecker: Wordpress is in a classic webserver https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1557733373120500 ---- 2019-05-13 07:43:17 UTC - Stéphane Wecker: ("Origin server" in the schema) https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1557733397120900 ---- 2019-05-13 08:01:13 UTC - Rob Allen: OpenWhisk doesn't have an direct analogy for that use-case, I think. https://openwhisk-team.slack.com/archives/C3TPCAQG1/p1557734473121800 ----