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

Unable to debug AWS Quick Start application - Hello World Example with Powertools for AWS Lambda #6999

Closed
samshteinman opened this issue Apr 30, 2024 · 4 comments
Labels
blocked/close-if-inactive Blocked for >14 days with no response, will be closed if still inactive after 7 days

Comments

@samshteinman
Copy link

samshteinman commented Apr 30, 2024

Description:

After calling sam init, I cannot run and debug the application.

Breakpoints are not hit and an error is shown

2024-04-29 22:29:18.368 [info] 2024-04-30T02:29:18.365Z	undefined	ERROR	Uncaught Exception 	{"errorType":"Runtime.ImportModuleError","errorMessage":"Error: Cannot find module 'app'\nRequire stack:\n- /var/runtime/index.mjs","stack":["Runtime.ImportModuleError: Error: Cannot find module 'app'","Require stack:","- /var/runtime/index.mjs","    at _loadUserApp (file:///var/runtime/index.mjs:1087:17)","    at async Object.load (file:///var/runtime/index.mjs:1119:21)","    at async start (file:///var/runtime/index.mjs:1282:23)","    at async file:///var/runtime/index.mjs:1288:1"]}
2024-04-29 22:29:18.376 [info] Waiting for the debugger to disconnect...
2024-04-29 22:29:18.433 [info] 30 Apr 2024 02:29:18,430 [ERROR] (rapid) Init failed InvokeID= error=Runtime exited with error: exit status 129
30 Apr 2024 02:29:18,430 [ERROR] (rapid) Invoke failed error=Runtime exited with error: exit status 129 InvokeID=bf09f315-6705-41df-8995-075ad78661e0
30 Apr 2024 02:29:18,431 [ERROR] (rapid) Invoke DONE failed: Sandbox.Failure

I'm not sure why it's looking for index.mjs
The auto-generated aws-toolkit-tsconfig.json contains:

{
    "compilerOptions": {
        "target": "es6",
        "module": "commonjs",
        "inlineSourceMap": true,
        "outDir": "D:\\folderA\\sam-app\\hello-world",
        "rootDir": ".",
        "sourceRoot": "D:/folderA/sam-app/hello-world",
        "typeRoots": [
            "node_modules/@types"
        ],
        "types": [
            "node"
        ]
    }
}

Steps to reproduce:

sam init

Which template source would you like to use?
1 - AWS Quick Start Templates
2 - Custom Template Location
Choice: 1

Choose an AWS Quick Start application template
1 - Hello World Example
2 - Data processing
3 - Hello World Example with Powertools for AWS Lambda
4 - Multi-step workflow
5 - Scheduled task
6 - Standalone function
7 - Serverless API
8 - Infrastructure event management
9 - Lambda Response Streaming
10 - Serverless Connector Hello World Example
11 - Multi-step workflow with Connectors
12 - GraphQLApi Hello World Example
13 - Full Stack
14 - Lambda EFS example
15 - DynamoDB Example
16 - Machine Learning
Template: 3

Which runtime would you like to use?
1 - dotnet8
2 - dotnet6
3 - java17
4 - java11
5 - java8.al2
6 - nodejs20.x
7 - nodejs18.x
8 - nodejs16.x
9 - python3.9
10 - python3.8
11 - python3.12
12 - python3.11
13 - python3.10
Runtime: 6

Based on your selections, the only Package type available is Zip.
We will proceed to selecting the Package type as Zip.

Based on your selections, the only dependency manager available is npm.
We will proceed copying the template using npm.

Would you like to enable X-Ray tracing on the function(s) in your application? [y/N]: N

Would you like to enable monitoring using CloudWatch Application Insights?
For more info, please view https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch-application-insights.html [y/N]:

Would you like to set Structured Logging in JSON format on your Lambda functions? [y/N]:

Project name [sam-app]:

-----------------------
Generating application:
-----------------------
Name: sam-app
Runtime: nodejs20.x
Architectures: x86_64
Dependency Manager: npm
Application Template: hello-world-powertools-typescript
Output Directory: .
Configuration file: sam-app\samconfig.toml

Next steps can be found in the README file at sam-app\README.md

Create a launch configuration

{
  "configurations": [
    {
      "type": "aws-sam",
      "request": "direct-invoke",
      "name": "hello-world:app.lambdaHandler (nodejs20.x)",
      "invokeTarget": {
        "target": "code",
        "projectRoot": "${workspaceFolder}/hello-world",
        "lambdaHandler": "app.lambdaHandler"
      },
      "lambda": {
        "runtime": "nodejs20.x",
        "payload": {},
        "environmentVariables": {}
      }
    }
  ]
}

Observed result:

Code is not executed
Breakpoints are not hit in app.ts
An error is shown in the AWS Toolkit OUTPUT console

Expected result:

Breakpoints are hit, code is executed

Additional environment details (Ex: Windows, Mac, Amazon Linux etc)

{
  "version": "1.115.0",
  "system": {
    "python": "3.11.8",
    "os": "Windows-10-10.0.19045-SP0"
  },
  "additional_dependencies": {
    "docker_engine": "25.0.3",
    "aws_cdk": "Not available",
    "terraform": "1.6.6"
  },
  "available_beta_feature_env_vars": [
    "SAM_CLI_BETA_FEATURES",
    "SAM_CLI_BETA_BUILD_PERFORMANCE",
    "SAM_CLI_BETA_TERRAFORM_SUPPORT",
    "SAM_CLI_BETA_RUST_CARGO_LAMBDA"
  ]
}
@samshteinman samshteinman added the stage/needs-triage Automatically applied to new issues and PRs, indicating they haven't been looked at. label Apr 30, 2024
@mildaniel
Copy link
Contributor

Hey @samshteinman, I was able to reproduce the issue but it doesn't seem like it's coming from SAM CLI itself. I would recommend cutting a ticket to the toolkits team.

@mildaniel mildaniel added blocked/close-if-inactive Blocked for >14 days with no response, will be closed if still inactive after 7 days and removed stage/needs-triage Automatically applied to new issues and PRs, indicating they haven't been looked at. labels Apr 30, 2024
@samshteinman
Copy link
Author

Hey @samshteinman, I was able to reproduce the issue but it doesn't seem like it's coming from SAM CLI itself. I would recommend cutting a ticket to the toolkits team.

Thanks! Will do

Copy link
Contributor

github-actions bot commented May 1, 2024

⚠️COMMENT VISIBILITY WARNING⚠️

Comments on closed issues are hard for our team to see.
If you need more assistance, please either tag a team member or open a new issue that references this one.
If you wish to keep having a conversation with other community members under this issue feel free to do so.

@samshteinman
Copy link
Author

Hey @samshteinman, I was able to reproduce the issue but it doesn't seem like it's coming from SAM CLI itself. I would recommend cutting a ticket to the toolkits team.

Hey Daniel thanks again for your earlier response.

I'm able to reproduce this, bypassing the toolkit entirely:

sam build

sam local invoke -d 5858 HelloWorldFunction

Then run the launch configuration
{ "name": "Attach", "port": 5858, "request": "attach", "skipFiles": ["<node_internals>/**"], "type": "node" },

First thing I'm seeing is that the source maps are not being generated, I had to manually add to the template.yaml under Environment::Variables
NODE_OPTIONS: --enable-source-maps

Then I see the app.js.map file

But still no breakpoints being hit in the app.ts file..

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
blocked/close-if-inactive Blocked for >14 days with no response, will be closed if still inactive after 7 days
Projects
None yet
Development

No branches or pull requests

2 participants