in src/scaler/scaler-core/index.js [470:500]
async function scaleMemorystoreClusterPubSub(pubSubEvent, context) {
try {
const payload = Buffer.from(pubSubEvent.data, 'base64').toString();
const cluster = JSON.parse(payload);
try {
const state = State.buildFor(cluster);
await processScalingRequest(cluster, state);
await state.close();
await Counters.incRequestsSuccessCounter();
} catch (err) {
logger.error({
message: `Failed to process scaling request: ${err}`,
projectId: cluster.projectId,
regionId: cluster.regionId,
clusterId: cluster.clusterId,
payload: cluster,
err: err,
});
await Counters.incRequestsFailedCounter();
}
} catch (err) {
logger.error({
message: `Failed to parse pubSub scaling request: ${err}`,
payload: pubSubEvent.data,
err: err,
});
await Counters.incRequestsFailedCounter();
} finally {
await Counters.tryFlush();
}
}