@infodb/lctl 0.2.0 → 0.4.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/README.md +13 -23
- package/dist/commands/deploy.d.ts +0 -1
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +1 -14
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/export.d.ts +0 -1
- package/dist/commands/export.d.ts.map +1 -1
- package/dist/commands/export.js +1 -14
- package/dist/commands/export.js.map +1 -1
- package/dist/index.js +1 -3
- package/dist/index.js.map +1 -1
- package/dist/utils/config.d.ts +1 -2
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +12 -9
- package/dist/utils/config.js.map +1 -1
- package/package.json +4 -2
package/README.md
CHANGED
|
@@ -29,7 +29,6 @@ pnpx @infodb/lctl deploy <function-name> [オプション]
|
|
|
29
29
|
- `--runtime <runtime>`: ランタイム環境 (デフォルト: python3.12)
|
|
30
30
|
- `--handler <handler>`: ハンドラー関数 (デフォルト: {function-name}.handler)
|
|
31
31
|
- `--role <role-arn>`: IAMロールARN (新規作成時に必須)
|
|
32
|
-
- `--params <key=value>`: YAML内の変数を置換 (複数指定可能)
|
|
33
32
|
- `--config <directory>`: 設定ファイルのディレクトリ (デフォルト: configs)
|
|
34
33
|
- `--function <directory>`: 関数ファイルのディレクトリ (デフォルト: functions)
|
|
35
34
|
|
|
@@ -41,11 +40,8 @@ pnpx @infodb/lctl deploy my-function --role arn:aws:iam::123456789012:role/lambd
|
|
|
41
40
|
# YAML設定ファイルを使用(推奨)
|
|
42
41
|
pnpx @infodb/lctl deploy my-function # configs/my-function.yaml から設定を読み込み
|
|
43
42
|
|
|
44
|
-
#
|
|
45
|
-
pnpx @infodb/lctl deploy my-function
|
|
46
|
-
|
|
47
|
-
# 開発環境向け
|
|
48
|
-
pnpx @infodb/lctl deploy my-function --params env=dev --params db_host=localhost --params db_port=5432
|
|
43
|
+
# 環境変数を使ってフレキシブルなデプロイ
|
|
44
|
+
AWS_ROLE_ARN=arn:aws:iam::123456789012:role/lambda-role ENV=prod pnpx @infodb/lctl deploy my-function
|
|
49
45
|
|
|
50
46
|
# カスタム設定ディレクトリを使用
|
|
51
47
|
pnpx @infodb/lctl deploy my-function --config environments/prod
|
|
@@ -94,7 +90,6 @@ pnpx @infodb/lctl export <function-name> [オプション]
|
|
|
94
90
|
- `--runtime <runtime>`: ランタイム環境 (デフォルト: python3.12)
|
|
95
91
|
- `--handler <handler>`: ハンドラー関数 (デフォルト: {function-name}.handler)
|
|
96
92
|
- `--role <role-arn>`: IAMロールARN (新規作成時に必須)
|
|
97
|
-
- `--params <key=value>`: YAML内の変数を置換 (複数指定可能)
|
|
98
93
|
- `--config <directory>`: 設定ファイルのディレクトリ (デフォルト: configs)
|
|
99
94
|
- `--function <directory>`: 関数ファイルのディレクトリ (デフォルト: functions)
|
|
100
95
|
- `--output <file>`: 出力ファイルパス (デフォルト: deploy-{function-name}.sh)
|
|
@@ -107,8 +102,8 @@ pnpx @infodb/lctl export <function-name> [オプション]
|
|
|
107
102
|
# スクリプト出力
|
|
108
103
|
pnpx @infodb/lctl export my-function --output deploy-script.sh
|
|
109
104
|
|
|
110
|
-
#
|
|
111
|
-
pnpx @infodb/lctl export my-function
|
|
105
|
+
# 環境変数を使用してスクリプト出力
|
|
106
|
+
ENV=prod DB_HOST=prod.example.com pnpx @infodb/lctl export my-function
|
|
112
107
|
```
|
|
113
108
|
|
|
114
109
|
## グローバルオプション
|
|
@@ -155,7 +150,7 @@ Lambda関数のコードは `functions/` ディレクトリ(デフォルト)
|
|
|
155
150
|
# my-function.yaml
|
|
156
151
|
runtime: python3.12
|
|
157
152
|
handler: my-function.handler
|
|
158
|
-
role:
|
|
153
|
+
role: ${AWS_ROLE_ARN}
|
|
159
154
|
architecture: x86_64 # x86_64 または arm64
|
|
160
155
|
memory: 256
|
|
161
156
|
timeout: 30
|
|
@@ -170,10 +165,10 @@ files:
|
|
|
170
165
|
|
|
171
166
|
# 環境変数
|
|
172
167
|
environment:
|
|
173
|
-
DB_HOST: $
|
|
174
|
-
DB_PORT: $
|
|
175
|
-
API_KEY: ${API_KEY}
|
|
176
|
-
ENV: $
|
|
168
|
+
DB_HOST: ${DB_HOST}
|
|
169
|
+
DB_PORT: ${DB_PORT}
|
|
170
|
+
API_KEY: ${API_KEY}
|
|
171
|
+
ENV: ${ENV}
|
|
177
172
|
|
|
178
173
|
# ログ設定
|
|
179
174
|
log_retention_days: 7 # ログ保持期間(日)
|
|
@@ -257,15 +252,10 @@ tags:
|
|
|
257
252
|
- `${VAR_NAME}` 形式で現在の環境変数を参照可能
|
|
258
253
|
- 存在しない環境変数を参照した場合はエラー
|
|
259
254
|
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
**変数の優先順位:**
|
|
266
|
-
1. `--params` で指定したパラメータ変数 (`$key`)
|
|
267
|
-
2. 環境変数 (`${VAR_NAME}`)
|
|
268
|
-
3. 存在しない変数の場合はエラー
|
|
255
|
+
**環境変数を使用した環境管理:**
|
|
256
|
+
```bash
|
|
257
|
+
AWS_ROLE_ARN=arn:aws:iam::123456789012:role/lambda-role ENV=prod pnpx @infodb/lctl deploy my-function
|
|
258
|
+
```
|
|
269
259
|
|
|
270
260
|
## エラーハンドリング
|
|
271
261
|
- AWS CLIコマンドが失敗した場合、適切なエラーメッセージを表示
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA4C/F"}
|
package/dist/commands/deploy.js
CHANGED
|
@@ -13,21 +13,8 @@ async function deployCommand(functionName, options) {
|
|
|
13
13
|
const logger = new logger_1.Logger(options.verbose || false);
|
|
14
14
|
try {
|
|
15
15
|
logger.info(`Deploying Lambda function: ${chalk_1.default.cyan(functionName)}`);
|
|
16
|
-
// Parse parameters
|
|
17
|
-
const params = {};
|
|
18
|
-
if (options.params) {
|
|
19
|
-
for (const param of options.params) {
|
|
20
|
-
const [key, value] = param.split('=');
|
|
21
|
-
if (key && value) {
|
|
22
|
-
params[key] = value;
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
throw new Error(`Invalid parameter format: ${param}. Use key=value format.`);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
16
|
// Load configuration
|
|
30
|
-
const configManager = new config_1.ConfigManager(functionName,
|
|
17
|
+
const configManager = new config_1.ConfigManager(functionName, logger);
|
|
31
18
|
const config = await configManager.loadConfig({
|
|
32
19
|
runtime: options.runtime,
|
|
33
20
|
handler: options.handler,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA+B/F"}
|
package/dist/commands/export.js
CHANGED
|
@@ -12,21 +12,8 @@ async function exportCommand(functionName, options) {
|
|
|
12
12
|
const logger = new logger_1.Logger(options.verbose || false);
|
|
13
13
|
try {
|
|
14
14
|
logger.info(`Exporting deploy script for Lambda function: ${chalk_1.default.cyan(functionName)}`);
|
|
15
|
-
// Parse parameters
|
|
16
|
-
const params = {};
|
|
17
|
-
if (options.params) {
|
|
18
|
-
for (const param of options.params) {
|
|
19
|
-
const [key, value] = param.split('=');
|
|
20
|
-
if (key && value) {
|
|
21
|
-
params[key] = value;
|
|
22
|
-
}
|
|
23
|
-
else {
|
|
24
|
-
throw new Error(`Invalid parameter format: ${param}. Use key=value format.`);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
15
|
// Load configuration
|
|
29
|
-
const configManager = new config_1.ConfigManager(functionName,
|
|
16
|
+
const configManager = new config_1.ConfigManager(functionName, logger);
|
|
30
17
|
const config = await configManager.loadConfig({
|
|
31
18
|
runtime: options.runtime,
|
|
32
19
|
handler: options.handler,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":";;;;;AAiBA,sCA+BC;AAhDD,kDAA0B;AAC1B,4CAAgD;AAChD,gEAA4D;AAC5D,4CAAyC;AAclC,KAAK,UAAU,aAAa,CAAC,YAAoB,EAAE,OAAsB;IAC9E,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC;IAEpD,IAAI,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,gDAAgD,eAAK,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAExF,qBAAqB;QACrB,MAAM,aAAa,GAAG,IAAI,sBAAa,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC;YAC5C,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAErC,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;QAEhD,kBAAkB;QAClB,MAAM,eAAe,GAAG,IAAI,kCAAe,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,eAAe,CAAC,oBAAoB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAE1E,cAAc;QACd,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,IAAI,UAAU,YAAY,KAAK,CAAC;QACjE,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAExE,MAAM,CAAC,OAAO,CAAC,0CAA0C,eAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACnF,MAAM,CAAC,IAAI,CAAC,aAAa,eAAK,CAAC,MAAM,CAAC,QAAQ,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;IAEjE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,qCAAqC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QACpG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -14,7 +14,7 @@ const program = new commander_1.Command();
|
|
|
14
14
|
program
|
|
15
15
|
.name('lctl')
|
|
16
16
|
.description('AWS Lambda Control Tool - Simple CLI for managing Lambda functions')
|
|
17
|
-
.version('0.
|
|
17
|
+
.version('0.4.0');
|
|
18
18
|
// Deploy command
|
|
19
19
|
program
|
|
20
20
|
.command('deploy')
|
|
@@ -23,7 +23,6 @@ program
|
|
|
23
23
|
.option('--runtime <runtime>', 'Runtime environment', 'python3.12')
|
|
24
24
|
.option('--handler <handler>', 'Handler function')
|
|
25
25
|
.option('--role <role-arn>', 'IAM role ARN (required for new functions)')
|
|
26
|
-
.option('--params <key=value>', 'Parameters for YAML variable substitution', [])
|
|
27
26
|
.option('--config <directory>', 'Config directory path', 'configs')
|
|
28
27
|
.option('--function <directory>', 'Functions directory path', 'functions')
|
|
29
28
|
.option('--region <region>', 'AWS region')
|
|
@@ -56,7 +55,6 @@ program
|
|
|
56
55
|
.option('--runtime <runtime>', 'Runtime environment', 'python3.12')
|
|
57
56
|
.option('--handler <handler>', 'Handler function')
|
|
58
57
|
.option('--role <role-arn>', 'IAM role ARN (required for new functions)')
|
|
59
|
-
.option('--params <key=value>', 'Parameters for YAML variable substitution', [])
|
|
60
58
|
.option('--config <directory>', 'Config directory path', 'configs')
|
|
61
59
|
.option('--function <directory>', 'Functions directory path', 'functions')
|
|
62
60
|
.option('--output <file>', 'Output script file path')
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAEA,yCAAoC;AACpC,kDAA0B;AAC1B,8CAAkD;AAClD,8CAAkD;AAClD,0CAA8C;AAC9C,8CAAkD;AAElD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,MAAM,CAAC;KACZ,WAAW,CAAC,oEAAoE,CAAC;KACjF,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,iBAAiB;AACjB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,2CAA2C,CAAC;KACxD,QAAQ,CAAC,iBAAiB,EAAE,sBAAsB,CAAC;KACnD,MAAM,CAAC,qBAAqB,EAAE,qBAAqB,EAAE,YAAY,CAAC;KAClE,MAAM,CAAC,qBAAqB,EAAE,kBAAkB,CAAC;KACjD,MAAM,CAAC,mBAAmB,EAAE,2CAA2C,CAAC;KACxE,MAAM,CAAC,sBAAsB,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/config.d.ts
CHANGED
|
@@ -33,9 +33,8 @@ export interface DeployConfig {
|
|
|
33
33
|
}
|
|
34
34
|
export declare class ConfigManager {
|
|
35
35
|
private functionName;
|
|
36
|
-
private params;
|
|
37
36
|
private logger;
|
|
38
|
-
constructor(functionName: string,
|
|
37
|
+
constructor(functionName: string, logger: Logger);
|
|
39
38
|
loadConfig(overrides: DeployConfig, configDir?: string, functionDir?: string): Promise<LambdaConfig>;
|
|
40
39
|
private substituteVariables;
|
|
41
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,GAAG,CAAC,EAAE;QACJ,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,eAAe,EAAE,MAAM,EAAE,CAAC;KAC3B,CAAC;IACF,iBAAiB,CAAC,EAAE;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAG9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAGxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,aAAa;IAEtB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,MAAM;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,GAAG,CAAC,EAAE;QACJ,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,eAAe,EAAE,MAAM,EAAE,CAAC;KAC3B,CAAC;IACF,iBAAiB,CAAC,EAAE;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAG9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAGxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,aAAa;IAEtB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,MAAM;gBADN,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM;IAGlB,UAAU,CAAC,SAAS,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAyD1G,OAAO,CAAC,mBAAmB;CA4B5B"}
|
package/dist/utils/config.js
CHANGED
|
@@ -38,9 +38,8 @@ const fs = __importStar(require("fs/promises"));
|
|
|
38
38
|
const path = __importStar(require("path"));
|
|
39
39
|
const yaml = __importStar(require("yaml"));
|
|
40
40
|
class ConfigManager {
|
|
41
|
-
constructor(functionName,
|
|
41
|
+
constructor(functionName, logger) {
|
|
42
42
|
this.functionName = functionName;
|
|
43
|
-
this.params = params;
|
|
44
43
|
this.logger = logger;
|
|
45
44
|
}
|
|
46
45
|
async loadConfig(overrides, configDir, functionDir) {
|
|
@@ -52,11 +51,20 @@ class ConfigManager {
|
|
|
52
51
|
try {
|
|
53
52
|
const yamlContent = await fs.readFile(yamlPath, 'utf-8');
|
|
54
53
|
const parsedYaml = yaml.parse(yamlContent);
|
|
54
|
+
this.logger.verbose(`Parsed YAML before substitution:`, parsedYaml);
|
|
55
55
|
yamlConfig = this.substituteVariables(parsedYaml);
|
|
56
56
|
this.logger.verbose(`Loaded YAML config from: ${yamlPath}`);
|
|
57
|
+
this.logger.verbose(`YAML config after substitution:`, yamlConfig);
|
|
57
58
|
}
|
|
58
59
|
catch (error) {
|
|
59
|
-
|
|
60
|
+
if (error instanceof Error) {
|
|
61
|
+
this.logger.verbose(`Failed to load YAML config: ${error.message}`);
|
|
62
|
+
// 変数展開エラーの場合、エラーを再スローしてユーザーに通知
|
|
63
|
+
throw error;
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
this.logger.verbose(`No YAML config found at: ${yamlPath}`);
|
|
67
|
+
}
|
|
60
68
|
}
|
|
61
69
|
// Set defaults
|
|
62
70
|
const defaultHandler = `${this.functionName}.handler`;
|
|
@@ -90,13 +98,8 @@ class ConfigManager {
|
|
|
90
98
|
}
|
|
91
99
|
substituteVariables(obj) {
|
|
92
100
|
if (typeof obj === 'string') {
|
|
93
|
-
// Replace $key with params
|
|
94
|
-
let result = obj;
|
|
95
|
-
for (const [key, value] of Object.entries(this.params)) {
|
|
96
|
-
result = result.replace(new RegExp(`\\$${key}\\b`, 'g'), value);
|
|
97
|
-
}
|
|
98
101
|
// Replace ${ENV_VAR} with environment variables
|
|
99
|
-
result =
|
|
102
|
+
const result = obj.replace(/\$\{([^}]+)\}/g, (_, envVar) => {
|
|
100
103
|
const envValue = process.env[envVar];
|
|
101
104
|
if (envValue === undefined) {
|
|
102
105
|
throw new Error(`Environment variable ${envVar} is not defined`);
|
package/dist/utils/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAkC;AAClC,2CAA6B;AAC7B,2CAA6B;AAyC7B,MAAa,aAAa;IACxB,YACU,YAAoB,EACpB,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@infodb/lctl",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "AWS Lambda Control Tool - Simple CLI for managing Lambda functions",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -37,6 +37,8 @@
|
|
|
37
37
|
"scripts": {
|
|
38
38
|
"build": "tsc",
|
|
39
39
|
"dev": "tsc --watch",
|
|
40
|
-
"start": "node dist/index.js"
|
|
40
|
+
"start": "node dist/index.js",
|
|
41
|
+
"test": "npm run build && node dist/index.js",
|
|
42
|
+
"test-local": "npm run build && cd sample && node ../dist/index.js"
|
|
41
43
|
}
|
|
42
44
|
}
|