Giter VIP home page Giter VIP logo

desktop's Introduction

Serverless Desktop AWS Lambda

Serverless Desktop is GUI application that makes it easier to explore and test Serverless Framework applications built on AWS Lambda.

Serverless Desktop is currently in beta and we are seeking customer feedback. To help us build something you love, please take 2 minutes to answer these 4 questions.



Features

  • Invoke AWS Lambda functions and APIs easily
  • Stream errors and logs from AWS Lambda functions in real-time
  • Save and share test events and HTTP requests
  • Measure performance with duration and memory metrics
  • Explore items in AWS DynamoDB tables and AWS S3 buckets
  • Review policies for AWS IAM roles

How does it work?

Serverless Desktop will list your AWS Cloudformation stacks that are deployed via the Serverless Framework, and create convenient views to work with the underlying AWS resources. Cloudformation stacks created outside of the Serverless Framework are currently not supported by Desktop.

Desktop will prompt you to connect your AWS Account. This will create an IAM Role in your account, that will give Desktop periodic, temporary access credentials to perform a list operation on your Cloudformation Stacks, and associated AWS resources. These same credentials will be used to invoke your functions, access your DynamoDB tables, S3 buckets, and work with other resources associated with your Serverless project.

Please note that while in beta, Serverless Desktop requires an AWS IAM Role with permissions for your AWS account, which it assumes to periodically perform server-side operations. Specifically:

  • S3
  • Dynamo
  • Lambda
  • API Gateway
  • CloudFormation
  • CloudWatch
  • IAM (only ListRolePolicies and GetRolePolicy)

Desktop does not use long-lasting credentials. Instead, Desktop assumes the IAM Role you provide it, creates temporary credentials via AWS STS, and uses those for each operation. You control the IAM Role and can remove Desktop's access at any time. Within the upcoming weeks, Desktop will request specific permissions, rather than full read/write access. Until then, please be aware of this behavior.

Log streaming is enabled for NodeJS Lambda functions via the AWS Lambda Extensions API. When you navigate to a function event trigger (HTTP, direct invocation, etc.) Desktop will add a Lambda Layer to your function to capture log output. Additionally, the following environment variables are added to your Lambda:

  • AWS_LAMBDA_EXEC_WRAPPER - The path to the Extension entrypoint
  • SERVERLESS_PLATFORM_CONFIG - Configuration for your Serverless user and org
  • SERVERLESS_PLATFORM_DEV_MODE - Toggles on/off log streaming

Supported platforms

  • MacOS
  • Windows

Supported regions

  • us-east-1
  • us-east-2
  • us-west-2
  • eu-central-1
  • eu-west-1
  • eu-west-2
  • eu-west-3
  • eu-north-1
  • ap-northeast-1
  • ap-northeast-2
  • ap-southeast-1
  • ap-southeast-2
  • ap-south-1
  • ca-central-1
  • sa-east-1
  • us-west-1

Supported resources

  • AWS Lambda
  • AWS API Gateway
  • AWS DynamoDB
  • AWS S3
  • AWS IAM

Limitations

  • AWS only
  • Log streaming is only supported for NodeJS runtimes

Feedback

Feel free to create an issue to report bugs, or request features.

desktop's People

Contributors

ac360 avatar astuyve avatar stevewillard avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

desktop's Issues

Broke some IAM permissions?

While installing Desktop it had me approve a new cloudstack thingy and now my CircleCI jobs fail when deploying functions:

An error occurred: CustomDashresourceDashapigwDashcwDashroleLambdaFunction - AccessDenied. User doesn't have permission to call iam:GetRole.

