Skip to content

Commit 9cc1c78

Browse files
authored
add debug logs in initialization step (#116)
1 parent e7bffb3 commit 9cc1c78

File tree

4 files changed

+36
-17
lines changed

4 files changed

+36
-17
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
## Unreleased
22

3+
## 0.10.1 (July 10, 2023)
4+
35
IMPROVEMENTS:
46
* quick-start: Update Postgres version to 14.7
7+
* Add debug logs during initialization step
58

69
## 0.10.0 (March 30, 2023)
710

internal/vault/client.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,9 @@ import (
2121
"github.com/aws/aws-sdk-go/aws/session"
2222
"github.com/aws/aws-sdk-go/service/sts"
2323
"github.com/hashicorp/go-hclog"
24-
"github.com/hashicorp/vault-lambda-extension/internal/config"
2524
"github.com/hashicorp/vault/api"
25+
26+
"github.com/hashicorp/vault-lambda-extension/internal/config"
2627
)
2728

2829
const (
@@ -82,6 +83,8 @@ func NewClient(name, version string, logger hclog.Logger, vaultConfig *api.Confi
8283

8384
// Token synchronously renews/re-auths as required and returns a Vault token.
8485
func (c *Client) Token(ctx context.Context) (string, error) {
86+
start := time.Now()
87+
c.logger.Debug("fetching token")
8588
c.mtx.Lock()
8689
defer c.mtx.Unlock()
8790

@@ -100,6 +103,7 @@ func (c *Client) Token(ctx context.Context) (string, error) {
100103
}
101104
}
102105

106+
c.logger.Debug(fmt.Sprintf("fetched token in %v", time.Since(start)))
103107
return c.VaultClient.Token(), nil
104108
}
105109

main.go

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,19 @@ import (
1515
"path"
1616
"sync"
1717
"syscall"
18+
"time"
1819

1920
"github.com/aws/aws-sdk-go/aws"
2021
"github.com/aws/aws-sdk-go/aws/endpoints"
2122
"github.com/aws/aws-sdk-go/aws/session"
2223
"github.com/hashicorp/go-hclog"
24+
"github.com/hashicorp/vault/api"
25+
2326
"github.com/hashicorp/vault-lambda-extension/internal/config"
2427
"github.com/hashicorp/vault-lambda-extension/internal/extension"
2528
"github.com/hashicorp/vault-lambda-extension/internal/proxy"
2629
"github.com/hashicorp/vault-lambda-extension/internal/runmode"
2730
"github.com/hashicorp/vault-lambda-extension/internal/vault"
28-
"github.com/hashicorp/vault/api"
2931
)
3032

3133
func main() {
@@ -107,6 +109,7 @@ func (h *handler) handle() error {
107109
}
108110

109111
func (h *handler) runExtension(ctx context.Context, wg *sync.WaitGroup) (func(context.Context) error, error) {
112+
start := time.Now()
110113
h.logger.Info("Initialising")
111114

112115
authConfig := config.AuthConfigFromEnv()
@@ -154,7 +157,7 @@ func (h *handler) runExtension(ctx context.Context, wg *sync.WaitGroup) (func(co
154157
client.VaultClient = client.VaultClient.WithRequestCallbacks(api.RequireState(newState), vault.UserAgentRequestCallback(uaFunc)).WithResponseCallbacks()
155158

156159
if h.runMode.HasModeFile() {
157-
if err := writePreconfiguredSecrets(client.VaultClient); err != nil {
160+
if err := writePreconfiguredSecrets(h.logger, client.VaultClient); err != nil {
158161
return nil, err
159162
}
160163
}
@@ -164,6 +167,8 @@ func (h *handler) runExtension(ctx context.Context, wg *sync.WaitGroup) (func(co
164167

165168
cleanupFunc := func(context.Context) error { return nil }
166169
if h.runMode.HasModeProxy() {
170+
start := time.Now()
171+
h.logger.Debug("initialising proxy mode")
167172
ln, err := net.Listen("tcp", "127.0.0.1:8200")
168173
if err != nil {
169174
return nil, fmt.Errorf("failed to listen on port 8200: %w", err)
@@ -181,14 +186,17 @@ func (h *handler) runExtension(ctx context.Context, wg *sync.WaitGroup) (func(co
181186
cleanupFunc = func(ctx context.Context) error {
182187
return srv.Shutdown(ctx)
183188
}
189+
h.logger.Debug(fmt.Sprintf("proxy mode initialised in %v", time.Since(start)))
184190
}
185191

186-
h.logger.Info("Initialised")
192+
h.logger.Info(fmt.Sprintf("Initialised in %v", time.Since(start)))
187193
return cleanupFunc, nil
188194
}
189195

190196
// writePreconfiguredSecrets writes secrets to disk.
191-
func writePreconfiguredSecrets(client *api.Client) error {
197+
func writePreconfiguredSecrets(logger hclog.Logger, client *api.Client) error {
198+
start := time.Now()
199+
logger.Debug("writing secrets to disk")
192200
configuredSecrets, err := config.ParseConfiguredSecrets()
193201
if err != nil {
194202
return fmt.Errorf("failed to parse configured secrets to read: %w", err)
@@ -218,6 +226,7 @@ func writePreconfiguredSecrets(client *api.Client) error {
218226
}
219227
}
220228

229+
logger.Debug(fmt.Sprintf("wrote secrets to disk in %v", time.Since(start)))
221230
return nil
222231
}
223232

quick-start/terraform/lambda.tf

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,27 +9,30 @@ resource "aws_lambda_function" "function" {
99
handler = "main"
1010
runtime = "provided.al2"
1111
architectures = ["x86_64"]
12-
layers = var.local_extension ? ["${aws_lambda_layer_version.vle[0].arn}"] : ["arn:aws:lambda:${var.aws_region}:634166935893:layer:vault-lambda-extension:16"]
12+
layers = var.local_extension ? ["${aws_lambda_layer_version.vle[0].arn}"] : [
13+
"arn:aws:lambda:${var.aws_region}:634166935893:layer:vault-lambda-extension:16"
14+
]
1315

1416
environment {
1517
variables = {
16-
VAULT_ADDR = "http://${aws_instance.vault-server.public_ip}:8200",
17-
VAULT_AUTH_ROLE = aws_iam_role.lambda.name,
18-
VAULT_AUTH_PROVIDER = "aws",
19-
VAULT_SECRET_PATH_DB = "database/creds/lambda-function",
20-
VAULT_SECRET_FILE_DB = "/tmp/vault_secret.json",
21-
VAULT_SECRET_PATH = "secret/myapp/config",
18+
VAULT_ADDR = "http://${aws_instance.vault-server.public_ip}:8200",
19+
VAULT_AUTH_ROLE = aws_iam_role.lambda.name,
20+
VAULT_AUTH_PROVIDER = "aws",
21+
VAULT_SECRET_PATH_DB = "database/creds/lambda-function",
22+
VAULT_SECRET_FILE_DB = "/tmp/vault_secret.json",
23+
VAULT_SECRET_PATH = "secret/myapp/config",
2224
VAULT_ASSUMED_ROLE_ARN = var.assume_role ? aws_iam_role.extra_role[0].arn : "",
23-
VAULT_RUN_MODE = "default",
24-
DATABASE_URL = aws_db_instance.main.address
25+
VAULT_RUN_MODE = "default",
26+
VAULT_LOG_LEVEL = "debug",
27+
DATABASE_URL = aws_db_instance.main.address
2528
}
2629
}
2730
}
2831

2932
// if you have built a local version you want to use
3033
resource "aws_lambda_layer_version" "vle" {
31-
count = var.local_extension ? 1 : 0
32-
filename = "../../pkg/vault-lambda-extension.zip"
33-
layer_name = "vault-lambda-extension"
34+
count = var.local_extension ? 1 : 0
35+
filename = "../../pkg/vault-lambda-extension.zip"
36+
layer_name = "vault-lambda-extension"
3437
compatible_architectures = ["x86_64"]
3538
}

0 commit comments

Comments
 (0)