Open bxb100 opened 1 year ago
看到 https://github.com/Infisical/infisical , 比较好奇它的运行机制. 然后发散性的想了一下, 如何接入 https://github.com/hashicorp/vault 做出同样效果: 将 vault 的秘钥注入到一个类似 python virtual env 中, 然后直接在这个环境中运行application, 通过环境变量获取秘钥(和 nix shell
一样)
下面这段代码是 infisical 的执行环境
func executeMultipleCommandWithEnvs(fullCommand string, secretsCount int, env []string) error {
shell := [2]string{"sh", "-c"}
if runtime.GOOS == "windows" {
shell = [2]string{"cmd", "/C"}
} else {
currentShell := os.Getenv("SHELL")
if currentShell != "" {
shell[0] = currentShell
}
}
cmd := exec.Command(shell[0], shell[1], fullCommand)
cmd.Stdin = os.Stdin
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
cmd.Env = env
color.Green("Injecting %v Infisical secrets into your application process", secretsCount)
log.Debugf("executing command: %s %s %s \n", shell[0], shell[1], fullCommand)
return execCmd(cmd)
}
其实和 var=value cmd
差不多
来源: https://www.v2ex.com/t/920543
解决方式:
如何优化报表
问题来源: 求各位大佬给些报表优化的思路?
可能的解决方案
ETL
, 通过CDC
^1 来将数据转换到 ClickHouse 这种列式数据库或者计算放到缓存中, 然后报表请求到新的数据源中