This seems not good :(

Strange UI behavior when removing a Connection

When removing a Connection that contained ~50 Serverless Framework Services, the Services list on the left gradually disappears as expected.

However, once all Services on the left are gone, the removing process continues and single Services randomly show up in the left column for about 2 seconds, then disappear again. This happened for about 15 Services.

List is gone...
Screen Shot 2021-01-27 at 10 53 50 PM

Suddenly individual Services show up again...
Screen Shot 2021-01-27 at 10 53 53 PM

Memory Leak on Windows 10

I installed the beta last week and I've been installing each update as they come so I'm up to date.

I logged in with my account and have switched organizations, but due to another bug #20 I haven't used the new app much.

I closed out of the app, but apparently the process was still running in the background, and almost 24 hours later my operating system started grinding to a halt, and when I tried to switch tabs some of my other apps crashed saying my laptop was out of memory (I usually run around 12GB usage out of 16GB).

I checked task manager and the Serverless app had bloated to almost 4GB of ram without even being open or used. I killed the process and my machine returned to normal.

Apps don't show up without connecting an AWS account

Hello,

I have several apps across multiple organizations that i've deployed with app.serverless.com.

When I login to the new desktop app, I see my organization list in the bottom right, but none of my apps are listed.

My apps are deployed using IAM User accounts created by my client's root accounts, so I would prefer to not have to login with new credentials than the ones i've already used.

I do my deploys from command line so far with access keys, I would prefer to enter them into the desktop app but have the lsit of my apps loaded on first launch and when i switch organizations.

Streaming Logs Don't Work After Idling

When not using a test view for multiple hours (e.g. attending meetings, working on other things), the websocket connection times out, and no logs are received. However, the app still says streaming logs are enabled. The Desktop app needs to restart the websocket connection.

Not working...

Hello.

I don't understand, how to log to our AWS account and use the application. I have created some account for your application, not working. I have created account at GitHub, not working. And finally I cannot login via Google account... There is no menu item to sign to AWS etc. etc. It's very strange and confusing...

I would like to have some better IDE than AWS web application, because of it is very unclear etc., but your desktop application doesn't work at all...

Missing Connection Provider breaks Desktop

In the Serverless Dashboard, I deleted the Provider used by a Connection within Serverless Desktop. Now, I'm unable to fix my Connection, and all of the Services using that Provider/Connection are broken.

Screen Shot 2021-02-15 at 6 15 51 AM

Screen Shot 2021-02-15 at 6 16 04 AM

Being able to edit an existing Connection and add a new Provider to it will resolve this problem. Until then, Desktop is permanently broken for users who experience this.

Unable to login with Google with 2FA

I'm not able to login using Google with 2FA. I usually have the option for Security key, Authenticator app and Google prompts but none of those seem to be allowed.

Windows 10 Home Version 10.0.21337 Build 21337

image

Functions not instrumented

In my personal org, a console log statement says functions are instrumented, but they are not, and network requests to call the back-end to perform the instrumentation do not appear to happen.

In @stevewillard's org, the network request happens to instrument functions.

Using saved HTTP requests, Events or Queries is broken

As of v0.0.107 I'm unable to use saved HTTP requests, Events, or Queries. When I click on a saved item, or when I save a new item, the view switches to a stage that does not exist (though in this case, the stage used to exist), and the view is blank.

It could be related to the recent change where stage names and regions were combined into the stage name. However, it also feels like it could be related to the way this stored data is structured.

Screen Shot 2021-01-07 at 6 47 21 PM

Sync seems to not work with a new Provider

When I delete a Provider and recreated it via the onboarding flow, then run the sync process, the sync process begins but the status from the sync is always inactive meaning it was never started. This screen then hangs indefinitely.

Please note that I have already created Providers, synced with them, removed everything, and deleted Providers multiple times before this. It is not the case that my account replicates a new user exactly.

HTTP Invoke: Odd Error Formatting

What is the text in red that says "Data not included in response body"? Is this an error? If so, why is it not formatted like the other errors? Could we format all errors the same way so they can more easily be understood by users?

Screen Shot 2021-01-04 at 9 37 05 PM

Invoke View: Irregular Log behavior

I'm seeing some irregular log behavior in the Invoke View. Here is what's working successfully, and what's not:

  • Navigating To HTTP Invoke From Home Screen: Requests showed with logs, no delay.
  • Using Another App For 30 Seconds & Returning To HTTP Invoke View: Requests showed with logs, no delay.
  • Using Another App For 5 Minutes & Returning To HTTP Invoke View: Requests showed with logs, no delay.
  • Switching To Another View & Returning To HTTP Invoke View: First requests did not show logs, but subsequent requests did, no delay. Was able to reproduce this multiple times.

Screen Shot 2021-01-04 at 9 37 05 PM

  • Switching From HTTP Invoke View to Function Invoke View: First requests did not show logs, but subsequent requests did, no delay. Was able to reproduce this multiple times.

Screen Shot 2021-01-04 at 9 39 58 PM

  • Switching Between HTTP Invoke View and Function Invoke View Quickly: I switched back and forth between these multiple times within a couple of seconds. This seemed to break everything. No logs.

Screen Shot 2021-01-04 at 9 41 47 PM

  • API Gateway HTTP Invoke View: No logs showed up.

Screen Shot 2021-01-04 at 9 40 28 PM

Sync errors not being shown to user

When opening a view, and the sync process fails, no error is shown to the user. Instead, the view is simply blank.

Here is an example where a resource was not found because it was deleted manually, even though it is listed in a CloudFormation stack.

Screen Shot 2021-02-09 at 12 07 45 PM

Sidebar not visible when app is loaded

On a 13" macbook, when installing and starting the Desktop app for the first time, the sidebar showing apps is not visible despite the app taking up most of the desktop space. There is also no button to toggle the sidebar. This makes it seem as if there is no functionality, especially for new users.

Screen Shot 2021-03-08 at 7 18 44 AM

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.