From ee76c5f3bd371f1f0dd75b8cf1c6ffb8be9232fb Mon Sep 17 00:00:00 2001 From: Simon Liang Date: Mon, 18 May 2020 21:46:29 +0800 Subject: [PATCH 1/3] make compileFunctions work with package.individually --- package/lib/compileFunctions.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/package/lib/compileFunctions.js b/package/lib/compileFunctions.js index 4e05832..550caed 100644 --- a/package/lib/compileFunctions.js +++ b/package/lib/compileFunctions.js @@ -9,10 +9,17 @@ const _ = require('lodash'); module.exports = { compileFunctions() { this.resources = this.serverless.service.provider.compiledConfigurationTemplate.Resources; - this.compileStorage(this.serverless.service.package.artifact); + if (!this.serverless.service.package.individually) { + console.log(this.serverless.service.package); + this.compileStorage(this.serverless.service.package.artifact); + } this.serverless.service.getAllFunctions().forEach((functionName) => { const funcObject = this.serverless.service.getFunction(functionName); - this.compileFunctionAndEvent(functionName, funcObject); + if (this.serverless.service.package.individually) { + this.compileFunction(functionName, funcObject); + } else { + this.compileFunctionAndEvent(functionName, funcObject); + } }); }, From b942013d7f5420f8924c070f77d8a10d47fe6cdc Mon Sep 17 00:00:00 2001 From: Simon Liang Date: Tue, 19 May 2020 18:16:58 +0800 Subject: [PATCH 2/3] Remove extraneous console log --- package/lib/compileFunctions.js | 1 - 1 file changed, 1 deletion(-) diff --git a/package/lib/compileFunctions.js b/package/lib/compileFunctions.js index 550caed..c5047db 100644 --- a/package/lib/compileFunctions.js +++ b/package/lib/compileFunctions.js @@ -10,7 +10,6 @@ module.exports = { compileFunctions() { this.resources = this.serverless.service.provider.compiledConfigurationTemplate.Resources; if (!this.serverless.service.package.individually) { - console.log(this.serverless.service.package); this.compileStorage(this.serverless.service.package.artifact); } this.serverless.service.getAllFunctions().forEach((functionName) => { From d282cffa5416a033630ec902707a2f2a8fd179dd Mon Sep 17 00:00:00 2001 From: Simon Liang Date: Thu, 4 Jun 2020 17:45:31 +0800 Subject: [PATCH 3/3] added env var and description support --- provider/aliyunProvider.js | 20 +++++++++++++------- shared/utils.js | 2 +- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/provider/aliyunProvider.js b/provider/aliyunProvider.js index 3e93e41..34b3846 100644 --- a/provider/aliyunProvider.js +++ b/provider/aliyunProvider.js @@ -39,7 +39,8 @@ class AliyunProvider { this.provider = this; this.serverless.setProvider(PROVIDER_NAME, this); this.options = options; - utils.setDefaults.call(this); + // FIXME: this method breaks if `provider.stage` is using a variable + // utils.setDefaults.call(this); } get projectDelay() { @@ -358,16 +359,21 @@ class AliyunProvider { || service.provider.timeout || 30; - // TODO(joyeecheung): description + // https://help.aliyun.com/document_detail/52877.html?spm=a2c4g.11186623.6.781.78c911a0x2vF8D#createfunction + const env = funcObject.environment; + return { 'Type': 'ALIYUN::FC::Function', 'Properties': { 'name': funcObject.name, + // https://help.aliyun.com/document_detail/52877.html?spm=a2c4g.11186623.6.781.78c911a0x2vF8D#createfunction + 'description': funcObject.description, 'service': this.getServiceName(), 'handler': funcObject.handler, 'memorySize': memorySize, 'timeout': timeout, 'runtime': service.provider.runtime, + 'EnvironmentVariables': env, 'code': { 'ossBucketName': this.getDeploymentBucketName(), 'ossObjectName': service.package.artifactFilePath @@ -713,7 +719,7 @@ class AliyunProvider { return this.getLogProject(projectName); } - deleteLogProject(projectName, options){ + deleteLogProject(projectName, options){ return this.slsClient.deleteProject(projectName, options); } @@ -738,12 +744,12 @@ class AliyunProvider { } async createLogStore(projectName, storeName, store) { - await this.slsClient.createLogStore(projectName, storeName, store); + await this.slsClient.createLogStore(projectName, storeName, store); await this.sleep(this.storeDelay); return this.getLogStore(projectName, storeName); } -deleteLogStore(projectName, logstoreName, options) { + deleteLogStore(projectName, logstoreName, options) { return this.slsClient.deleteLogStore(projectName, logstoreName, options); } async getLogIndex(projectName, storeName) { @@ -766,7 +772,7 @@ deleteLogStore(projectName, logstoreName, options) { await this.getLogIndex(projectName, storeName); } -deleteLogIndex(projectName, logstoreName, options) { + deleteLogIndex(projectName, logstoreName, options) { return this.slsClient.deleteIndex(projectName, logstoreName, options); } @@ -832,7 +838,7 @@ deleteLogIndex(projectName, logstoreName, options) { uploadObject(objectName, filePath) { const ossClient = this.ossClient; - console.log(filePath) + console.log(filePath); return co(function* uploadObject() { return yield ossClient.put(objectName, filePath); }); diff --git a/shared/utils.js b/shared/utils.js index eb711e0..119f55f 100644 --- a/shared/utils.js +++ b/shared/utils.js @@ -6,7 +6,7 @@ module.exports = { setDefaults() { this.options.stage = _.get(this, 'options.stage') || 'dev'; - this.options.region = _.get(this, 'options.region') + this.options.region = _.get(this, 'options.region') || _.get(this, 'serverless.service.provider.region') || 'cn-shanghai'; },