diff --git a/package/lib/compileFunctions.js b/package/lib/compileFunctions.js index 5306fd2..8a1b17e 100644 --- a/package/lib/compileFunctions.js +++ b/package/lib/compileFunctions.js @@ -80,11 +80,13 @@ module.exports = { const type = funcObject.events[0].event.eventType; const path = funcObject.events[0].event.path; //eslint-disable-line const resource = funcObject.events[0].event.resource; + const failurePolicy = funcObject.events[0].event.failurePolicy; funcTemplate.properties.eventTrigger = {}; funcTemplate.properties.eventTrigger.eventType = type; if (path) funcTemplate.properties.eventTrigger.path = path; funcTemplate.properties.eventTrigger.resource = resource; + if (failurePolicy) funcTemplate.properties.eventTrigger.failurePolicy = failurePolicy; } this.serverless.service.provider.compiledConfigurationTemplate.resources.push(funcTemplate); diff --git a/package/lib/compileFunctions.test.js b/package/lib/compileFunctions.test.js index cfdc6f4..5ae9654 100644 --- a/package/lib/compileFunctions.test.js +++ b/package/lib/compileFunctions.test.js @@ -568,6 +568,20 @@ describe('CompileFunctions', () => { }, ], }, + func3: { + handler: 'func3', + events: [ + { + event: { + eventType: 'foo', + resource: 'some-resource', + failurePolicy: { + retry: {}, + }, + }, + }, + ], + }, }; const compiledResources = [ @@ -608,6 +622,26 @@ describe('CompileFunctions', () => { labels: {}, }, }, + { + type: 'cloudfunctions.v1beta2.function', + name: 'my-service-dev-func3', + properties: { + location: 'us-central1', + runtime: 'nodejs8', + function: 'func3', + availableMemoryMb: 256, + timeout: '60s', + sourceArchiveUrl: 'gs://sls-my-service-dev-12345678/some-path/artifact.zip', + eventTrigger: { + eventType: 'foo', + resource: 'some-resource', + failurePolicy: { + retry: {}, + }, + }, + labels: {}, + }, + }, ]; return googlePackage.compileFunctions().then(() => {