diff --git a/CHANGELOG.md b/CHANGELOG.md index e69de29bb2d..dbacb12198a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -0,0 +1 @@ +- Preserve empty vpc connector setting on function deploy. (#3973) diff --git a/src/deploy/functions/runtimes/node/parseTriggers.ts b/src/deploy/functions/runtimes/node/parseTriggers.ts index 707aab8517a..8e801a902c2 100644 --- a/src/deploy/functions/runtimes/node/parseTriggers.ts +++ b/src/deploy/functions/runtimes/node/parseTriggers.ts @@ -212,9 +212,9 @@ export function addResourcesToBackend( runtime: runtime, ...triggered, }; - if (annotation.vpcConnector) { + if (annotation.vpcConnector != null) { let maybeId = annotation.vpcConnector; - if (!maybeId.includes("/")) { + if (maybeId && !maybeId.includes("/")) { maybeId = `projects/${projectId}/locations/${region}/connectors/${maybeId}`; } endpoint.vpcConnector = maybeId; diff --git a/src/test/deploy/functions/runtimes/node/parseTriggers.spec.ts b/src/test/deploy/functions/runtimes/node/parseTriggers.spec.ts index e148de92a52..675c8157de8 100644 --- a/src/test/deploy/functions/runtimes/node/parseTriggers.spec.ts +++ b/src/test/deploy/functions/runtimes/node/parseTriggers.spec.ts @@ -289,4 +289,23 @@ describe("addResourcesToBackend", () => { expect(result).to.deep.equal(expected); }); + + it("should preserve empty vpc connector setting", () => { + const trigger: parseTriggers.TriggerAnnotation = { + ...BASIC_TRIGGER, + httpsTrigger: {}, + vpcConnector: "", + }; + + const result = backend.empty(); + parseTriggers.addResourcesToBackend("project", "nodejs16", trigger, result); + + const expected: backend.Backend = backend.of({ + ...BASIC_ENDPOINT, + httpsTrigger: {}, + vpcConnector: "", + }); + + expect(result).to.deep.equal(expected); + }); });