Key must be a buffer

Open
#363 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
25/100
Issue type
Bug
Clarity
Needs clarification
Activity status
Stale
Tech stack
aws, javascript, nodejs
Domain
cli, cloud

Research direction

Start by reproducing the node-lambda deploy flow using EC2 role credentials, then trace the failure through the AWS SDK signing paths shown in the stack trace, especially util.js, v4_credentials.js, and v4.js. Determine whether role-based credentials are expected to work and define completion as either a successful deployment or a clearly documented limitation.

Written by the indexing model from the issue text.

Description

bug
+ node-lambda deploy
=> Moving files to temporary directory
=> Running npm install --production
=> Zipping deployment package
=> Zipping repo. This might take up to 30 seconds
=> Reading zip file to memory
=> Reading event source file to memory
=> Uploading zip file to AWS Lambda eu-west-1 with parameters:
{ FunctionName: 'api-production',
  Code: { ZipFile: <Buffer 50 4b 03 04 14 00 08 00 08 00 48 6c fb 4a 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 2e 65 6e 76 4d 8e 4d 6f 82 40 18 84 ef fc 0c ef da 6a ad 35 ... > },
  Handler: 'index.handler',
  Role: 'arn:aws:iam::123456789012:role/<lambda_role>',
  Runtime: 'nodejs6.10',
  Description: 'api',
  MemorySize: '128',
  Timeout: '3',
  Publish: false,
  VpcConfig: { SubnetIds: [], SecurityGroupIds: [] },
  Environment: { Variables: null },
  DeadLetterConfig: { TargetArn: null },
  TracingConfig: { Mode: null } }
Key must be a buffer
=> Retrying
{ TypeError: Key must be a buffer
    at TypeError (native)
    at new Hmac (crypto.js:91:16)
    at Object.Hmac (crypto.js:89:12)
    at Object.hmac (/usr/lib/node_modules/node-lambda/node_modules/aws-sdk/lib/util.js:401:30)
    at Object.getSigningKey (/usr/lib/node_modules/node-lambda/node_modules/aws-sdk/lib/signers/v4_credentials.js:59:8)
    at V4.signature (/usr/lib/node_modules/node-lambda/node_modules/aws-sdk/lib/signers/v4.js:97:36)
    at V4.authorization (/usr/lib/node_modules/node-lambda/node_modules/aws-sdk/lib/signers/v4.js:92:36)
    at V4.addAuthorization (/usr/lib/node_modules/node-lambda/node_modules/aws-sdk/lib/signers/v4.js:34:12)
    at /usr/lib/node_modules/node-lambda/node_modules/aws-sdk/lib/event_listeners.js:215:18
    at finish (/usr/lib/node_modules/node-lambda/node_modules/aws-sdk/lib/config.js:315:7) retryDelay: 91.55329953571814 }

I suspect that this is because I am not giving it an IAM account credentials, instead opting to use EC2 roles...

"If your application has AWS credentials baked into it, you're "doing it wrong""

Dominant language
JavaScript
Stars
1.4k
Forks
185
PR merge metrics
No merged PRs in 30d

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from motdotla/node-lambda

All issues in motdotla/node-lambda

Similar issues

More JavaScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.