@bitblit/ratchet-aws 4.0.420-alpha → 4.0.421-alpha
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.
- package/lib/batch/aws-batch-background-processor.d.ts +8 -0
- package/lib/batch/aws-batch-background-processor.js +46 -0
- package/lib/batch/aws-batch-background-processor.js.map +1 -0
- package/lib/batch/aws-batch-ratchet.d.ts +13 -0
- package/lib/batch/aws-batch-ratchet.js +56 -0
- package/lib/batch/aws-batch-ratchet.js.map +1 -0
- package/lib/batch/index.d.ts +2 -0
- package/lib/batch/index.js +3 -0
- package/lib/batch/index.js.map +1 -0
- package/lib/build/index.d.ts +1 -0
- package/lib/build/index.js +2 -0
- package/lib/build/index.js.map +1 -0
- package/lib/build/ratchet-aws-info.d.ts +5 -0
- package/lib/build/ratchet-aws-info.js +15 -0
- package/lib/build/ratchet-aws-info.js.map +1 -0
- package/lib/cache/index.d.ts +5 -0
- package/lib/cache/index.js +6 -0
- package/lib/cache/index.js.map +1 -0
- package/lib/cache/memory-storage-provider.d.ts +10 -0
- package/lib/cache/memory-storage-provider.js +28 -0
- package/lib/cache/memory-storage-provider.js.map +1 -0
- package/lib/cache/simple-cache-object-wrapper.d.ts +7 -0
- package/lib/cache/simple-cache-object-wrapper.js +2 -0
- package/lib/cache/simple-cache-object-wrapper.js.map +1 -0
- package/lib/cache/simple-cache-read-options.d.ts +5 -0
- package/lib/cache/simple-cache-read-options.js +2 -0
- package/lib/cache/simple-cache-read-options.js.map +1 -0
- package/lib/cache/simple-cache-storage-provider.d.ts +8 -0
- package/lib/cache/simple-cache-storage-provider.js +2 -0
- package/lib/cache/simple-cache-storage-provider.js.map +1 -0
- package/lib/cache/simple-cache.d.ts +14 -0
- package/lib/cache/simple-cache.js +65 -0
- package/lib/cache/simple-cache.js.map +1 -0
- package/lib/cloudwatch/cloud-watch-log-group-ratchet.d.ts +10 -0
- package/lib/cloudwatch/cloud-watch-log-group-ratchet.js +75 -0
- package/lib/cloudwatch/cloud-watch-log-group-ratchet.js.map +1 -0
- package/lib/cloudwatch/cloud-watch-logs-ratchet.d.ts +15 -0
- package/lib/cloudwatch/cloud-watch-logs-ratchet.js +174 -0
- package/lib/cloudwatch/cloud-watch-logs-ratchet.js.map +1 -0
- package/lib/cloudwatch/cloud-watch-metrics-ratchet.d.ts +10 -0
- package/lib/cloudwatch/cloud-watch-metrics-ratchet.js +57 -0
- package/lib/cloudwatch/cloud-watch-metrics-ratchet.js.map +1 -0
- package/lib/cloudwatch/index.d.ts +3 -0
- package/lib/cloudwatch/index.js +4 -0
- package/lib/cloudwatch/index.js.map +1 -0
- package/lib/daemon/daemon-like.d.ts +16 -0
- package/lib/daemon/daemon-like.js +2 -0
- package/lib/daemon/daemon-like.js.map +1 -0
- package/lib/daemon/daemon-process-create-options.d.ts +7 -0
- package/lib/daemon/daemon-process-create-options.js +2 -0
- package/lib/daemon/daemon-process-create-options.js.map +1 -0
- package/lib/daemon/daemon-process-state-public-token.d.ts +4 -0
- package/lib/daemon/daemon-process-state-public-token.js +2 -0
- package/lib/daemon/daemon-process-state-public-token.js.map +1 -0
- package/lib/daemon/daemon-process-state.d.ts +13 -0
- package/lib/daemon/daemon-process-state.js +2 -0
- package/lib/daemon/daemon-process-state.js.map +1 -0
- package/lib/daemon/daemon-stream-data-options.d.ts +5 -0
- package/lib/daemon/daemon-stream-data-options.js +2 -0
- package/lib/daemon/daemon-stream-data-options.js.map +1 -0
- package/lib/daemon/daemon-util.d.ts +17 -0
- package/lib/daemon/daemon-util.js +154 -0
- package/lib/daemon/daemon-util.js.map +1 -0
- package/lib/daemon/daemon.d.ts +32 -0
- package/lib/daemon/daemon.js +129 -0
- package/lib/daemon/daemon.js.map +1 -0
- package/lib/daemon/index.d.ts +7 -0
- package/lib/daemon/index.js +8 -0
- package/lib/daemon/index.js.map +1 -0
- package/lib/dao/example-prototype-dao-item.d.ts +8 -0
- package/lib/dao/example-prototype-dao-item.js +2 -0
- package/lib/dao/example-prototype-dao-item.js.map +1 -0
- package/lib/dao/index.d.ts +8 -0
- package/lib/dao/index.js +9 -0
- package/lib/dao/index.js.map +1 -0
- package/lib/dao/memory-prototype-dao-provider.d.ts +7 -0
- package/lib/dao/memory-prototype-dao-provider.js +11 -0
- package/lib/dao/memory-prototype-dao-provider.js.map +1 -0
- package/lib/dao/prototype-dao-config.d.ts +8 -0
- package/lib/dao/prototype-dao-config.js +2 -0
- package/lib/dao/prototype-dao-config.js.map +1 -0
- package/lib/dao/prototype-dao-db.d.ts +4 -0
- package/lib/dao/prototype-dao-db.js +2 -0
- package/lib/dao/prototype-dao-db.js.map +1 -0
- package/lib/dao/prototype-dao-provider.d.ts +5 -0
- package/lib/dao/prototype-dao-provider.js +2 -0
- package/lib/dao/prototype-dao-provider.js.map +1 -0
- package/lib/dao/prototype-dao.d.ts +15 -0
- package/lib/dao/prototype-dao.js +89 -0
- package/lib/dao/prototype-dao.js.map +1 -0
- package/lib/dao/s3-simple-dao.d.ts +15 -0
- package/lib/dao/s3-simple-dao.js +77 -0
- package/lib/dao/s3-simple-dao.js.map +1 -0
- package/lib/dao/simple-dao-item.d.ts +5 -0
- package/lib/dao/simple-dao-item.js +2 -0
- package/lib/dao/simple-dao-item.js.map +1 -0
- package/lib/dynamodb/dynamo-ratchet-like.d.ts +25 -0
- package/lib/dynamodb/dynamo-ratchet-like.js +2 -0
- package/lib/dynamodb/dynamo-ratchet-like.js.map +1 -0
- package/lib/dynamodb/dynamo-ratchet.d.ts +34 -0
- package/lib/dynamodb/dynamo-ratchet.js +671 -0
- package/lib/dynamodb/dynamo-ratchet.js.map +1 -0
- package/lib/dynamodb/dynamo-table-ratchet.d.ts +13 -0
- package/lib/dynamodb/dynamo-table-ratchet.js +140 -0
- package/lib/dynamodb/dynamo-table-ratchet.js.map +1 -0
- package/lib/dynamodb/hash-spreader.d.ts +15 -0
- package/lib/dynamodb/hash-spreader.js +66 -0
- package/lib/dynamodb/hash-spreader.js.map +1 -0
- package/lib/dynamodb/impl/dynamo-db-storage-provider.d.ts +25 -0
- package/lib/dynamodb/impl/dynamo-db-storage-provider.js +110 -0
- package/lib/dynamodb/impl/dynamo-db-storage-provider.js.map +1 -0
- package/lib/dynamodb/impl/dynamo-db-sync-lock.d.ts +10 -0
- package/lib/dynamodb/impl/dynamo-db-sync-lock.js +71 -0
- package/lib/dynamodb/impl/dynamo-db-sync-lock.js.map +1 -0
- package/lib/dynamodb/impl/dynamo-expiring-code-provider.d.ts +12 -0
- package/lib/dynamodb/impl/dynamo-expiring-code-provider.js +25 -0
- package/lib/dynamodb/impl/dynamo-expiring-code-provider.js.map +1 -0
- package/lib/dynamodb/impl/dynamo-runtime-parameter-provider.d.ts +11 -0
- package/lib/dynamodb/impl/dynamo-runtime-parameter-provider.js +37 -0
- package/lib/dynamodb/impl/dynamo-runtime-parameter-provider.js.map +1 -0
- package/lib/dynamodb/index.d.ts +8 -0
- package/lib/dynamodb/index.js +9 -0
- package/lib/dynamodb/index.js.map +1 -0
- package/lib/ec2/ec2-ratchet.d.ts +16 -0
- package/lib/ec2/ec2-ratchet.js +114 -0
- package/lib/ec2/ec2-ratchet.js.map +1 -0
- package/lib/ec2/index.d.ts +1 -0
- package/lib/ec2/index.js +2 -0
- package/lib/ec2/index.js.map +1 -0
- package/lib/ecr/ecr-unused-image-cleaner-options.d.ts +7 -0
- package/lib/ecr/ecr-unused-image-cleaner-options.js +2 -0
- package/lib/ecr/ecr-unused-image-cleaner-options.js.map +1 -0
- package/lib/ecr/ecr-unused-image-cleaner-output.d.ts +7 -0
- package/lib/ecr/ecr-unused-image-cleaner-output.js +2 -0
- package/lib/ecr/ecr-unused-image-cleaner-output.js.map +1 -0
- package/lib/ecr/ecr-unused-image-cleaner-repository-output.d.ts +8 -0
- package/lib/ecr/ecr-unused-image-cleaner-repository-output.js +2 -0
- package/lib/ecr/ecr-unused-image-cleaner-repository-output.js.map +1 -0
- package/lib/ecr/ecr-unused-image-cleaner.d.ts +18 -0
- package/lib/ecr/ecr-unused-image-cleaner.js +136 -0
- package/lib/ecr/ecr-unused-image-cleaner.js.map +1 -0
- package/lib/ecr/index.d.ts +9 -0
- package/lib/ecr/index.js +10 -0
- package/lib/ecr/index.js.map +1 -0
- package/lib/ecr/retained-image-descriptor.d.ts +6 -0
- package/lib/ecr/retained-image-descriptor.js +2 -0
- package/lib/ecr/retained-image-descriptor.js.map +1 -0
- package/lib/ecr/retained-image-reason.d.ts +4 -0
- package/lib/ecr/retained-image-reason.js +6 -0
- package/lib/ecr/retained-image-reason.js.map +1 -0
- package/lib/ecr/used-image-finder.d.ts +3 -0
- package/lib/ecr/used-image-finder.js +2 -0
- package/lib/ecr/used-image-finder.js.map +1 -0
- package/lib/ecr/used-image-finders/aws-batch-used-image-finder.d.ts +8 -0
- package/lib/ecr/used-image-finders/aws-batch-used-image-finder.js +32 -0
- package/lib/ecr/used-image-finders/aws-batch-used-image-finder.js.map +1 -0
- package/lib/ecr/used-image-finders/lambda-used-image-finder.d.ts +8 -0
- package/lib/ecr/used-image-finders/lambda-used-image-finder.js +40 -0
- package/lib/ecr/used-image-finders/lambda-used-image-finder.js.map +1 -0
- package/lib/environment/cascade-environment-service-provider.d.ts +6 -0
- package/lib/environment/cascade-environment-service-provider.js +25 -0
- package/lib/environment/cascade-environment-service-provider.js.map +1 -0
- package/lib/environment/env-var-environment-service-provider.d.ts +6 -0
- package/lib/environment/env-var-environment-service-provider.js +31 -0
- package/lib/environment/env-var-environment-service-provider.js.map +1 -0
- package/lib/environment/environment-service-config.d.ts +4 -0
- package/lib/environment/environment-service-config.js +2 -0
- package/lib/environment/environment-service-config.js.map +1 -0
- package/lib/environment/environment-service-provider.d.ts +3 -0
- package/lib/environment/environment-service-provider.js +2 -0
- package/lib/environment/environment-service-provider.js.map +1 -0
- package/lib/environment/environment-service.d.ts +11 -0
- package/lib/environment/environment-service.js +51 -0
- package/lib/environment/environment-service.js.map +1 -0
- package/lib/environment/fixed-environment-service-provider.d.ts +7 -0
- package/lib/environment/fixed-environment-service-provider.js +22 -0
- package/lib/environment/fixed-environment-service-provider.js.map +1 -0
- package/lib/environment/index.d.ts +7 -0
- package/lib/environment/index.js +8 -0
- package/lib/environment/index.js.map +1 -0
- package/lib/environment/ssm-environment-service-provider.d.ts +8 -0
- package/lib/environment/ssm-environment-service-provider.js +59 -0
- package/lib/environment/ssm-environment-service-provider.js.map +1 -0
- package/lib/expiring-code/expiring-code-params.d.ts +7 -0
- package/lib/expiring-code/expiring-code-params.js +2 -0
- package/lib/expiring-code/expiring-code-params.js.map +1 -0
- package/lib/expiring-code/expiring-code-provider.d.ts +5 -0
- package/lib/expiring-code/expiring-code-provider.js +2 -0
- package/lib/expiring-code/expiring-code-provider.js.map +1 -0
- package/lib/expiring-code/expiring-code-ratchet.d.ts +10 -0
- package/lib/expiring-code/expiring-code-ratchet.js +35 -0
- package/lib/expiring-code/expiring-code-ratchet.js.map +1 -0
- package/lib/expiring-code/expiring-code.d.ts +6 -0
- package/lib/expiring-code/expiring-code.js +2 -0
- package/lib/expiring-code/expiring-code.js.map +1 -0
- package/lib/expiring-code/index.d.ts +4 -0
- package/lib/expiring-code/index.js +5 -0
- package/lib/expiring-code/index.js.map +1 -0
- package/lib/iam/aws-credentials-ratchet.d.ts +4 -0
- package/lib/iam/aws-credentials-ratchet.js +19 -0
- package/lib/iam/aws-credentials-ratchet.js.map +1 -0
- package/lib/iam/index.d.ts +1 -0
- package/lib/iam/index.js +2 -0
- package/lib/iam/index.js.map +1 -0
- package/lib/lambda/index.d.ts +2 -0
- package/lib/lambda/index.js +3 -0
- package/lib/lambda/index.js.map +1 -0
- package/lib/lambda/lambda-event-detector.d.ts +15 -0
- package/lib/lambda/lambda-event-detector.js +42 -0
- package/lib/lambda/lambda-event-detector.js.map +1 -0
- package/lib/lambda/lambda-event-type-guards.d.ts +11 -0
- package/lib/lambda/lambda-event-type-guards.js +28 -0
- package/lib/lambda/lambda-event-type-guards.js.map +1 -0
- package/lib/model/cloud-watch-metrics-minute-level-dynamo-count-request.d.ts +12 -0
- package/lib/model/cloud-watch-metrics-minute-level-dynamo-count-request.js +2 -0
- package/lib/model/cloud-watch-metrics-minute-level-dynamo-count-request.js.map +1 -0
- package/lib/model/dynamo-count-result.d.ts +5 -0
- package/lib/model/dynamo-count-result.js +2 -0
- package/lib/model/dynamo-count-result.js.map +1 -0
- package/lib/model/index.d.ts +2 -0
- package/lib/model/index.js +3 -0
- package/lib/model/index.js.map +1 -0
- package/lib/route53/index.d.ts +1 -0
- package/lib/route53/index.js +2 -0
- package/lib/route53/index.js.map +1 -0
- package/lib/route53/route-53-ratchet.d.ts +8 -0
- package/lib/route53/route-53-ratchet.js +59 -0
- package/lib/route53/route-53-ratchet.js.map +1 -0
- package/lib/runtime-parameter/cached-stored-runtime-parameter.d.ts +4 -0
- package/lib/runtime-parameter/cached-stored-runtime-parameter.js +2 -0
- package/lib/runtime-parameter/cached-stored-runtime-parameter.js.map +1 -0
- package/lib/runtime-parameter/global-variable-override-runtime-parameter-provider.d.ts +17 -0
- package/lib/runtime-parameter/global-variable-override-runtime-parameter-provider.js +52 -0
- package/lib/runtime-parameter/global-variable-override-runtime-parameter-provider.js.map +1 -0
- package/lib/runtime-parameter/index.d.ts +6 -0
- package/lib/runtime-parameter/index.js +7 -0
- package/lib/runtime-parameter/index.js.map +1 -0
- package/lib/runtime-parameter/memory-runtime-parameter-provider.d.ts +10 -0
- package/lib/runtime-parameter/memory-runtime-parameter-provider.js +35 -0
- package/lib/runtime-parameter/memory-runtime-parameter-provider.js.map +1 -0
- package/lib/runtime-parameter/runtime-parameter-provider.d.ts +6 -0
- package/lib/runtime-parameter/runtime-parameter-provider.js +2 -0
- package/lib/runtime-parameter/runtime-parameter-provider.js.map +1 -0
- package/lib/runtime-parameter/runtime-parameter-ratchet.d.ts +15 -0
- package/lib/runtime-parameter/runtime-parameter-ratchet.js +72 -0
- package/lib/runtime-parameter/runtime-parameter-ratchet.js.map +1 -0
- package/lib/runtime-parameter/stored-runtime-parameter.d.ts +6 -0
- package/lib/runtime-parameter/stored-runtime-parameter.js +2 -0
- package/lib/runtime-parameter/stored-runtime-parameter.js.map +1 -0
- package/lib/s3/expanded-file-children.d.ts +5 -0
- package/lib/s3/expanded-file-children.js +2 -0
- package/lib/s3/expanded-file-children.js.map +1 -0
- package/lib/s3/impl/s3-environment-service-provider.d.ts +15 -0
- package/lib/s3/impl/s3-environment-service-provider.js +28 -0
- package/lib/s3/impl/s3-environment-service-provider.js.map +1 -0
- package/lib/s3/impl/s3-expiring-code-provider.d.ts +17 -0
- package/lib/s3/impl/s3-expiring-code-provider.js +49 -0
- package/lib/s3/impl/s3-expiring-code-provider.js.map +1 -0
- package/lib/s3/impl/s3-prototype-dao-provider.d.ts +10 -0
- package/lib/s3/impl/s3-prototype-dao-provider.js +27 -0
- package/lib/s3/impl/s3-prototype-dao-provider.js.map +1 -0
- package/lib/s3/impl/s3-storage-provider.d.ts +14 -0
- package/lib/s3/impl/s3-storage-provider.js +44 -0
- package/lib/s3/impl/s3-storage-provider.js.map +1 -0
- package/lib/s3/index.d.ts +9 -0
- package/lib/s3/index.js +10 -0
- package/lib/s3/index.js.map +1 -0
- package/lib/s3/s3-cache-ratchet-like.d.ts +25 -0
- package/lib/s3/s3-cache-ratchet-like.js +2 -0
- package/lib/s3/s3-cache-ratchet-like.js.map +1 -0
- package/lib/s3/s3-cache-ratchet.d.ts +35 -0
- package/lib/s3/s3-cache-ratchet.js +360 -0
- package/lib/s3/s3-cache-ratchet.js.map +1 -0
- package/lib/s3/s3-location-sync-ratchet.d.ts +21 -0
- package/lib/s3/s3-location-sync-ratchet.js +140 -0
- package/lib/s3/s3-location-sync-ratchet.js.map +1 -0
- package/lib/s3/s3-ratchet.d.ts +5 -0
- package/lib/s3/s3-ratchet.js +23 -0
- package/lib/s3/s3-ratchet.js.map +1 -0
- package/lib/ses/index.d.ts +1 -0
- package/lib/ses/index.js +2 -0
- package/lib/ses/index.js.map +1 -0
- package/lib/ses/ses-mail-sending-provider.d.ts +15 -0
- package/lib/ses/ses-mail-sending-provider.js +68 -0
- package/lib/ses/ses-mail-sending-provider.js.map +1 -0
- package/lib/sns/index.d.ts +1 -0
- package/lib/sns/index.js +2 -0
- package/lib/sns/index.js.map +1 -0
- package/lib/sns/sns-ratchet.d.ts +9 -0
- package/lib/sns/sns-ratchet.js +49 -0
- package/lib/sns/sns-ratchet.js.map +1 -0
- package/lib/sync-lock/index.d.ts +2 -0
- package/lib/sync-lock/index.js +3 -0
- package/lib/sync-lock/index.js.map +1 -0
- package/lib/sync-lock/memory-sync-lock.d.ts +8 -0
- package/lib/sync-lock/memory-sync-lock.js +36 -0
- package/lib/sync-lock/memory-sync-lock.js.map +1 -0
- package/lib/sync-lock/sync-lock-provider.d.ts +5 -0
- package/lib/sync-lock/sync-lock-provider.js +2 -0
- package/lib/sync-lock/sync-lock-provider.js.map +1 -0
- package/package.json +55 -56
- package/lib/index.mjs +0 -2
- package/lib/types.d.ts +0 -818
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { SubmitJobCommandOutput } from '@aws-sdk/client-batch';
|
|
2
|
+
import { AwsBatchRatchet } from './aws-batch-ratchet.js';
|
|
3
|
+
export declare class AwsBatchBackgroundProcessor {
|
|
4
|
+
private batchRatchet;
|
|
5
|
+
private validTaskNames?;
|
|
6
|
+
constructor(batchRatchet: AwsBatchRatchet, validTaskNames?: string[]);
|
|
7
|
+
scheduleBackgroundTask(taskName: string, data?: Record<string, any>, meta?: Record<string, any>): Promise<SubmitJobCommandOutput>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { DateTime } from 'luxon';
|
|
2
|
+
import { RequireRatchet } from '@bitblit/ratchet-common/lang/require-ratchet';
|
|
3
|
+
import { StringRatchet } from '@bitblit/ratchet-common/lang/string-ratchet';
|
|
4
|
+
import { ErrorRatchet } from '@bitblit/ratchet-common/lang/error-ratchet';
|
|
5
|
+
import { Logger } from '@bitblit/ratchet-common/logger/logger';
|
|
6
|
+
export class AwsBatchBackgroundProcessor {
|
|
7
|
+
batchRatchet;
|
|
8
|
+
validTaskNames;
|
|
9
|
+
constructor(batchRatchet, validTaskNames) {
|
|
10
|
+
this.batchRatchet = batchRatchet;
|
|
11
|
+
this.validTaskNames = validTaskNames;
|
|
12
|
+
RequireRatchet.notNullOrUndefined(this.batchRatchet, 'batchRatchet');
|
|
13
|
+
RequireRatchet.notNullOrUndefined(this.batchRatchet.batchClient, 'batchRatchet.batchClient');
|
|
14
|
+
RequireRatchet.notNullOrUndefined(this.batchRatchet.defaultJobDefinition, 'batchRatchet.defaultJobDefinition');
|
|
15
|
+
RequireRatchet.notNullOrUndefined(this.batchRatchet.defaultQueueName, 'batchRatchet.defaultQueueName');
|
|
16
|
+
}
|
|
17
|
+
async scheduleBackgroundTask(taskName, data = {}, meta = {}) {
|
|
18
|
+
if (this.validTaskNames &&
|
|
19
|
+
this.validTaskNames.length &&
|
|
20
|
+
(!StringRatchet.trimToNull(taskName) || !this.validTaskNames.includes(taskName))) {
|
|
21
|
+
ErrorRatchet.throwFormattedErr('Cannot start task %s - not found in valid task list', taskName);
|
|
22
|
+
}
|
|
23
|
+
Logger.info('Submitting background task to AWS batch: %s %j %s', taskName, data, this.batchRatchet.defaultQueueName);
|
|
24
|
+
let rval = null;
|
|
25
|
+
const jobName = `${this.batchRatchet.defaultJobDefinition}-${taskName}_${DateTime.utc().toFormat('yyyy-MM-dd-HH-mm')}`;
|
|
26
|
+
const options = {
|
|
27
|
+
jobName: jobName,
|
|
28
|
+
jobDefinition: this.batchRatchet.defaultJobDefinition,
|
|
29
|
+
jobQueue: this.batchRatchet.defaultQueueName,
|
|
30
|
+
parameters: {
|
|
31
|
+
taskName,
|
|
32
|
+
taskData: JSON.stringify(data),
|
|
33
|
+
taskMetadata: JSON.stringify(meta),
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
try {
|
|
37
|
+
rval = await this.batchRatchet.scheduleJob(options);
|
|
38
|
+
Logger.info('Job %s(%s) submitted', rval.jobName, rval.jobId);
|
|
39
|
+
}
|
|
40
|
+
catch (err) {
|
|
41
|
+
Logger.error('Cannot submit batch job taskName: %s jobDef: %s queue: %s jobName: %s data: %j', taskName, this.batchRatchet.defaultJobDefinition, this.batchRatchet.defaultQueueName, jobName, data, err);
|
|
42
|
+
}
|
|
43
|
+
return rval;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=aws-batch-background-processor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aws-batch-background-processor.js","sourceRoot":"","sources":["../../src/batch/aws-batch-background-processor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAM/D,MAAM,OAAO,2BAA2B;IAE5B;IACA;IAFV,YACU,YAA6B,EAC7B,cAAyB;QADzB,iBAAY,GAAZ,YAAY,CAAiB;QAC7B,mBAAc,GAAd,cAAc,CAAW;QAEjC,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;QACrE,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,0BAA0B,CAAC,CAAC;QAC7F,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,oBAAoB,EAAE,mCAAmC,CAAC,CAAC;QAC/G,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,+BAA+B,CAAC,CAAC;IACzG,CAAC;IAEM,KAAK,CAAC,sBAAsB,CACjC,QAAgB,EAChB,OAA4B,EAAE,EAC9B,OAA4B,EAAE;QAE9B,IACE,IAAI,CAAC,cAAc;YACnB,IAAI,CAAC,cAAc,CAAC,MAAM;YAC1B,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAChF,CAAC;YACD,YAAY,CAAC,iBAAiB,CAAC,qDAAqD,EAAE,QAAQ,CAAC,CAAC;QAClG,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,mDAAmD,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;QAErH,IAAI,IAAI,GAA2B,IAAI,CAAC;QAExC,MAAM,OAAO,GAAW,GAAG,IAAI,CAAC,YAAY,CAAC,oBAAoB,IAAI,QAAQ,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAE/H,MAAM,OAAO,GAA0B;YACrC,OAAO,EAAE,OAAO;YAChB,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC,oBAAoB;YACrD,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,gBAAgB;YAC5C,UAAU,EAAE;gBACV,QAAQ;gBACR,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAC9B,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;aACnC;SACF,CAAC;QAEF,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACpD,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CACV,gFAAgF,EAChF,QAAQ,EACR,IAAI,CAAC,YAAY,CAAC,oBAAoB,EACtC,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAClC,OAAO,EACP,IAAI,EACJ,GAAG,CACJ,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { BatchClient, JobStatus, JobSummary, SubmitJobCommandInput, SubmitJobCommandOutput } from '@aws-sdk/client-batch';
|
|
2
|
+
export declare class AwsBatchRatchet {
|
|
3
|
+
private _batchClient;
|
|
4
|
+
private _defaultQueueName?;
|
|
5
|
+
private _defaultJobDefinition?;
|
|
6
|
+
constructor(_batchClient: BatchClient, _defaultQueueName?: string, _defaultJobDefinition?: string);
|
|
7
|
+
get batchClient(): BatchClient;
|
|
8
|
+
get defaultQueueName(): string;
|
|
9
|
+
get defaultJobDefinition(): string;
|
|
10
|
+
scheduleJob(options: SubmitJobCommandInput): Promise<SubmitJobCommandOutput>;
|
|
11
|
+
jobCountInState(jobStatus: JobStatus, queueName?: string): Promise<number>;
|
|
12
|
+
listJobs(queueName?: string, jobStatus?: JobStatus): Promise<JobSummary[]>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { ListJobsCommand, SubmitJobCommand, } from '@aws-sdk/client-batch';
|
|
2
|
+
import { Logger } from '@bitblit/ratchet-common/logger/logger';
|
|
3
|
+
import { RequireRatchet } from '@bitblit/ratchet-common/lang/require-ratchet';
|
|
4
|
+
export class AwsBatchRatchet {
|
|
5
|
+
_batchClient;
|
|
6
|
+
_defaultQueueName;
|
|
7
|
+
_defaultJobDefinition;
|
|
8
|
+
constructor(_batchClient, _defaultQueueName, _defaultJobDefinition) {
|
|
9
|
+
this._batchClient = _batchClient;
|
|
10
|
+
this._defaultQueueName = _defaultQueueName;
|
|
11
|
+
this._defaultJobDefinition = _defaultJobDefinition;
|
|
12
|
+
}
|
|
13
|
+
get batchClient() {
|
|
14
|
+
return this._batchClient;
|
|
15
|
+
}
|
|
16
|
+
get defaultQueueName() {
|
|
17
|
+
return this._defaultQueueName;
|
|
18
|
+
}
|
|
19
|
+
get defaultJobDefinition() {
|
|
20
|
+
return this._defaultJobDefinition;
|
|
21
|
+
}
|
|
22
|
+
async scheduleJob(options) {
|
|
23
|
+
Logger.info('Submitting batch job %s', options.jobName);
|
|
24
|
+
try {
|
|
25
|
+
const rval = await this._batchClient.send(new SubmitJobCommand(options));
|
|
26
|
+
Logger.info('Job %s(%s) submitted', rval.jobName, rval.jobId);
|
|
27
|
+
return rval;
|
|
28
|
+
}
|
|
29
|
+
catch (err) {
|
|
30
|
+
Logger.error('Cannot submit batch job %s: %s', options.jobName, err);
|
|
31
|
+
}
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
async jobCountInState(jobStatus, queueName = this.defaultQueueName) {
|
|
35
|
+
const all = await this.listJobs(queueName, jobStatus);
|
|
36
|
+
return all.length;
|
|
37
|
+
}
|
|
38
|
+
async listJobs(queueName = this.defaultQueueName, jobStatus = null) {
|
|
39
|
+
RequireRatchet.notNullOrUndefined(queueName, 'queueName');
|
|
40
|
+
let rval = [];
|
|
41
|
+
const request = {
|
|
42
|
+
jobQueue: queueName,
|
|
43
|
+
jobStatus: jobStatus,
|
|
44
|
+
nextToken: null,
|
|
45
|
+
};
|
|
46
|
+
Logger.info('Fetching %j', request);
|
|
47
|
+
do {
|
|
48
|
+
Logger.info('Pulling page...');
|
|
49
|
+
const tmp = await this._batchClient.send(new ListJobsCommand(request));
|
|
50
|
+
rval = rval.concat(tmp.jobSummaryList);
|
|
51
|
+
request.nextToken = tmp.nextToken;
|
|
52
|
+
} while (request.nextToken);
|
|
53
|
+
return rval;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=aws-batch-ratchet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aws-batch-ratchet.js","sourceRoot":"","sources":["../../src/batch/aws-batch-ratchet.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,eAAe,EAGf,gBAAgB,GAGjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAK9E,MAAM,OAAO,eAAe;IAEhB;IACA;IACA;IAHV,YACU,YAAyB,EACzB,iBAA0B,EAC1B,qBAA8B;QAF9B,iBAAY,GAAZ,YAAY,CAAa;QACzB,sBAAiB,GAAjB,iBAAiB,CAAS;QAC1B,0BAAqB,GAArB,qBAAqB,CAAS;IACrC,CAAC;IAEJ,IAAW,WAAW;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IACD,IAAW,gBAAgB;QACzB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IACD,IAAW,oBAAoB;QAC7B,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACpC,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,OAA8B;QACrD,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACxD,IAAI,CAAC;YACH,MAAM,IAAI,GAA2B,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;YACjG,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9D,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,SAAoB,EAAE,YAAoB,IAAI,CAAC,gBAAgB;QAC1F,MAAM,GAAG,GAAiB,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACpE,OAAO,GAAG,CAAC,MAAM,CAAC;IACpB,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,YAAoB,IAAI,CAAC,gBAAgB,EAAE,YAAuB,IAAI;QAC1F,cAAc,CAAC,kBAAkB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAC1D,IAAI,IAAI,GAAiB,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAyB;YACpC,QAAQ,EAAE,SAAS;YACnB,SAAS,EAAE,SAAS;YACpB,SAAS,EAAE,IAAI;SAChB,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACpC,GAAG,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC/B,MAAM,GAAG,GAA0B,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;YAC9F,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YACvC,OAAO,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;QACpC,CAAC,QAAQ,OAAO,CAAC,SAAS,EAAE;QAE5B,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/batch/index.ts"],"names":[],"mappings":"AAIA,cAAc,qCAAqC,CAAC;AACpD,cAAc,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ratchet-aws-info.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/build/index.ts"],"names":[],"mappings":"AAIA,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export class RatchetAwsInfo {
|
|
2
|
+
constructor() { }
|
|
3
|
+
static buildInformation() {
|
|
4
|
+
const val = {
|
|
5
|
+
version: 'LOCAL-SNAPSHOT',
|
|
6
|
+
hash: 'LOCAL-HASH',
|
|
7
|
+
branch: 'LOCAL-BRANCH',
|
|
8
|
+
tag: 'LOCAL-TAG',
|
|
9
|
+
timeBuiltISO: 'LOCAL-TIME-ISO',
|
|
10
|
+
notes: 'LOCAL-NOTES',
|
|
11
|
+
};
|
|
12
|
+
return val;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=ratchet-aws-info.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ratchet-aws-info.js","sourceRoot":"","sources":["../../src/build/ratchet-aws-info.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,cAAc;IAGzB,gBAAuB,CAAC;IAEjB,MAAM,CAAC,gBAAgB;QAC5B,MAAM,GAAG,GAAqB;YAC5B,OAAO,EAAE,gBAAgB;YACzB,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE,cAAc;YACtB,GAAG,EAAE,WAAW;YAChB,YAAY,EAAE,gBAAgB;YAC9B,KAAK,EAAE,aAAa;SACrB,CAAC;QACF,OAAO,GAAG,CAAC;IACb,CAAC;CACF"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from './memory-storage-provider.js';
|
|
2
|
+
export * from './simple-cache-object-wrapper.js';
|
|
3
|
+
export * from './simple-cache-read-options.js';
|
|
4
|
+
export * from './simple-cache-storage-provider.js';
|
|
5
|
+
export * from './simple-cache.js';
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":"AAIA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oCAAoC,CAAC;AACnD,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { SimpleCacheObjectWrapper } from './simple-cache-object-wrapper.js';
|
|
2
|
+
import { SimpleCacheStorageProvider } from './simple-cache-storage-provider.js';
|
|
3
|
+
export declare class MemoryStorageProvider implements SimpleCacheStorageProvider {
|
|
4
|
+
private _cache;
|
|
5
|
+
readFromCache<T>(cacheKey: string): Promise<SimpleCacheObjectWrapper<T>>;
|
|
6
|
+
storeInCache<T>(value: SimpleCacheObjectWrapper<T>): Promise<boolean>;
|
|
7
|
+
removeFromCache(cacheKey: string): Promise<void>;
|
|
8
|
+
clearCache(): Promise<number>;
|
|
9
|
+
readAll(): Promise<SimpleCacheObjectWrapper<any>[]>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export class MemoryStorageProvider {
|
|
2
|
+
_cache = new Map();
|
|
3
|
+
async readFromCache(cacheKey) {
|
|
4
|
+
return this._cache.get(cacheKey);
|
|
5
|
+
}
|
|
6
|
+
async storeInCache(value) {
|
|
7
|
+
let rval = false;
|
|
8
|
+
if (value?.cacheKey) {
|
|
9
|
+
this._cache.set(value.cacheKey, value);
|
|
10
|
+
rval = true;
|
|
11
|
+
}
|
|
12
|
+
return rval;
|
|
13
|
+
}
|
|
14
|
+
async removeFromCache(cacheKey) {
|
|
15
|
+
if (cacheKey) {
|
|
16
|
+
this._cache.delete(cacheKey);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
async clearCache() {
|
|
20
|
+
const rval = this._cache.size;
|
|
21
|
+
this._cache = new Map();
|
|
22
|
+
return rval;
|
|
23
|
+
}
|
|
24
|
+
async readAll() {
|
|
25
|
+
return Array.from(this._cache.values());
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=memory-storage-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-storage-provider.js","sourceRoot":"","sources":["../../src/cache/memory-storage-provider.ts"],"names":[],"mappings":"AAOA,MAAM,OAAO,qBAAqB;IACxB,MAAM,GAA+C,IAAI,GAAG,EAAyC,CAAC;IAEvG,KAAK,CAAC,aAAa,CAAI,QAAgB;QAC5C,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAEM,KAAK,CAAC,YAAY,CAAI,KAAkC;QAC7D,IAAI,IAAI,GAAY,KAAK,CAAC;QAC1B,IAAI,KAAK,EAAE,QAAQ,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACvC,IAAI,GAAG,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,QAAgB;QAC3C,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,UAAU;QACrB,MAAM,IAAI,GAAW,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,EAAyC,CAAC;QAC/D,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simple-cache-object-wrapper.js","sourceRoot":"","sources":["../../src/cache/simple-cache-object-wrapper.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simple-cache-read-options.js","sourceRoot":"","sources":["../../src/cache/simple-cache-read-options.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { SimpleCacheObjectWrapper } from './simple-cache-object-wrapper.js';
|
|
2
|
+
export interface SimpleCacheStorageProvider {
|
|
3
|
+
readFromCache<T>(cacheKey: string): Promise<SimpleCacheObjectWrapper<T>>;
|
|
4
|
+
storeInCache<T>(value: SimpleCacheObjectWrapper<T>): Promise<boolean>;
|
|
5
|
+
removeFromCache(cacheKey: string): Promise<void>;
|
|
6
|
+
clearCache(): Promise<number>;
|
|
7
|
+
readAll(): Promise<SimpleCacheObjectWrapper<any>[]>;
|
|
8
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simple-cache-storage-provider.js","sourceRoot":"","sources":["../../src/cache/simple-cache-storage-provider.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { SimpleCacheStorageProvider } from './simple-cache-storage-provider.js';
|
|
2
|
+
import { SimpleCacheObjectWrapper } from './simple-cache-object-wrapper.js';
|
|
3
|
+
import { SimpleCacheReadOptions } from './simple-cache-read-options.js';
|
|
4
|
+
export declare class SimpleCache {
|
|
5
|
+
private provider;
|
|
6
|
+
private defaultTimeToLiveMS;
|
|
7
|
+
constructor(provider: SimpleCacheStorageProvider, defaultTimeToLiveMS?: number);
|
|
8
|
+
createDefaultReadOptions(): SimpleCacheReadOptions;
|
|
9
|
+
fetchWrapper<T>(cacheKey: string, producer: () => Promise<T>, opts?: SimpleCacheReadOptions): Promise<SimpleCacheObjectWrapper<T>>;
|
|
10
|
+
fetch<T>(cacheKey: string, producer: () => Promise<T>, opts?: SimpleCacheReadOptions): Promise<T>;
|
|
11
|
+
removeFromCache<T>(cacheKey: string, returnOldValue?: boolean): Promise<SimpleCacheObjectWrapper<T>>;
|
|
12
|
+
clearCache(): Promise<number>;
|
|
13
|
+
readAll(): Promise<SimpleCacheObjectWrapper<any>[]>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { Logger } from '@bitblit/ratchet-common/logger/logger';
|
|
2
|
+
export class SimpleCache {
|
|
3
|
+
provider;
|
|
4
|
+
defaultTimeToLiveMS;
|
|
5
|
+
constructor(provider, defaultTimeToLiveMS = 1_000 * 60) {
|
|
6
|
+
this.provider = provider;
|
|
7
|
+
this.defaultTimeToLiveMS = defaultTimeToLiveMS;
|
|
8
|
+
}
|
|
9
|
+
createDefaultReadOptions() {
|
|
10
|
+
return {
|
|
11
|
+
maxStalenessMS: null,
|
|
12
|
+
timeToLiveMS: this.defaultTimeToLiveMS,
|
|
13
|
+
cacheNullValues: false,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
async fetchWrapper(cacheKey, producer, opts = this.createDefaultReadOptions()) {
|
|
17
|
+
Logger.silly('Fetching %s', cacheKey);
|
|
18
|
+
const now = new Date().getTime();
|
|
19
|
+
let rval = await this.provider.readFromCache(cacheKey);
|
|
20
|
+
if (rval && rval.expiresEpochMS < now) {
|
|
21
|
+
Logger.debug('Object found, but expired - removing');
|
|
22
|
+
rval = null;
|
|
23
|
+
}
|
|
24
|
+
if (rval && opts && opts.maxStalenessMS && now - rval.createdEpochMS > opts.maxStalenessMS) {
|
|
25
|
+
Logger.debug('Object found by too stale - removing');
|
|
26
|
+
rval = null;
|
|
27
|
+
}
|
|
28
|
+
if (!rval) {
|
|
29
|
+
Logger.debug('%s not found in cache, generating', cacheKey);
|
|
30
|
+
const tmp = await producer();
|
|
31
|
+
if (tmp || opts?.cacheNullValues) {
|
|
32
|
+
Logger.debug('Writing %j to cache');
|
|
33
|
+
rval = {
|
|
34
|
+
cacheKey: cacheKey,
|
|
35
|
+
createdEpochMS: now,
|
|
36
|
+
expiresEpochMS: opts && opts.timeToLiveMS ? now + opts.timeToLiveMS : null,
|
|
37
|
+
value: tmp,
|
|
38
|
+
generated: false,
|
|
39
|
+
};
|
|
40
|
+
await this.provider.storeInCache(rval);
|
|
41
|
+
rval.generated = true;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return rval;
|
|
45
|
+
}
|
|
46
|
+
async fetch(cacheKey, producer, opts = null) {
|
|
47
|
+
const wrapper = await this.fetchWrapper(cacheKey, producer, opts);
|
|
48
|
+
return wrapper ? wrapper.value : null;
|
|
49
|
+
}
|
|
50
|
+
async removeFromCache(cacheKey, returnOldValue) {
|
|
51
|
+
let rval = null;
|
|
52
|
+
if (returnOldValue) {
|
|
53
|
+
rval = await this.fetchWrapper(cacheKey, () => null);
|
|
54
|
+
}
|
|
55
|
+
await this.provider.removeFromCache(cacheKey);
|
|
56
|
+
return rval;
|
|
57
|
+
}
|
|
58
|
+
async clearCache() {
|
|
59
|
+
return this.provider.clearCache();
|
|
60
|
+
}
|
|
61
|
+
async readAll() {
|
|
62
|
+
return this.provider.readAll();
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=simple-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simple-cache.js","sourceRoot":"","sources":["../../src/cache/simple-cache.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAK/D,MAAM,OAAO,WAAW;IAGZ;IACA;IAFV,YACU,QAAoC,EACpC,sBAA8B,KAAK,GAAG,EAAE;QADxC,aAAQ,GAAR,QAAQ,CAA4B;QACpC,wBAAmB,GAAnB,mBAAmB,CAAqB;IAC/C,CAAC;IAEG,wBAAwB;QAC7B,OAAO;YACL,cAAc,EAAE,IAAI;YACpB,YAAY,EAAE,IAAI,CAAC,mBAAmB;YACtC,eAAe,EAAE,KAAK;SACvB,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,YAAY,CACvB,QAAgB,EAChB,QAA0B,EAC1B,OAA+B,IAAI,CAAC,wBAAwB,EAAE;QAE9D,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QACtC,MAAM,GAAG,GAAW,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QACzC,IAAI,IAAI,GAAgC,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACpF,IAAI,IAAI,IAAI,IAAI,CAAC,cAAc,GAAG,GAAG,EAAE,CAAC;YACtC,MAAM,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;YACrD,IAAI,GAAG,IAAI,CAAC;QACd,CAAC;QACD,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,cAAc,IAAI,GAAG,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YAC3F,MAAM,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;YACrD,IAAI,GAAG,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE,QAAQ,CAAC,CAAC;YAC5D,MAAM,GAAG,GAAM,MAAM,QAAQ,EAAE,CAAC;YAChC,IAAI,GAAG,IAAI,IAAI,EAAE,eAAe,EAAE,CAAC;gBACjC,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;gBACpC,IAAI,GAAG;oBACL,QAAQ,EAAE,QAAQ;oBAClB,cAAc,EAAE,GAAG;oBACnB,cAAc,EAAE,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI;oBAC1E,KAAK,EAAE,GAAG;oBACV,SAAS,EAAE,KAAK;iBACjB,CAAC;gBACF,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gBACvC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACxB,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,KAAK,CAAI,QAAgB,EAAE,QAA0B,EAAE,OAA+B,IAAI;QACrG,MAAM,OAAO,GAAgC,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC/F,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IACxC,CAAC;IAEM,KAAK,CAAC,eAAe,CAAI,QAAgB,EAAE,cAAwB;QACxE,IAAI,IAAI,GAAgC,IAAI,CAAC;QAC7C,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACvD,CAAC;QACD,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,UAAU;QACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;IACpC,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC;CACF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { CloudWatchLogsClient, FilteredLogEvent, LogStream } from '@aws-sdk/client-cloudwatch-logs';
|
|
2
|
+
export declare class CloudWatchLogGroupRatchet {
|
|
3
|
+
private logGroup;
|
|
4
|
+
private awsCWLogs;
|
|
5
|
+
constructor(logGroup: string, awsCWLogs?: CloudWatchLogsClient);
|
|
6
|
+
get cloudWatchLogsClient(): CloudWatchLogsClient;
|
|
7
|
+
readLogStreams(startTimestamp?: number, endTimestamp?: number): Promise<LogStream[]>;
|
|
8
|
+
readLogStreamNames(startTimestamp?: number, endTimestamp?: number): Promise<string[]>;
|
|
9
|
+
readEvents(filter: string, startTimestamp?: number, endTimestamp?: number, sortEvents?: boolean, maxEvents?: number): Promise<FilteredLogEvent[]>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { CloudWatchLogsClient, DescribeLogStreamsCommand, FilterLogEventsCommand, } from '@aws-sdk/client-cloudwatch-logs';
|
|
2
|
+
import { Logger } from '@bitblit/ratchet-common/logger/logger';
|
|
3
|
+
import { StopWatch } from '@bitblit/ratchet-common/lang/stop-watch';
|
|
4
|
+
export class CloudWatchLogGroupRatchet {
|
|
5
|
+
logGroup;
|
|
6
|
+
awsCWLogs;
|
|
7
|
+
constructor(logGroup, awsCWLogs = new CloudWatchLogsClient({ region: 'us-east-1' })) {
|
|
8
|
+
this.logGroup = logGroup;
|
|
9
|
+
this.awsCWLogs = awsCWLogs;
|
|
10
|
+
}
|
|
11
|
+
get cloudWatchLogsClient() {
|
|
12
|
+
return this.awsCWLogs;
|
|
13
|
+
}
|
|
14
|
+
async readLogStreams(startTimestamp = null, endTimestamp = null) {
|
|
15
|
+
const params = {
|
|
16
|
+
logGroupName: this.logGroup,
|
|
17
|
+
orderBy: 'LastEventTime',
|
|
18
|
+
};
|
|
19
|
+
const rval = [];
|
|
20
|
+
do {
|
|
21
|
+
Logger.debug('Pulling more log streams (%d found so far)', rval.length);
|
|
22
|
+
const temp = await this.awsCWLogs.send(new DescribeLogStreamsCommand(params));
|
|
23
|
+
temp.logStreams.forEach((s) => {
|
|
24
|
+
if (s.lastEventTimestamp !== null) {
|
|
25
|
+
if (!startTimestamp || s.lastEventTimestamp >= startTimestamp) {
|
|
26
|
+
if (!endTimestamp || s.firstEventTimestamp <= endTimestamp) {
|
|
27
|
+
rval.push(s);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
params.nextToken = temp.nextToken;
|
|
33
|
+
} while (params.nextToken);
|
|
34
|
+
Logger.debug('Found %d total, returning', rval.length);
|
|
35
|
+
return rval;
|
|
36
|
+
}
|
|
37
|
+
async readLogStreamNames(startTimestamp = null, endTimestamp = null) {
|
|
38
|
+
const streams = await this.readLogStreams(startTimestamp, endTimestamp);
|
|
39
|
+
const rval = streams.map((s) => s.logStreamName);
|
|
40
|
+
return rval;
|
|
41
|
+
}
|
|
42
|
+
async readEvents(filter, startTimestamp = null, endTimestamp = null, sortEvents = true, maxEvents = null) {
|
|
43
|
+
const sw = new StopWatch();
|
|
44
|
+
const params = {
|
|
45
|
+
logGroupName: this.logGroup,
|
|
46
|
+
endTime: endTimestamp,
|
|
47
|
+
startTime: startTimestamp,
|
|
48
|
+
};
|
|
49
|
+
if (filter) {
|
|
50
|
+
params.filterPattern = filter;
|
|
51
|
+
}
|
|
52
|
+
Logger.debug('Reading log events matching : %j', params);
|
|
53
|
+
let rval = [];
|
|
54
|
+
do {
|
|
55
|
+
Logger.debug('Pulling more log events (%d found so far) : %s', rval.length, sw.dump());
|
|
56
|
+
const temp = await this.awsCWLogs.send(new FilterLogEventsCommand(params));
|
|
57
|
+
rval = rval.concat(temp.events);
|
|
58
|
+
params.nextToken = temp.nextToken;
|
|
59
|
+
} while (!!params.nextToken && (!maxEvents || rval.length < maxEvents));
|
|
60
|
+
Logger.debug('Found %d total in %s', rval.length, sw.dump());
|
|
61
|
+
if (sortEvents) {
|
|
62
|
+
Logger.debug('Sorting events by timestamp');
|
|
63
|
+
rval = rval.sort((a, b) => {
|
|
64
|
+
let rval = a.timestamp - b.timestamp;
|
|
65
|
+
if (rval === 0) {
|
|
66
|
+
rval = a.message.localeCompare(b.message);
|
|
67
|
+
}
|
|
68
|
+
return rval;
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
sw.log();
|
|
72
|
+
return rval;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=cloud-watch-log-group-ratchet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloud-watch-log-group-ratchet.js","sourceRoot":"","sources":["../../src/cloudwatch/cloud-watch-log-group-ratchet.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { CloudWatchLogsClient, GetQueryResultsCommandOutput, LogGroup, LogStream, StartQueryCommandInput, StopQueryCommandOutput } from '@aws-sdk/client-cloudwatch-logs';
|
|
2
|
+
export declare class CloudWatchLogsRatchet {
|
|
3
|
+
private static readonly MAX_DELETE_RETRIES;
|
|
4
|
+
private cwLogs;
|
|
5
|
+
constructor(cloudwatchLogs?: CloudWatchLogsClient);
|
|
6
|
+
get cloudWatchLogsClient(): CloudWatchLogsClient;
|
|
7
|
+
removeEmptyOrOldLogStreams(logGroupName: string, maxToRemove?: number, oldestEventEpochMS?: number): Promise<LogStream[]>;
|
|
8
|
+
findOldestEventTimestampInGroup(logGroupName: string): Promise<number>;
|
|
9
|
+
findStreamWithOldestEventInGroup(logGroupName: string): Promise<LogStream>;
|
|
10
|
+
findLogGroups(prefix: string): Promise<LogGroup[]>;
|
|
11
|
+
removeLogGroups(groups: LogGroup[]): Promise<boolean[]>;
|
|
12
|
+
removeLogGroupsWithPrefix(prefix: string): Promise<boolean[]>;
|
|
13
|
+
fullyExecuteInsightsQuery(sqr: StartQueryCommandInput): Promise<GetQueryResultsCommandOutput>;
|
|
14
|
+
abortInsightsQuery(queryId: string): Promise<StopQueryCommandOutput>;
|
|
15
|
+
}
|