in integration_test/functions/src/index.ts [42:81]
async function callScheduleTrigger(functionName: string, region: string) {
const accessToken = await admin.credential
.applicationDefault()
.getAccessToken();
return new Promise<string>((resolve, reject) => {
const request = https.request(
{
method: 'POST',
host: 'cloudscheduler.googleapis.com',
path: `/v1/projects/${firebaseConfig.projectId}/locations/us-central1/jobs/firebase-schedule-${functionName}-${region}:run`,
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${accessToken.access_token}`,
},
},
(response) => {
if (response.statusCode! / 100 != 2) {
reject(
new Error('Failed request with status ' + response.statusCode!)
);
return;
}
let body = '';
response.on('data', (chunk) => {
body += chunk;
});
response.on('end', () => {
console.log(`Successfully scheduled function ${functionName}`);
resolve(body);
});
}
);
request.on('error', (err) => {
console.error('Failed to schedule cloud scheduler job with error', err);
reject(err);
});
request.write('{}');
request.end();
});
}