如何从查询模块读取Memgraph进程环境变量?
访问Memgraph环境变量的方法
你可以直接使用Memgraph提供的mg_env_get函数来访问环境变量,无需硬编码或读取外部文件,具体实现如下:
步骤示例
- 在查询模块代码中引入必要头文件:
#include <mg_env.h> - 通过
mg_env_get函数获取指定环境变量的值,以下是完整的C++模块示例:
#include <mg_env.h> #include <mg_procedure.h> // 自定义查询过程,用于获取环境变量 void GetEnvironmentVariable(const mgp_list *args, mgp_graph *graph, mgp_result *result, mgp_memory *memory) { // 指定要获取的环境变量名称 const char *target_var = "MY_MEMGRAPH_CONFIG"; const char *var_value = mg_env_get(target_var); // 将结果返回给查询调用者 mgp_result_record *record = mgp_result_new_record(result); if (var_value != NULL) { mgp_result_record_add_string(record, "variable", target_var); mgp_result_record_add_string(record, "value", var_value); } else { mgp_result_record_add_string(record, "variable", target_var); mgp_result_record_add_string(record, "value", "未找到该环境变量"); } } // 模块初始化,注册查询过程 MGP_MODULE_API void mgp_module_init(struct mgp_module *module, struct mgp_memory *memory) { mgp_module_add_read_procedure(module, "get_env_var", GetEnvironmentVariable); } // 模块销毁清理 MGP_MODULE_API void mgp_module_shutdown() {}
注意事项
- 编译查询模块时,需确保链接Memgraph的相关库,保证
mg_env_get函数可正常调用 - 环境变量需在Memgraph启动前设置(例如终端导出:
export MY_MEMGRAPH_CONFIG=my_value),或启动时直接传递:MY_MEMGRAPH_CONFIG=my_value memgraph mg_env_get函数是线程安全的,可在查询模块的任意逻辑中调用
内容的提问来源于stack exchange,提问作者Juliette Gia
相关产品推荐
相关产品推荐

