@exabugs/dynamodb-client 1.11.4 → 1.13.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.
- package/CHANGELOG.md +18 -0
- package/dist/integrations/react-admin/components/CloudWatchLog/CloudWatchLogButton.d.ts +14 -0
- package/dist/integrations/react-admin/components/CloudWatchLog/CloudWatchLogButton.d.ts.map +1 -0
- package/dist/integrations/react-admin/components/CloudWatchLog/CloudWatchLogButton.js +17 -0
- package/dist/integrations/react-admin/components/CloudWatchLog/CloudWatchLogButton.js.map +1 -0
- package/dist/integrations/react-admin/components/CloudWatchLog/cloudWatchLogUrl.d.ts +32 -0
- package/dist/integrations/react-admin/components/CloudWatchLog/cloudWatchLogUrl.d.ts.map +1 -0
- package/dist/integrations/react-admin/components/CloudWatchLog/cloudWatchLogUrl.js +63 -0
- package/dist/integrations/react-admin/components/CloudWatchLog/cloudWatchLogUrl.js.map +1 -0
- package/dist/integrations/react-admin/components/CloudWatchLog/index.d.ts +5 -0
- package/dist/integrations/react-admin/components/CloudWatchLog/index.d.ts.map +1 -0
- package/dist/integrations/react-admin/components/CloudWatchLog/index.js +3 -0
- package/dist/integrations/react-admin/components/CloudWatchLog/index.js.map +1 -0
- package/dist/integrations/react-admin/components/index.d.ts +3 -1
- package/dist/integrations/react-admin/components/index.d.ts.map +1 -1
- package/dist/integrations/react-admin/components/index.js +2 -1
- package/dist/integrations/react-admin/components/index.js.map +1 -1
- package/dist/integrations/react-admin/index.d.ts +2 -0
- package/dist/integrations/react-admin/index.d.ts.map +1 -1
- package/dist/integrations/react-admin/index.js +1 -0
- package/dist/integrations/react-admin/index.js.map +1 -1
- package/dist/notify/alerts.d.ts +145 -0
- package/dist/notify/alerts.d.ts.map +1 -0
- package/dist/notify/alerts.js +152 -0
- package/dist/notify/alerts.js.map +1 -0
- package/dist/notify/format.d.ts.map +1 -1
- package/dist/notify/format.js +2 -0
- package/dist/notify/format.js.map +1 -1
- package/dist/notify/handler.d.ts +63 -0
- package/dist/notify/handler.d.ts.map +1 -1
- package/dist/notify/handler.js +205 -3
- package/dist/notify/handler.js.map +1 -1
- package/dist/notify/index.d.ts +7 -3
- package/dist/notify/index.d.ts.map +1 -1
- package/dist/notify/index.js +3 -2
- package/dist/notify/index.js.map +1 -1
- package/dist/notify/logger.d.ts +25 -0
- package/dist/notify/logger.d.ts.map +1 -1
- package/dist/notify/logger.js +76 -0
- package/dist/notify/logger.js.map +1 -1
- package/dist/notify/normalize.d.ts +12 -1
- package/dist/notify/normalize.d.ts.map +1 -1
- package/dist/notify/normalize.js +82 -15
- package/dist/notify/normalize.js.map +1 -1
- package/dist/notify/store.d.ts +17 -3
- package/dist/notify/store.d.ts.map +1 -1
- package/dist/notify/store.js +87 -0
- package/dist/notify/store.js.map +1 -1
- package/dist/notify/types.d.ts +47 -0
- package/dist/notify/types.d.ts.map +1 -1
- package/dist/server/handler.cjs +3 -3
- package/dist/server/media-handler.cjs +2 -2
- package/dist/server/media-process-handler-dlq.cjs +2 -2
- package/dist/server/media-process-handler.cjs +2 -2
- package/dist/sharp-layer.zip +0 -0
- package/docs/NOTIFY.md +110 -2
- package/package.json +1 -1
package/dist/notify/normalize.js
CHANGED
|
@@ -4,7 +4,11 @@
|
|
|
4
4
|
* ログ行の形は 3 種類ある。
|
|
5
5
|
* 1. アプリの JSON 1 行: {"level":"warn","message":"…","event":"…"}
|
|
6
6
|
* 2. Lambda のテキスト形式: `時刻<TAB>RequestId<TAB>INFO<TAB>{アプリの JSON}`
|
|
7
|
-
* 3. Lambda の JSON 形式: {"timestamp":…,"level":"INFO","requestId":…,"message"
|
|
7
|
+
* 3. Lambda の JSON 形式: {"timestamp":…,"level":"INFO","requestId":…,"message":…}
|
|
8
|
+
* message は、アプリの JSON 文字列(`console.log(JSON.stringify(obj))`)か、
|
|
9
|
+
* オブジェクトそのもの(`console.log(obj)`。Lambda の Node ランタイムは、引数が 1 つなら、そのまま入れる)。
|
|
10
|
+
* どちらも、アプリのログとして同じに扱う。ただし errorType を持つオブジェクト(Invoke Error など)は、
|
|
11
|
+
* 実行基盤のエラーとして扱う(アプリのログより先に判定する)
|
|
8
12
|
* アプリの JSON が見つかれば、その level とフィールドを優先する(外側の level は Lambda のもので、
|
|
9
13
|
* console.log で出した warn は INFO になる)。
|
|
10
14
|
*/
|
|
@@ -25,7 +29,15 @@ const LAMBDA_FAILURE_LINE = /^(?:\S+\s+[0-9a-fA-F-]{8,}\s+|RequestId: \S+\s+(?:E
|
|
|
25
29
|
const REPORT_FAILURE = /^REPORT RequestId:[\s\S]*\bStatus: (timeout|error|failure)\b/;
|
|
26
30
|
const LAMBDA_FAILURE_LABEL = /^(Invoke Error|Unhandled Promise Rejection|Uncaught Exception)\b/;
|
|
27
31
|
/** `時刻<TAB>RequestId<TAB>LEVEL<TAB>本文`(テキスト形式)。本文と外側の level を分ける */
|
|
28
|
-
const TEXT_PREFIX = /^\S+\t(
|
|
32
|
+
const TEXT_PREFIX = /^\S+\t([0-9a-fA-F-]{8,}|undefined)\t(TRACE|DEBUG|INFO|WARN|ERROR|FATAL)\t([\s\S]*)$/;
|
|
33
|
+
/**
|
|
34
|
+
* 実行基盤の行(`RequestId: …`、`START / END / REPORT RequestId: …`)の RequestId。
|
|
35
|
+
* 行頭だけを見る(アプリの JSON の message の中の `RequestId:` は拾わない)
|
|
36
|
+
*/
|
|
37
|
+
const REQUEST_ID_IN_TEXT = /^(?:(?:START|END|REPORT) )?RequestId: ([0-9a-fA-F-]{8,})/;
|
|
38
|
+
/** RequestId として受け付ける形(ログ参照に入れる。長さと文字を制限する) */
|
|
39
|
+
const REQUEST_ID = /^[0-9A-Za-z-]{8,64}$/;
|
|
40
|
+
const requestIdOf = (v) => typeof v === 'string' && v !== 'undefined' && REQUEST_ID.test(v) ? v : undefined;
|
|
29
41
|
function asObj(text) {
|
|
30
42
|
const t = text.trim();
|
|
31
43
|
if (!t.startsWith('{'))
|
|
@@ -41,12 +53,21 @@ function asObj(text) {
|
|
|
41
53
|
const str = (v) => (typeof v === 'string' ? v : undefined);
|
|
42
54
|
const isAppLog = (o) => typeof o.level === 'string' || typeof o.event === 'string';
|
|
43
55
|
function parseLine(line) {
|
|
56
|
+
const p = parseLineBody(line);
|
|
57
|
+
// Lambda の RequestId だけを使う(テキスト形式の接頭辞 → JSON 形式の外側 → `RequestId:` 行)。
|
|
58
|
+
// 接頭辞の無いアプリの JSON 行の requestId は使わない(Lambda のものとは限らない)
|
|
59
|
+
const requestId = requestIdOf(TEXT_PREFIX.exec(line)?.[1]) ??
|
|
60
|
+
p.requestId ??
|
|
61
|
+
requestIdOf(REQUEST_ID_IN_TEXT.exec(line)?.[1]);
|
|
62
|
+
return requestId ? { ...p, requestId } : p;
|
|
63
|
+
}
|
|
64
|
+
function parseLineBody(line) {
|
|
44
65
|
let body = line;
|
|
45
66
|
let outerLevel;
|
|
46
67
|
const m = TEXT_PREFIX.exec(line);
|
|
47
68
|
if (m) {
|
|
48
|
-
outerLevel = m[
|
|
49
|
-
body = m[
|
|
69
|
+
outerLevel = m[2];
|
|
70
|
+
body = m[3];
|
|
50
71
|
}
|
|
51
72
|
// Invoke Error など: `ラベル<TAB>{json}`
|
|
52
73
|
const tab = body.indexOf('\t{');
|
|
@@ -71,12 +92,13 @@ function parseLine(line) {
|
|
|
71
92
|
/^(TRACE|DEBUG|INFO|WARN|ERROR|FATAL)$/.test(outer.level) &&
|
|
72
93
|
!('event' in outer);
|
|
73
94
|
if (lambdaWrapped) {
|
|
95
|
+
const requestId = requestIdOf(outer.requestId);
|
|
74
96
|
const level = str(outer.level);
|
|
75
97
|
const msg = outer.message;
|
|
76
98
|
// アプリの JSON 文字列が message に入っている
|
|
77
99
|
const inner = typeof msg === 'string' ? asObj(msg) : undefined;
|
|
78
100
|
if (inner && isAppLog(inner))
|
|
79
|
-
return { app: inner, text: '', outerLevel: level };
|
|
101
|
+
return { app: inner, text: '', outerLevel: level, requestId };
|
|
80
102
|
// エラーのオブジェクト(Invoke Error など)
|
|
81
103
|
const errObj = typeof msg === 'object' && msg !== null ? msg : undefined;
|
|
82
104
|
const withType = typeof outer.errorType === 'string'
|
|
@@ -85,10 +107,19 @@ function parseLine(line) {
|
|
|
85
107
|
? errObj
|
|
86
108
|
: undefined;
|
|
87
109
|
if (withType) {
|
|
88
|
-
return {
|
|
110
|
+
return {
|
|
111
|
+
runtime: withType,
|
|
112
|
+
text: typeof msg === 'string' ? msg : '',
|
|
113
|
+
outerLevel: level,
|
|
114
|
+
requestId,
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
// アプリのログのオブジェクトが message に入っている(console.log(obj))。errorType を持つものは上で扱った
|
|
118
|
+
if (errObj && isAppLog(errObj)) {
|
|
119
|
+
return { app: errObj, text: '', outerLevel: level, requestId };
|
|
89
120
|
}
|
|
90
121
|
const text = typeof msg === 'string' ? msg : errObj ? JSON.stringify(errObj) : '';
|
|
91
|
-
return { text, outerLevel: level };
|
|
122
|
+
return { text, outerLevel: level, requestId };
|
|
92
123
|
}
|
|
93
124
|
return { app: outer, text: '', outerLevel };
|
|
94
125
|
}
|
|
@@ -106,9 +137,19 @@ function failure(message, ctx, occurredAt, target) {
|
|
|
106
137
|
}
|
|
107
138
|
/** ログ 1 行 → Notice(通知対象でなければ undefined) */
|
|
108
139
|
export function noticeFromLogLine(line, ctx, at) {
|
|
140
|
+
return parseLogLine(line, ctx, at)?.notice;
|
|
141
|
+
}
|
|
142
|
+
/** ログ 1 行 → Notice と RequestId(ログから取れたとき) */
|
|
143
|
+
function parseLogLine(line, ctx, at) {
|
|
144
|
+
const p = parseLine(line);
|
|
145
|
+
const notice = noticeFromParsed(p, ctx, at);
|
|
146
|
+
if (!notice)
|
|
147
|
+
return undefined;
|
|
148
|
+
return { notice, requestId: p.requestId };
|
|
149
|
+
}
|
|
150
|
+
function noticeFromParsed(p, ctx, at) {
|
|
109
151
|
const t = at !== undefined && Number.isFinite(at) ? new Date(at) : ctx.now();
|
|
110
152
|
const occurredAt = (Number.isNaN(t.getTime()) ? ctx.now() : t).toISOString();
|
|
111
|
-
const p = parseLine(line);
|
|
112
153
|
const outer = p.outerLevel ? levelOf(p.outerLevel) : undefined;
|
|
113
154
|
if (p.platformStatus && /^(timeout|error|failure)$/.test(p.platformStatus)) {
|
|
114
155
|
return failure(`Lambda の実行が失敗しました(status: ${p.platformStatus})`, ctx, occurredAt);
|
|
@@ -168,17 +209,36 @@ export function noticeFromLogLine(line, ctx, at) {
|
|
|
168
209
|
}
|
|
169
210
|
return undefined;
|
|
170
211
|
}
|
|
212
|
+
/** ロググループ・ストリーム名(CloudWatch の上限 512 文字。制御文字を含むものは使わない) */
|
|
213
|
+
const LOG_NAME = /^[^\u0000-\u001f\u007f]{1,512}$/;
|
|
214
|
+
const logName = (v) => typeof v === 'string' && LOG_NAME.test(v) ? v : undefined;
|
|
171
215
|
function fromLogs(event, ctx) {
|
|
172
216
|
const payload = JSON.parse(gunzipSync(Buffer.from(event.awslogs.data, 'base64')).toString('utf8'));
|
|
217
|
+
const logGroup = logName(payload.logGroup);
|
|
218
|
+
const logStream = logName(payload.logStream);
|
|
173
219
|
const out = [];
|
|
174
220
|
for (const e of payload.logEvents ?? []) {
|
|
175
221
|
// 1 行の失敗で、同じバッチの他の行を失わない
|
|
176
222
|
try {
|
|
177
223
|
if (typeof e?.message !== 'string')
|
|
178
224
|
continue;
|
|
179
|
-
const
|
|
180
|
-
if (
|
|
181
|
-
|
|
225
|
+
const r = parseLogLine(e.message, ctx, e.timestamp);
|
|
226
|
+
if (!r)
|
|
227
|
+
continue;
|
|
228
|
+
const log = ctx.region && logGroup && logStream
|
|
229
|
+
? {
|
|
230
|
+
region: ctx.region,
|
|
231
|
+
logGroup,
|
|
232
|
+
logStream,
|
|
233
|
+
timestamp: Date.parse(r.notice.occurredAt),
|
|
234
|
+
...(r.requestId ? { requestId: r.requestId } : {}),
|
|
235
|
+
}
|
|
236
|
+
: undefined;
|
|
237
|
+
out.push({
|
|
238
|
+
notice: r.notice,
|
|
239
|
+
...(log ? { log } : {}),
|
|
240
|
+
...(logGroup ? { logGroup } : {}),
|
|
241
|
+
});
|
|
182
242
|
}
|
|
183
243
|
catch {
|
|
184
244
|
continue;
|
|
@@ -230,16 +290,23 @@ function fromDirect(event, ctx) {
|
|
|
230
290
|
}
|
|
231
291
|
/** どの入力かを判別して Notice[] にする。未知の入力は空配列 */
|
|
232
292
|
export function normalize(event, ctx) {
|
|
293
|
+
return normalizeWithLogs(event, ctx).map((x) => x.notice);
|
|
294
|
+
}
|
|
295
|
+
/** normalize と同じ。ログの購読から来た通知には、ログの所在(LogRef)を添える */
|
|
296
|
+
export function normalizeWithLogs(event, ctx) {
|
|
233
297
|
if (typeof event !== 'object' || event === null)
|
|
234
298
|
return [];
|
|
235
299
|
const e = event;
|
|
236
300
|
if (typeof e.awslogs?.data === 'string') {
|
|
237
301
|
return fromLogs(e, ctx);
|
|
238
302
|
}
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
303
|
+
const wrap = (ns) => ns.map((notice) => ({ notice }));
|
|
304
|
+
if (e['detail-type'] === 'CloudWatch Alarm State Change') {
|
|
305
|
+
return wrap(fromAlarm(e, ctx));
|
|
306
|
+
}
|
|
307
|
+
if (typeof e.notice === 'object' && e.notice !== null) {
|
|
308
|
+
return wrap(fromDirect(e, ctx));
|
|
309
|
+
}
|
|
243
310
|
return [];
|
|
244
311
|
}
|
|
245
312
|
//# sourceMappingURL=normalize.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../src/notify/normalize.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../src/notify/normalize.ts"],"names":[],"mappings":"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"}
|
package/dist/notify/store.d.ts
CHANGED
|
@@ -1,15 +1,28 @@
|
|
|
1
1
|
import { DynamoDBDocumentClient } from '@aws-sdk/lib-dynamodb';
|
|
2
|
-
import type { ClaimResult, NoticeStore } from './types.js';
|
|
3
|
-
export declare class DynamoNoticeStore implements NoticeStore {
|
|
2
|
+
import type { AlertIndex, AlertTouchInput, AlertTouchResult, ClaimResult, NoticeStore } from './types.js';
|
|
3
|
+
export declare class DynamoNoticeStore implements NoticeStore, AlertIndex {
|
|
4
4
|
private readonly doc;
|
|
5
5
|
private readonly tableName;
|
|
6
6
|
constructor(doc: Pick<DynamoDBDocumentClient, 'send'>, tableName: string);
|
|
7
7
|
claim(fingerprint: string, windowSec: number, nowSec: number, count: number): Promise<ClaimResult>;
|
|
8
8
|
release(fingerprint: string, token: number, restore: number): Promise<void>;
|
|
9
9
|
consume(bucket: string, windowSec: number, nowSec: number, n: number): Promise<number>;
|
|
10
|
+
/**
|
|
11
|
+
* alerts の集計(行 `al#<alertKey>`)。UpdateItem だけを使う(GetItem の権限は要らない)。
|
|
12
|
+
* - 通常: 1 回の UpdateItem で、ID の確保(if_not_exists)・件数の加算・期限の延長を原子的に行う
|
|
13
|
+
* - 行が期限切れ(ttl が過去。ネイティブ TTL の削除の遅れで残っている)のときだけ、条件付きで作り直す
|
|
14
|
+
*/
|
|
15
|
+
touchAlert(alertKey: string, input: AlertTouchInput): Promise<AlertTouchResult>;
|
|
10
16
|
}
|
|
11
17
|
/** テスト・ローカル用(1 プロセス内だけ) */
|
|
12
|
-
export declare class MemoryNoticeStore implements NoticeStore {
|
|
18
|
+
export declare class MemoryNoticeStore implements NoticeStore, AlertIndex {
|
|
19
|
+
readonly alerts: Map<string, {
|
|
20
|
+
alertId: string;
|
|
21
|
+
cnt: number;
|
|
22
|
+
firstSeenAt: string;
|
|
23
|
+
lastSeenAt: string;
|
|
24
|
+
ttl: number;
|
|
25
|
+
}>;
|
|
13
26
|
readonly fps: Map<string, {
|
|
14
27
|
expiresAt: number;
|
|
15
28
|
suppressed: number;
|
|
@@ -18,5 +31,6 @@ export declare class MemoryNoticeStore implements NoticeStore {
|
|
|
18
31
|
claim(fingerprint: string, windowSec: number, nowSec: number, count: number): Promise<ClaimResult>;
|
|
19
32
|
release(fingerprint: string, token: number, restore: number): Promise<void>;
|
|
20
33
|
consume(bucket: string, windowSec: number, nowSec: number, n: number): Promise<number>;
|
|
34
|
+
touchAlert(alertKey: string, input: AlertTouchInput): Promise<AlertTouchResult>;
|
|
21
35
|
}
|
|
22
36
|
//# sourceMappingURL=store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/notify/store.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,sBAAsB,EAAiB,MAAM,uBAAuB,CAAC;AAE9E,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/notify/store.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,sBAAsB,EAAiB,MAAM,uBAAuB,CAAC;AAE9E,OAAO,KAAK,EACV,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,WAAW,EACZ,MAAM,YAAY,CAAC;AAIpB,qBAAa,iBAAkB,YAAW,WAAW,EAAE,UAAU;IAE7D,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBADT,GAAG,EAAE,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,EACzC,SAAS,EAAE,MAAM;IAG9B,KAAK,CACT,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,WAAW,CAAC;IAiDjB,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB3E,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAe5F;;;;OAIG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAwDtF;AAcD,2BAA2B;AAC3B,qBAAa,iBAAkB,YAAW,WAAW,EAAE,UAAU;IAC/D,QAAQ,CAAC,MAAM;iBAEF,MAAM;aAAO,MAAM;qBAAe,MAAM;oBAAc,MAAM;aAAO,MAAM;OAClF;IACJ,QAAQ,CAAC,GAAG;mBAAgC,MAAM;oBAAc,MAAM;OAAM;IAC5E,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;IAE9C,KAAK,CACT,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,WAAW,CAAC;IAWjB,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM3E,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAOtF,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAmBtF"}
|
package/dist/notify/store.js
CHANGED
|
@@ -88,9 +88,77 @@ export class DynamoNoticeStore {
|
|
|
88
88
|
}));
|
|
89
89
|
return typeof r.Attributes?.cnt === 'number' ? r.Attributes.cnt : n;
|
|
90
90
|
}
|
|
91
|
+
/**
|
|
92
|
+
* alerts の集計(行 `al#<alertKey>`)。UpdateItem だけを使う(GetItem の権限は要らない)。
|
|
93
|
+
* - 通常: 1 回の UpdateItem で、ID の確保(if_not_exists)・件数の加算・期限の延長を原子的に行う
|
|
94
|
+
* - 行が期限切れ(ttl が過去。ネイティブ TTL の削除の遅れで残っている)のときだけ、条件付きで作り直す
|
|
95
|
+
*/
|
|
96
|
+
async touchAlert(alertKey, input) {
|
|
97
|
+
const pk = `al#${alertKey}`;
|
|
98
|
+
const ttl = input.nowSec + input.keepSec;
|
|
99
|
+
for (let attempt = 0; attempt < 2; attempt++) {
|
|
100
|
+
try {
|
|
101
|
+
const r = await this.doc.send(new UpdateCommand({
|
|
102
|
+
TableName: this.tableName,
|
|
103
|
+
Key: { pk },
|
|
104
|
+
UpdateExpression: 'SET alertId = if_not_exists(alertId, :id), firstSeenAt = if_not_exists(firstSeenAt, :first), lastSeenAt = :at, #ttl = :ttl ADD cnt :n',
|
|
105
|
+
ConditionExpression: 'attribute_not_exists(alertId) OR #ttl > :now',
|
|
106
|
+
ExpressionAttributeNames: { '#ttl': 'ttl' },
|
|
107
|
+
ExpressionAttributeValues: {
|
|
108
|
+
':id': input.newId,
|
|
109
|
+
':at': input.at,
|
|
110
|
+
':first': input.firstAt ?? input.at,
|
|
111
|
+
':ttl': ttl,
|
|
112
|
+
':n': input.n,
|
|
113
|
+
':now': input.nowSec,
|
|
114
|
+
},
|
|
115
|
+
ReturnValues: 'ALL_NEW',
|
|
116
|
+
}));
|
|
117
|
+
return touched(r.Attributes, input);
|
|
118
|
+
}
|
|
119
|
+
catch (e) {
|
|
120
|
+
if (!(e instanceof ConditionalCheckFailedException))
|
|
121
|
+
throw e;
|
|
122
|
+
}
|
|
123
|
+
// 期限切れの行: 新しい ID で作り直す(同時に作り直した別の実行がいれば、条件に失敗して上をやり直す)
|
|
124
|
+
try {
|
|
125
|
+
const r = await this.doc.send(new UpdateCommand({
|
|
126
|
+
TableName: this.tableName,
|
|
127
|
+
Key: { pk },
|
|
128
|
+
UpdateExpression: 'SET alertId = :id, firstSeenAt = :first, lastSeenAt = :at, #ttl = :ttl, cnt = :n',
|
|
129
|
+
ConditionExpression: '#ttl <= :now',
|
|
130
|
+
ExpressionAttributeNames: { '#ttl': 'ttl' },
|
|
131
|
+
ExpressionAttributeValues: {
|
|
132
|
+
':id': input.newId,
|
|
133
|
+
':at': input.at,
|
|
134
|
+
':first': input.firstAt ?? input.at,
|
|
135
|
+
':ttl': ttl,
|
|
136
|
+
':n': input.n,
|
|
137
|
+
':now': input.nowSec,
|
|
138
|
+
},
|
|
139
|
+
ReturnValues: 'ALL_NEW',
|
|
140
|
+
}));
|
|
141
|
+
return touched(r.Attributes, input);
|
|
142
|
+
}
|
|
143
|
+
catch (e) {
|
|
144
|
+
if (!(e instanceof ConditionalCheckFailedException))
|
|
145
|
+
throw e;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
throw new Error('alerts の集計の更新が競合し続けました');
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
function touched(attrs, input) {
|
|
152
|
+
const alertId = typeof attrs?.alertId === 'string' ? attrs.alertId : undefined;
|
|
153
|
+
if (!alertId)
|
|
154
|
+
throw new Error('alerts の集計の更新の結果に alertId がありません');
|
|
155
|
+
const count = typeof attrs?.cnt === 'number' ? attrs.cnt : input.n;
|
|
156
|
+
const firstSeenAt = typeof attrs?.firstSeenAt === 'string' ? attrs.firstSeenAt : (input.firstAt ?? input.at);
|
|
157
|
+
return { alertId, count, firstSeenAt, isNew: alertId === input.newId };
|
|
91
158
|
}
|
|
92
159
|
/** テスト・ローカル用(1 プロセス内だけ) */
|
|
93
160
|
export class MemoryNoticeStore {
|
|
161
|
+
alerts = new Map();
|
|
94
162
|
fps = new Map();
|
|
95
163
|
counts = new Map();
|
|
96
164
|
async claim(fingerprint, windowSec, nowSec, count) {
|
|
@@ -115,5 +183,24 @@ export class MemoryNoticeStore {
|
|
|
115
183
|
this.counts.set(key, total);
|
|
116
184
|
return total;
|
|
117
185
|
}
|
|
186
|
+
async touchAlert(alertKey, input) {
|
|
187
|
+
const cur = this.alerts.get(alertKey);
|
|
188
|
+
const ttl = input.nowSec + input.keepSec;
|
|
189
|
+
if (cur && cur.ttl > input.nowSec) {
|
|
190
|
+
cur.cnt += input.n;
|
|
191
|
+
cur.lastSeenAt = input.at;
|
|
192
|
+
cur.ttl = ttl;
|
|
193
|
+
return { alertId: cur.alertId, count: cur.cnt, firstSeenAt: cur.firstSeenAt, isNew: false };
|
|
194
|
+
}
|
|
195
|
+
const firstSeenAt = input.firstAt ?? input.at;
|
|
196
|
+
this.alerts.set(alertKey, {
|
|
197
|
+
alertId: input.newId,
|
|
198
|
+
cnt: input.n,
|
|
199
|
+
firstSeenAt,
|
|
200
|
+
lastSeenAt: input.at,
|
|
201
|
+
ttl,
|
|
202
|
+
});
|
|
203
|
+
return { alertId: input.newId, count: input.n, firstSeenAt, isNew: true };
|
|
204
|
+
}
|
|
118
205
|
}
|
|
119
206
|
//# sourceMappingURL=store.js.map
|
package/dist/notify/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/notify/store.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,+BAA+B,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAA0B,aAAa,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/notify/store.ts"],"names":[],"mappings":"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"}
|
package/dist/notify/types.d.ts
CHANGED
|
@@ -21,6 +21,21 @@ export interface Notice {
|
|
|
21
21
|
occurredAt: string;
|
|
22
22
|
/** 抑制していた同種の通知の件数(今回を含まない) */
|
|
23
23
|
suppressed: number;
|
|
24
|
+
/** 管理画面の、この通知の alerts レコードの URL(記録に成功したときだけ。本文に `詳細:` の行で出す) */
|
|
25
|
+
detailUrl?: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* ログ 1 件の所在(CloudWatch Logs)。ログの購読から来た通知にだけある。
|
|
29
|
+
* CloudWatch のコンソールで、ストリームとその時刻の前後を開くのに使う
|
|
30
|
+
*/
|
|
31
|
+
export interface LogRef {
|
|
32
|
+
region: string;
|
|
33
|
+
logGroup: string;
|
|
34
|
+
logStream: string;
|
|
35
|
+
/** ログの時刻(エポックミリ秒) */
|
|
36
|
+
timestamp: number;
|
|
37
|
+
/** Lambda の RequestId(ログから取れたときだけ) */
|
|
38
|
+
requestId?: string;
|
|
24
39
|
}
|
|
25
40
|
/** 配信先 */
|
|
26
41
|
export interface Channel {
|
|
@@ -55,6 +70,38 @@ export interface NoticeStore {
|
|
|
55
70
|
/** 流量の計数を n 増やし、窓の中の件数(増やした後)を返す */
|
|
56
71
|
consume(bucket: string, windowSec: number, nowSec: number, n: number): Promise<number>;
|
|
57
72
|
}
|
|
73
|
+
/** AlertIndex.touchAlert の入力 */
|
|
74
|
+
export interface AlertTouchInput {
|
|
75
|
+
/** 新しい alerts レコードの ID(ULID)。行が無い・期限切れのときだけ使われる */
|
|
76
|
+
newId: string;
|
|
77
|
+
/** 今回の発生の件数 */
|
|
78
|
+
n: number;
|
|
79
|
+
/** 期限の判定と ttl の基準(エポック秒) */
|
|
80
|
+
nowSec: number;
|
|
81
|
+
/** 最後の発生の時刻(ISO 8601) */
|
|
82
|
+
at: string;
|
|
83
|
+
/** 最初の発生の時刻(ISO 8601。行が新しく作られるときの firstSeenAt。既定 at) */
|
|
84
|
+
firstAt?: string;
|
|
85
|
+
/** 最後の発生から、行を残す秒数(alerts の保存期間と揃える) */
|
|
86
|
+
keepSec: number;
|
|
87
|
+
}
|
|
88
|
+
export interface AlertTouchResult {
|
|
89
|
+
/** alerts レコードの ID */
|
|
90
|
+
alertId: string;
|
|
91
|
+
/** これまでの発生の件数(今回を含む) */
|
|
92
|
+
count: number;
|
|
93
|
+
/** 最初の発生の時刻(行が作られたときの値。ISO 8601) */
|
|
94
|
+
firstSeenAt: string;
|
|
95
|
+
/** 今回、新しい ID になったか */
|
|
96
|
+
isNew: boolean;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* alerts の集計(指紋 → alerts レコードの ID と件数)。任意(NoticeStore とは別のインターフェース)。
|
|
100
|
+
* 1 回の原子的な更新で、ID の確保・件数の加算・期限の延長を行う(読み出しを要しない)
|
|
101
|
+
*/
|
|
102
|
+
export interface AlertIndex {
|
|
103
|
+
touchAlert(alertKey: string, input: AlertTouchInput): Promise<AlertTouchResult>;
|
|
104
|
+
}
|
|
58
105
|
export interface NotifyLogger {
|
|
59
106
|
info(message: string, meta?: Record<string, unknown>): void;
|
|
60
107
|
warn(message: string, meta?: Record<string, unknown>): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/notify/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,4BAA4B;AAC5B,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,IAAI,CAAC;AAE5D,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,WAAW,CAAC;IACnB,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,+BAA+B;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,UAAU;AACV,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,eAAe,EAAE,OAAO,CAAC;IACzB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9D;AAED,oCAAoC;AACpC,MAAM,WAAW,cAAc;IAC7B,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,mBAAmB;AACnB,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,KAAK,CACH,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,WAAW,CAAC,CAAC;IACxB;;;OAGG;IACH,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5E,oCAAoC;IACpC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACxF;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC5D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC5D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC9D"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/notify/types.ts"],"names":[],"mappings":"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"}
|
package/dist/server/handler.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// @exabugs/dynamodb-client v1.
|
|
2
|
-
// Built: 2026-10-
|
|
1
|
+
// @exabugs/dynamodb-client v1.13.0
|
|
2
|
+
// Built: 2026-10-16T09:59:05.142Z
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
5
5
|
var __defProp = Object.defineProperty;
|
|
@@ -38980,7 +38980,7 @@ async function handler(event) {
|
|
|
38980
38980
|
return createCorsResponse(HTTP_STATUS.OK);
|
|
38981
38981
|
}
|
|
38982
38982
|
if (event.requestContext.http.method === "GET" && event.requestContext.http.path === "/version") {
|
|
38983
|
-
const version = "1.
|
|
38983
|
+
const version = "1.13.0";
|
|
38984
38984
|
return createSuccessResponse({ version, timestamp: (/* @__PURE__ */ new Date()).toISOString() }, requestId);
|
|
38985
38985
|
}
|
|
38986
38986
|
if (event.requestContext.http.method !== "POST") {
|
package/dist/sharp-layer.zip
CHANGED
|
Binary file
|