万维易源使用帮助手册
[TOC]
#1. 支持的生命周期位置
本处指的【LUA代码运行环境】,特指以下的三个情况:
##1.1. proxy阶段的【代码转换】模块

##1.2 balance阶段的【前置lua选择节点】模块

##1.3. proxy_response阶段的【代码转换输出】模块

------------
#2. 阶段的LUA代码运行环境
由于安全和性能上的要求,目前易源内嵌LUA代码支持以下函数和变量。
##2.1. 可使用的函数
###2.1.1 now_time
now_time的实现使用的是:`ngx.localtime` ,使用时不要忘记后面加括号,也就是`now_time()`。
使用示例:
```lua
function(
inParams, --所有输入参数值
showapi_env, --全局环境变量
res_status, --返回状态码,通常是200
res_header_map, --返回头的map结构
res_body_str, --返回体的string
res_body_js, --返回体经json转化后的对像
node_name --当次请求使用的节点名称
)
--示例用法:在返回体中加入当前时间
res_body_js.my_ret_time=now_time()
end
```
###2.1.2 ipair
用法同LUA标准的ipair方法。
###2.1.3 pairs
用法同LUA标准的pairs方法。
###2.1.4 table_insert
其实现是table.insert函数。
###2.1.5 tonumber
用法同LUA标准的tonumber方法。
###2.1.6 tostring
用法同LUA标准的tostring方法。
###2.1.7 encode_base64
其实现为`ngx.encode_base64`。
###2.1.8 escape_uri
其实现为`ngx.escape_uri`。
###2.1.9 ngx_md5
其实现为`ngx.md5`。
##2.2. 可使用的变量
###2.2.1 showapi_env
showapi_env是用户在系统中自定义的环境变量容器,使用时用以下方式:
```lua
showapi_env.my_var
```
其中my_var是在下图中定义好的变量。
