@haku-sci/utils 1.6.1 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -2,6 +2,7 @@ import { INestMicroservice } from '@nestjs/common';
|
|
|
2
2
|
export declare class MicroserviceService {
|
|
3
3
|
private static serviceAddress;
|
|
4
4
|
private static getServiceURI;
|
|
5
|
+
private static detectCloudProvider;
|
|
5
6
|
private static registerService;
|
|
6
7
|
private static getServerAddress;
|
|
7
8
|
private static startMainMicroService;
|
|
@@ -8,6 +8,11 @@ const net = require("net");
|
|
|
8
8
|
const axios_1 = require("axios");
|
|
9
9
|
const rxjs_1 = require("rxjs");
|
|
10
10
|
const utils = require("../utils");
|
|
11
|
+
const cloudChecks = [
|
|
12
|
+
{ name: 'AWS', url: 'http://169.254.169.254/latest/meta-data/' },
|
|
13
|
+
{ name: 'Azure', url: 'http://169.254.169.254/metadata/instance?api-version=2021-02-01', headers: { 'Metadata': 'true' } },
|
|
14
|
+
{ name: 'GCP', url: 'http://metadata.google.internal/computeMetadata/v1/', headers: { 'Metadata-Flavor': 'Google' } },
|
|
15
|
+
];
|
|
11
16
|
class MicroserviceService {
|
|
12
17
|
static async getServiceURI(serviceName) {
|
|
13
18
|
const response = await axios_1.default.get(`${process.env["CONSUL_URL"]}/v1/catalog/service/${serviceName}`);
|
|
@@ -25,6 +30,18 @@ class MicroserviceService {
|
|
|
25
30
|
throw new common_1.NotFoundException(`Service ${serviceName} not found in Consul catalog`);
|
|
26
31
|
}
|
|
27
32
|
}
|
|
33
|
+
static async detectCloudProvider() {
|
|
34
|
+
for (const { name, url, headers } of cloudChecks) {
|
|
35
|
+
try {
|
|
36
|
+
await axios_1.default.get(url, { headers, timeout: 1000 });
|
|
37
|
+
return name;
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
28
45
|
static async registerService() {
|
|
29
46
|
const microServiceName = await utils.microServiceName();
|
|
30
47
|
const serviceData = {
|
|
@@ -43,7 +60,7 @@ class MicroserviceService {
|
|
|
43
60
|
console.log(`Service registered with Consul on ${this.serviceAddress.address}:${this.serviceAddress.port}`);
|
|
44
61
|
}
|
|
45
62
|
static async getServerAddress() {
|
|
46
|
-
if (
|
|
63
|
+
if (await this.detectCloudProvider())
|
|
47
64
|
return {
|
|
48
65
|
address: `haku-sci-${await utils.microServiceName()}-${process.env.BRANCH}.${process.env.AWS_REGION}.elasticbeanstalk.com`,
|
|
49
66
|
port: 3000
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"microservice.service.js","sourceRoot":"","sources":["../../src/microservice/microservice.service.ts"],"names":[],"mappings":";;;AAAA,2CAAsE;AACtE,uCAA2C;AAC3C,yDAAwG;AACxG,2BAA2B;AAC3B,iCAA0B;AAC1B,+BAAqC;AACrC,kCAAiC;AAEjC,MAAa,mBAAmB;IAEtB,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,WAAmB;QACpD,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,uBAAuB,WAAW,EAAE,CAAC,CAAC;QACnG,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC;QAElC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;YAC1D,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;YACjC,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,IAAI;aACX,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,0BAAiB,CAAC,WAAW,WAAW,8BAA8B,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,eAAe;QAClC,MAAM,gBAAgB,GAAG,MAAM,KAAK,CAAC,gBAAgB,EAAE,CAAC;QACxD,MAAM,WAAW,GAAG;YAClB,EAAE,EAAE,gBAAgB;YACpB,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO;YACpC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI;YAC9B,KAAK,EAAE;gBACL,GAAG,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;gBACjE,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,IAAI;gBACb,8BAA8B,EAAE,IAAI;aACrC;SACF,CAAC;QAEF,MAAM,eAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,4BAA4B,EAAE,WAAW,CAAC,CAAC;QACvF,OAAO,CAAC,GAAG,CAAC,qCAAqC,IAAI,CAAC,cAAc,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9G,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,gBAAgB;QACnC,IAAI,
|
|
1
|
+
{"version":3,"file":"microservice.service.js","sourceRoot":"","sources":["../../src/microservice/microservice.service.ts"],"names":[],"mappings":"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"}
|