diff --git a/script/release/get-url-hash.js b/script/release/get-url-hash.js index 0633567a7dd90..ae91fac30e526 100644 --- a/script/release/get-url-hash.js +++ b/script/release/get-url-hash.js @@ -1,34 +1,25 @@ -const AWS = require('aws-sdk'); - -const lambda = new AWS.Lambda({ - credentials: { - accessKeyId: process.env.AWS_LAMBDA_EXECUTE_KEY, - secretAccessKey: process.env.AWS_LAMBDA_EXECUTE_SECRET - }, - region: 'us-east-1' -}); +const got = require('got'); +const url = require('url'); module.exports = async function getUrlHash (targetUrl, algorithm = 'sha256', attempts = 3) { + const options = { + code: process.env.ELECTRON_ARTIFACT_HASHER_FUNCTION_KEY, + targetUrl, + algorithm + }; + const search = new url.URLSearchParams(options); + const functionUrl = url.format({ + protocol: 'https:', + hostname: 'electron-artifact-hasher.azurewebsites.net', + pathname: '/api/HashArtifact', + search: search.toString() + }); try { - return new Promise((resolve, reject) => { - lambda.invoke({ - FunctionName: 'hasher', - Payload: JSON.stringify({ - targetUrl, - algorithm - }) - }, (err, data) => { - if (err) return reject(err); - try { - const response = JSON.parse(data.Payload); - if (response.statusCode !== 200) return reject(new Error('non-200 status code received from hasher function')); - if (!response.hash) return reject(new Error('Successful lambda call but failed to get valid hash')); - resolve(response.hash); - } catch (err) { - return reject(err); - } - }); - }); + const resp = await got(functionUrl); + if (resp.statusCode !== 200) throw new Error('non-200 status code received from hasher function'); + if (!resp.body) throw new Error('Successful lambda call but failed to get valid hash'); + + return resp.body.trim(); } catch (err) { if (attempts > 1) { console.error('Failed to get URL hash for', targetUrl, 'we will retry', err);