Visitar URL original
Support `serverless run` · Issue #269 · serverless-heaven/serverless-webpack · GitHub
Skip to content

Support serverless run #269

Closed
Closed

Description

@kbrandwijk

This is a Feature Proposal

Description

For feature proposals:

I recently added the same feature to serverless-plugin-typescript (for reference):
https://github.com/graphcool/serverless-plugin-typescript/blob/master/src/index.ts#L31-L37

Activity

  1. HyperBrain commented on Nov 7, 2017

    @HyperBrain
    Member

    Hi @kbrandwijk . Great idea 🙌

    This would indeed be a great addition. Having the hook implemented would be quite easy. What I'm thinking about is, if a watch option (like the one for sls-offline or sls invoke local) would be possible in the run scenario. I will dig into this a bit - as Docker support was added too recently by the possibility to enable watch polling instead of filesystem events with a switch, that might be possible.

  2. added this to the 4.1.0 milestone on Nov 7, 2017
  3. kbrandwijk commented on Nov 7, 2017

    @kbrandwijk
    Author

    I haven't got the watching part working with serverless-plugin-typescript in combination with serverless run, so any ideas we can share would benefit both plugins.

  4. HyperBrain commented on Nov 7, 2017

    @HyperBrain
    Member

    @kbrandwijk Could you check if my PR works as expected? On my Windows system I get up to where the functions are loaded into the emulator, but after that it breaks (Ubuntu shell).
    There is a known issue/bug that the event gateway does not work in Windows. I have to check it on my native Ubuntu.

    I think I can get the watch mode running - in a similar way as the local invoke does, but just with respawning the run command on a source change. But I have to add and check that on my Ubuntu.

  5. kbrandwijk commented on Nov 7, 2017

    @kbrandwijk
    Author

    I'm also on Windows. I have that same issue. I just start sle manually, then run sls run in a different console and it picks up the already running emulator. I'll check the PR version tomorrow.

  6. HyperBrain commented on Nov 8, 2017

    @HyperBrain
    Member

    I checked the contents of the emulator storage and they contain the compiled sources which looks ok so far. Starting sle separately did the trick, thanks.
    However, the node modules are not copied -> because I did not invoke the packaging. As the event gateway is completely "external" for the sources, I have to add that to the PR.

  7. HyperBrain commented on Nov 8, 2017

    @HyperBrain
    Member

    Added it - now the needed node modules are correctly copied to the emulator.

  8. HyperBrain commented on Nov 8, 2017

    @HyperBrain
    Member

    The command seems to work for me now.

    I played a bit with getting watch working. I managed to let webpack watch the directory, and it got triggered correctly, but it seems that the run command locks the directory. I have to check if I somehow can get arount the deletion of the service directory for the run command. Then it should work.... stand by, I'm working on it.

    Serverless: Sources changed.
    
      Error --------------------------------------------------
    
      EBUSY: resource busy or locked, rmdir 'C:\Projects\serverless\test\babel-dynam
    ically-entries\.webpack\service'
    

    I solved that problem now and the recompile is suceesfully triggered, but as soon as it tries to register the functions again, SLS fails with:

     Serverless     Functions loading...
     Serverless     Functions loaded successfully in your current "serverless run" s
    ession.
    
      Error --------------------------------------------------
    
      Failed to configure the Event Gateway. Failed to register the function babel-d
    ynamically-entries-example-first due the error: Function "babel-dynamically-entr
    ies-example-first" already registered.
    

    I have to find out, how to unregister functions from the gateway or just deploy them again.

  9. HyperBrain commented on Nov 8, 2017

    @HyperBrain
    Member

    I got the watch option working correctly now and will update the PR after some cleanup!

    Then you can use serverless run and serverless run --watch

    PR has been updated. Could you please try with both variants?

  10. HyperBrain commented on Nov 21, 2017

    @HyperBrain
    Member

    Released with 4.1.0

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions