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

Error: 'str' object has no attribute 'decode'Bug: TITLE #6582

Closed
daskabe opened this issue Jan 20, 2024 · 3 comments
Closed

Error: 'str' object has no attribute 'decode'Bug: TITLE #6582

daskabe opened this issue Jan 20, 2024 · 3 comments
Labels
area/debugging blocked/close-if-inactive Blocked for >14 days with no response, will be closed if still inactive after 7 days type/question

Comments

@daskabe
Copy link

daskabe commented Jan 20, 2024

Description:

unable to debug lambda locally.

Steps to reproduce:

The starter repo i started with can be found here
https://github.com/mir4ef/aws-lambda-typescript-starter.

I cloned it, changed runtime to node18.x using latest container. Bellow is effort to get local debug to work.

$  sam build --use-container --build-image public.ecr.aws/sam/build-nodejs18.x:1.107.0-20240110201056
...
$  sam local invoke -d 9999 HelloWorldFunction 
 da@da-mbp  ~/workspace/app/backend/app-aws-services   master ±  sam build --use-container --build-image public.ecr.aws/sam/build-nodejs18.x:1.107.0-20240110201056
Starting Build inside a container                                                                                                                                                                                                                                                                         
Building codeuri: /Users/da/workspace/app/backend/app-aws-services/dist runtime: nodejs18.x metadata: {} architecture: x86_64 functions: HelloWorldFunction, MyFunctrion, MyFunc                                                                                                         

Fetching public.ecr.aws/sam/build-nodejs18.x:1.107.0-20240110201056 Docker container image......
Mounting /Users/da/workspace/app/backend/app-aws-services/dist as /tmp/samcli/source:ro,delegated, inside runtime container                                                                                                                                                              

Build Succeeded

Built Artifacts  : .aws-sam/build
Built Template   : .aws-sam/build/template.yaml

Commands you can use next
=========================
[*] Validate SAM template: sam validate
[*] Invoke Function: sam local invoke
[*] Test Function in the Cloud: sam sync --stack-name {{stack-name}} --watch
[*] Deploy: sam deploy --guided
 Running NodejsNpmBuilder:NpmPack
 Running NodejsNpmBuilder:CopyNpmrcAndLockfile
 Running NodejsNpmBuilder:CopySource
 Running NodejsNpmBuilder:NpmInstall
 Running NodejsNpmBuilder:CleanUpNpmrc
 Running NodejsNpmBuilder:LockfileCleanUp
 da@da-mbp  ~/workspace/app/backend/app-aws-services   master ±  sam local invoke -d 9999 HelloWorldFunction                                         

Invoking app/function.lambdaHandler (nodejs18.x)                                                                                                                                                                                                                                                          
Local image is up-to-date                                                                                                                                                                                                                                                                                 
Using local image: public.ecr.aws/lambda/nodejs:18-rapid-x86_64.                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                                                                          
Mounting /Users/da/workspace/app/backend/app-aws-services/.aws-sam/build/HelloWorldFunction as /var/task:ro,delegated, inside runtime container                                                                                                                                          

Error: 'str' object has no attribute 'decode'
Traceback:
  File "click/core.py", line 1078, in main
  File "click/core.py", line 1688, in invoke
  File "click/core.py", line 1688, in invoke
  File "click/core.py", line 1434, in invoke
  File "click/core.py", line 783, in invoke
  File "samcli/cli/cli_config_file.py", line 347, in wrapper
  File "click/decorators.py", line 92, in new_func
  File "click/core.py", line 783, in invoke
  File "samcli/lib/telemetry/metric.py", line 184, in wrapped
  File "samcli/lib/telemetry/metric.py", line 149, in wrapped
  File "samcli/lib/utils/version_checker.py", line 42, in wrapped
  File "samcli/cli/main.py", line 95, in wrapper
  File "samcli/commands/local/invoke/cli.py", line 103, in cli
  File "samcli/commands/local/invoke/cli.py", line 201, in do_cli
  File "samcli/commands/local/lib/local_lambda.py", line 144, in invoke
  File "samcli/lib/telemetry/metric.py", line 324, in wrapped_func
  File "samcli/local/lambdafn/runtime.py", line 193, in invoke
  File "samcli/local/lambdafn/runtime.py", line 148, in run
  File "samcli/local/docker/manager.py", line 118, in run
  File "samcli/local/docker/container.py", line 362, in start

An unexpected error was encountered while executing "sam local invoke".
Search for an existing issue:
https://github.com/aws/aws-sam-cli/issues?q=is%3Aissue+is%3Aopen+Bug%3A%20sam%20local%20invoke%20-%20AttributeError
Or create a bug report:
https://github.com/aws/aws-sam-cli/issues/new?template=Bug_report.md&title=Bug%3A%20sam%20local%20invoke%20-%20AttributeError
 ✘ da@da-mbp  ~/workspace/app/backend/app-aws-services   master ±  

Observed result:

Error: 'str' object has no attribute 'decode'

Note :

just adding the port param causes the error

✘ $ sam local invoke HelloWorldFunction  
Invoking app/function.lambdaHandler (nodejs18.x)                                                                                                                                                                                                                                                          
Local image is up-to-date                                                                                                                                                                                                                                                                                 
Using local image: public.ecr.aws/lambda/nodejs:18-rapid-x86_64.                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                                                                          
Mounting /Users/da/workspace/app/backend/testDeleteMe/aws-lambda-typescript-starter/.aws-sam/build/HelloWorldFunction as /var/task:ro,delegated, inside runtime container                                                                                                                      
START RequestId: 9004258e-7a62-4bbc-a41f-f85c0bcf6eeb Version: $LATEST
END RequestId: 000a6707-d6cd-485d-a538-ad6dfd5c156b
REPORT RequestId: 000a6707-d6cd-485d-a538-ad6dfd5c156b  Init Duration: 0.79 ms  Duration: 927.32 ms     Billed Duration: 928 ms Memory Size: 128 MB     Max Memory Used: 128 MB
{"statusCode": 200, "body": "{\"message\":\"hello world\",\"version\":\"$LATEST\"}"}.   <<<<< SUCCESS


✘ $ sam local invoke -d 9999 HelloWorldFunction       <<<<< with port
Invoking app/function.lambdaHandler (nodejs18.x)                                                                                                                                                                                                                                                          
Local image is up-to-date                                                                                                                                                                                                                                                                                 
Using local image: public.ecr.aws/lambda/nodejs:18-rapid-x86_64.                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                                                                          
Mounting /Users/da/workspace/app/backend/testDeleteMe/aws-lambda-typescript-starter/.aws-sam/build/HelloWorldFunction as /var/task:ro,delegated, inside runtime container                                                                                                                      

Error: 'str' object has no attribute 'decode'
Traceback:
  File "click/core.py", line 1078, in main
  File "click/core.py", line 1688, in invoke
  File "click/core.py", line 1688, in invoke
  File "click/core.py", line 1434, in invoke
  File "click/core.py", line 783, in invoke
  File "samcli/cli/cli_config_file.py", line 347, in wrapper
  File "click/decorators.py", line 92, in new_func
  File "click/core.py", line 783, in invoke
  File "samcli/lib/telemetry/metric.py", line 184, in wrapped
  File "samcli/lib/telemetry/metric.py", line 149, in wrapped
  File "samcli/lib/utils/version_checker.py", line 42, in wrapped
  File "samcli/cli/main.py", line 95, in wrapper
  File "samcli/commands/local/invoke/cli.py", line 103, in cli
  File "samcli/commands/local/invoke/cli.py", line 201, in do_cli
  File "samcli/commands/local/lib/local_lambda.py", line 144, in invoke
  File "samcli/lib/telemetry/metric.py", line 324, in wrapped_func
  File "samcli/local/lambdafn/runtime.py", line 193, in invoke
  File "samcli/local/lambdafn/runtime.py", line 148, in run
  File "samcli/local/docker/manager.py", line 118, in run
  File "samcli/local/docker/container.py", line 362, in start

An unexpected error was encountered while executing "sam local invoke".
Search for an existing issue:
https://github.com/aws/aws-sam-cli/issues?q=is%3Aissue+is%3Aopen+Bug%3A%20sam%20local%20invoke%20-%20AttributeError
Or create a bug report:
https://github.com/aws/aws-sam-cli/issues/new?template=Bug_report.md&title=Bug%3A%20sam%20local%20invoke%20-%20AttributeError

Expected result:

HelloWorldFunction should have started for debuting ws; something like this.
Debugger listening on ws://0.0.0.0:9999/a47891d0-d0d3-419e-8123-caf8baf4fbbc

and then i should have been able to connect to it from VSCode debugger

.vscode/launch.json looks like this:

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Attach to SAM CLI",
      "type": "node",
      "request": "attach",
      "address": "localhost",
      "port": 9999,
      "localRoot": "${workspaceFolder}/backend/app-aws-services/src/",
      "remoteRoot": "/var/task",
      "protocol": "inspector",
      "stopOnEntry": false
    }
  ]
}

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

  1. OS: mac
  2. sam --version: "1.107.0",
  3. AWS region: us-east-2
{
  "version": "1.107.0",
  "system": {
    "python": "3.8.13",
    "os": "macOS-13.4-arm64-arm-64bit"
  },
  "additional_dependencies": {
    "docker_engine": "24.0.7",
    "aws_cdk": "Not available",
    "terraform": "Not available"
  },
  "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"
  ]
}

Add --debug flag to command you are running

@daskabe daskabe added the stage/needs-triage Automatically applied to new issues and PRs, indicating they haven't been looked at. label Jan 20, 2024
@hnnasit
Copy link
Contributor

hnnasit commented Jan 22, 2024

Hi @daskabe, can you check if this issue helps in attaching a debugger manually? You can also check out the AWS toolkits extension docs which abstracts away all the setup. Let us know if you still have questions.

@hnnasit hnnasit added type/question area/debugging and removed stage/needs-triage Automatically applied to new issues and PRs, indicating they haven't been looked at. labels Jan 22, 2024
@hnnasit hnnasit added the blocked/close-if-inactive Blocked for >14 days with no response, will be closed if still inactive after 7 days label Mar 6, 2024
@mildaniel
Copy link
Contributor

Closing as this is inactive

Copy link
Contributor

⚠️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.

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

No branches or pull requests

3 participants