Skip to content

Commit 1164495

Browse files
luisgreenxyiLuis Eduardo Chacón
authored
feat: Support serviceAccount option for deployment (#215)
Co-authored-by: Xin Yi <xin.yi@postmates.com> Co-authored-by: Xin Yi <mr.xin.yi@gmail.com> Co-authored-by: Luis Eduardo Chacón <luisgreen@gmail.com>
1 parent 86d40aa commit 1164495

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

package/lib/compileFunctions.js

+8
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ module.exports = {
3232
`gs://${this.serverless.service.provider.deploymentBucketName}/${this.serverless.service.package.artifactFilePath}`
3333
);
3434

35+
funcTemplate.properties.serviceAccountEmail =
36+
_.get(funcObject, 'serviceAccountEmail') ||
37+
_.get(this, 'serverless.service.provider.serviceAccountEmail') ||
38+
null;
3539
funcTemplate.properties.availableMemoryMb =
3640
_.get(funcObject, 'memorySize') ||
3741
_.get(this, 'serverless.service.provider.memorySize') ||
@@ -48,6 +52,10 @@ module.exports = {
4852
funcObject.environment // eslint-disable-line comma-dangle
4953
);
5054

55+
if (!funcTemplate.properties.serviceAccountEmail) {
56+
delete funcTemplate.properties.serviceAccountEmail;
57+
}
58+
5159
if (funcObject.vpc) {
5260
_.assign(funcTemplate.properties, {
5361
vpcConnector: _.get(funcObject, 'vpc') || _.get(this, 'serverless.service.provider.vpc'),

provider/googleProvider.js

+21
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,27 @@ class GoogleProvider {
4141
logging: google.logging('v2'),
4242
cloudfunctions: google.cloudfunctions('v1'),
4343
};
44+
45+
this.variableResolvers = {
46+
gs: this.getGsValue,
47+
};
48+
}
49+
50+
getGsValue(variableString) {
51+
const groups = variableString.split(':')[1].split('/');
52+
const bucket = groups.shift();
53+
const object = groups.join('/');
54+
55+
return this.serverless
56+
.getProvider('google')
57+
.request('storage', 'objects', 'get', {
58+
bucket,
59+
object,
60+
alt: 'media',
61+
})
62+
.catch(err => {
63+
throw new Error(`Error getting value for ${variableString}. ${err.message}`);
64+
});
4465
}
4566

4667
request() {

0 commit comments

Comments
 (0)