Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

FUNCTION_ERROR_INIT_FAILURE AWS lambda

I recently added the cool lambda feature - provisioned concurrency.

After a few successful deployments, I now face this issue

Serverless Error ---------------------------------------

ServerlessError: An error occurred: GraphqlPrivateProvConcLambdaAlias - Provisioned Concurrency configuration failed to be applied. Reason: FUNCTION_ERROR_INIT_FAILURE. at C:\Users\theod\AppData\Roaming\npm\node_modules\serverless\lib\plugins\aws\lib\monitorStack.js:125:33 From previous event: at AwsDeploy.monitorStack (C:\Users\theod\AppData\Roaming\npm\node_modules\serverless\lib\plugins\aws\lib\monitorStack.js:28:12) at C:\Users\theod\AppData\Roaming\npm\node_modules\serverless\lib\plugins\aws\lib\updateStack.js:107:28 From previous event: at AwsDeploy.update

here's my sample serverless.yml file

service: backend-api

parameters:
  region: ap-southeast-2
  path: &path /

provider:
  name: aws
  runtime: nodejs12.x
  stage: ${env:STAGE, 'staging'}
  region: ap-southeast-2
  versionFunctions: true

plugins:
  - serverless-webpack
  - serverless-pseudo-parameters
  - serverless-prune-plugin
  # - serverless-offline-scheduler
  - serverless-offline

functions:
  # GRAPHQL APIs
  graphqlPrivate:
    handler: src/graphql/private/index.handler
    memorySize: 256
    timeout: 30
    name: ${self:service}-gqlPrivate-${self:provider.stage}
    vpc: ${file(./serverless/vpc.yml)}
    events:
        - http:
            path: /graphql/private
            method: ANY
            cors: true
            authorizer:
              arn: arn:aws:cognito-idp:#{AWS::Region}:#{AWS::AccountId}:userpool/${self:custom.cognitoArns.private.${self:provider.stage}}
    provisionedConcurrency: 10


package:
  individually: true

custom:
  webpack:
    keepOutputDirectory: true
    serializedCompile: true
    webpackConfig: 'webpack.config.js'
    packager: 'npm'
  stage: ${opt:stage, self:provider.stage}

  prune:
    automatic: true
    number: 1

anybody able to resolve this issue?

  Your Environment Information ---------------------------
     Operating System:          win32
     Node Version:              12.11.0
     Framework Version:         1.61.3
     Plugin Version:            3.2.7
     SDK Version:               2.3.0
     Components Core Version:   1.1.2
     Components CLI Version:    1.4.0
like image 545
Theo Avatar asked Jan 27 '20 14:01

Theo


People also ask

Does AWS Lambda Auto scale?

AWS Lambda has launched improved auto scaling for Amazon MSK and self-managed Kafka as event sources to improve performance and help lower costs for customers. Lambda starts with one consumer and checks the OffsetLag metric (measure of backlog at source) every minute and scales up or down every 3 minutes.

How does Lambda handle multiple requests?

As more events come in, Lambda routes them to available instances and creates new instances as needed. When the number of requests decreases, Lambda stops unused instances to free up scaling capacity for other functions. The default regional concurrency quota starts at 1,000 instances.


1 Answers

FUNCTION_ERROR_INIT_FAILURE plainly means there's something wrong with the function's handler/code that i'm trying to deploy, w/c is why provisioned lambdas can't start up/initialize.

The way to resolve this, is to test w/o provisioned concurrency option first. Once you are able to push your lambda, error(s) will surely flow into your CW logs. The best way though, is to test your lambda locally(using serverless-offline plugin or serverless invoke), if it works properly. You can also package your app, and invoke it with serverless cli to detect issues on packaging.

In my case, there is a runtime error where my code bundle is looking for a require that is not part of bundle.

This is undocumented on AWS lambda as of now(Jan 29, 2020)

like image 93
Theo Avatar answered Sep 17 '22 15:09

Theo