juanjoDiaz / serverless-plugin-warmup

Keep your lambdas warm during winter. ♨
MIT License
1.11k stars 114 forks source link

ENOENT: no such file or directory #279

Closed kosy-sam closed 3 years ago

kosy-sam commented 3 years ago

It looks like the zip file it tries to upload does not get found. Some strange things I noticed:

Below are the details of my setup, let me know if I can be of further assistance :)

command:

serverless deploy

My config (partial):

provider:
    name: aws
    runtime: nodejs12.x
    stage: ${env:FEATURE, opt:env, "dev"}
    region: eu-west-1
    environment: ${self:custom.${opt:env, self:provider.stage}.environment}
    vpc: ${self:custom.${opt:env, self:provider.stage}.vpc}
    iam:
        role:
            statements:
                - Effect: "Allow"
                  Action:
                      - "ses:SendEmail"
                      - "ses:SendRawEmail"
                  Resource: "*"
                - Effect: "Allow"
                  Action:
                      - "s3:PutObject"
                      - "s3:GetObject"
                  Resource:
                      - "arn:aws:s3:::kosy-temp/*"
                      - "arn:aws:s3:::kosy-cdn/*"
                - Effect: "Allow"
                  Action:
                      - "sqs:CreateQueue"
                      - "sqs:DeleteQueue"
                      - "sqs:ReceiveMessage"
                      - "sqs:SendMessage"
                      - "sqs:ListQueues"
                  Resource: "*"
                - Effect: "Allow"
                  Action:
                      - "sns:Publish"

                      - "sns:CreateTopic"
                  Resource: "*"

functions:
    disconnectHandler:
        handler: index.disconnectHandler
        events:
            - websocket:
                  route: $disconnect
    socketHandler:
        handler: index.socketHandler
        events:
            - websocket:
                  route: $default
                  routeResponseSelectionExpression: $default
    eventWatcher:
        handler: index.eventWatcher
        events:
            - sns: arn:aws:sns:eu-west-1:474863683069:${opt:env, self:provider.stage}-activity-events
            - sns: arn:aws:sns:eu-west-1:474863683069:${opt:env, self:provider.stage}-auth-events
            - sns: arn:aws:sns:eu-west-1:474863683069:${opt:env, self:provider.stage}-building-events
            - sns: arn:aws:sns:eu-west-1:474863683069:${opt:env, self:provider.stage}-organization-events
            - sns: arn:aws:sns:eu-west-1:474863683069:${opt:env, self:provider.stage}-validation-error
plugins:
    - serverless-plugin-warmup
    - serverless-plugin-warmup-ts-bridge
    - serverless-plugin-typescript
    - serverless-domain-manager
custom:
    warmup:
        hothot:
            enabled: true

Relevant logs from serverless:

Serverless: Invoke deploy
Serverless: Invoke package
Serverless: Invoke aws:common:validate
Serverless: Invoke aws:common:cleanupTempDir
Serverless: Invoke warmup:addWarmers
Serverless: WarmUp: Creating warmer "hothot" to warm up 3 functions:
Serverless:           * kosy-web-api-dev-disconnectHandler
Serverless:           * kosy-web-api-dev-socketHandler
Serverless:           * kosy-web-api-dev-eventWatcher
Serverless: Compiling with Typescript...
Serverless: Using local tsconfig.json
Serverless: Typescript compiled.
Serverless: WarmUp: Creating warmer "hothot" to warm up 3 functions:
Serverless:           * kosy-web-api-dev-disconnectHandler
Serverless:           * kosy-web-api-dev-socketHandler
Serverless:           * kosy-web-api-dev-eventWatcher
Serverless: Packaging service...
Serverless: Excluding development dependencies...
Serverless: Excluding development dependencies...
Serverless: Invoke warmup:cleanupTempDir

 Error ---------------------------------------------------

  Error: Error: Error: ENOENT: no such file or directory, open 'C:\kosy\kosy-online\kosy-web-api\.build\.serverless\warmUpPluginHothot.zip' encountered during hash calculation for provided filePath: C:\kosy\kosy-online\kosy-web-api\.build\.serverless\warmUpPluginHothot.zip
      at ReadStream.<anonymous> (C:\Users\sam\AppData\Roaming\npm\node_modules\serverless\lib\plugins\aws\package\lib\getHashForFilePath.js:23:13)
      at ReadStream.emit (events.js:315:20)
      at ReadStream.EventEmitter.emit (domain.js:467:12)
      at C:\Users\sam\AppData\Roaming\npm\node_modules\serverless\node_modules\graceful-fs\graceful-fs.js:292:14
      at C:\Users\sam\AppData\Roaming\npm\node_modules\serverless\node_modules\graceful-fs\graceful-fs.js:343:16
      at FSReqCallback.oncomplete (fs.js:171:23)

  Get Support --------------------------------------------
     Docs:          docs.serverless.com
     Bugs:          github.com/serverless/serverless/issues
     Issues:        forum.serverless.com

  Your Environment Information ---------------------------
     Operating System:          win32
     Node Version:              14.16.1
     Framework Version:         2.57.0
     Plugin Version:            5.4.4
     SDK Version:               4.3.0
     Components Version:        3.17.0
kosy-sam commented 3 years ago

After some research (also finding similar webpack issues), I figured out the problem; fixed by:

    - serverless-plugin-warmup-ts-bridge-v2
    - serverless-plugin-warmup
    - serverless-plugin-typescript
    - serverless-domain-manager