We use API-Gateway and Lambda architecture..
config/function.yml
handler: ${self:custom.alias}/src/create_shipment.handler
name: ${self:service}-create-shipment-${self:provider.stage}
description: create shipment api service - ${self:provider.stage}
provisionedConcurrency: 1
concurrencyAutoscaling:
enabled: true
alias: v2
maximum: 10
minimum: 1
events:
- http:
path: /create/shipment
main serverless
service: test-poc
provider:
name: aws
runtime: python3.7
versionFunctions: true
stage: ${opt:stage, 'dev'}
region: us-east-1
custom:
alias: ${opt:alias, 'v1'}
serverless-layers:
functions:
- function
plugins:
- serverless-layers
- serverless-add-api-key
- serverless-aws-alias-fixed
package:
individually: true
exclude:
- "**/*"
- serverless.yaml
functions:
function: ${file(config/function.yml):function}
We have a latency from our api and lambda, we wanted to eliminate if this is due to cold start problem and wanted to use the provisioned-concurrency plugin..
plugins:
- serverless-provisioned-concurrency-autoscaling
function:
handler: ${self:custom.alias}/src/create_shipment.handler
name: ${self:service}-function-${self:provider.stage}
description: function - ${self:provider.stage}
provisionedConcurrency: 1
concurrencyAutoscaling:
enabled: true
alias: v2
maximum: 10
minimum: 1
After adding the required provisioned concurrency settings, we are doing a
sls deploy --alias v2 -s dev
Error --------------------------------------------------
Error: The CloudFormation template is invalid: Template error: instance of Fn::GetAtt references undefined resource functionDashLambdaVersiongJFUc5aoaeWG5RSH867TjWyZWnQwgUzGCr1iqC20FY
at /home/jenkins/workspace/test-poc/node_modules/serverless/lib/plugins/aws/deploy/lib/validateTemplate.js:20:13
at tryCatcher (/home/jenkins/workspace/test-poc/node_modules/bluebird/js/release/util.js:16:23)
at Promise._settlePromiseFromHandler (/home/jenkins/workspace/test-poc/node_modules/bluebird/js/release/promise.js:547:31)
at Promise._settlePromise (/home/jenkins/workspace/test-poc/node_modules/bluebird/js/release/promise.js:604:18)
at Promise._settlePromise0 (/home/jenkins/workspace/test-poc/node_modules/bluebird/js/release/promise.js:649:10)
at Promise._settlePromises (/home/jenkins/workspace/test-poc/node_modules/bluebird/js/release/promise.js:725:18)
at _drainQueueStep (/home/jenkins/workspace/test-poc/node_modules/bluebird/js/release/async.js:93:12)
at _drainQueue (/home/jenkins/workspace/test-poc/node_modules/bluebird/js/release/async.js:86:9)
at Async._drainQueues (/home/jenkins/workspace/test-poc/node_modules/bluebird/js/release/async.js:102:5)
at Immediate.Async.drainQueues [as _onImmediate] (/home/jenkins/workspace/test-poc/node_modules/bluebird/js/release/async.js:15:14)
at processImmediate (internal/timers.js:464:21)