# 容器内变量信息

# 请求 header

在容器内收到的从小程序端或已登录的 web 端发起的请求 header 中,有以下包含微信信息的 header,其中包括 openid 等用户信息:

header 说明
X-WX-OPENID 小程序用户 openid
X-WX-APPID 小程序 AppID
X-WX-UNIONID 小程序用户 unionid,并且满足 unionid 获取条件时有
X-WX-FROM-OPENID 资源复用情况下,小程序用户 openid
X-WX-FROM-APPID 资源复用情况下,使用方小程序 AppID
X-WX-FROM-UNIONID 资源复用情况下,小程序用户 unionid,并且满足 unionid 获取条件时有
X-WX-ENV 所在云环境 ID
X-WX-SOURCE 调用来源(本次运行是被什么触发)
X-Forwarded-For 客户端 IPv4 或IPv6 地址

注 1:header 是大小写不敏感的,有些框架可能会将原始 header 转为小写,请注意
注 2:请求处理时如需保证调用来源是微信生态端(微信小程序、公众号H5),请判断 X-WX-SOURCE 头部是否存在

# PHP获取 header 示例

以下例子适用于 apache 环境

<?php
  $head = getallheaders() // 获取请求头
  echo json_encode($head);
?>

以下例子适用于 nignx 等非 apache 环境

<?php
  $_SERVER['X-WX-OPENID'] // 获取用户的OPENID
?>

# Node.JS获取 Header 示例

const express = require('express')
const app = express()

app.get('/', (req, res) => {
  const header = req.headers // req.headers 获取请求头
  res.json(header)
})

const port = process.env.PORT || 80
app.listen(port, () => {
  console.log('服务启动,端口:', port)
})

# 环境变量

变量名称 说明
CBR_ENV_ID 当前环境 ID
MYSQL_USERNAME 模板部署自动开通数据库时,数据库用户名
MYSQL_PASSWORD 模板部署自动开通数据库时,数据库密码
MYSQL_ADDRESS 模板部署自动开通数据库时,数据库内网地址

如果不使用微信云托管中的 MySQL 使用其他数据库,或者微信云托管中 MySQL 是单独手动开通而非通过模板部署自动开通的,则不会产生数据库相关的三个环境变量。

# PHP获取环境变量示例

<?php
  $ENVID = getenv("CBR_ENV_ID");
  echo $ENVID;
?>

# GO获取环境变量示例

import os
os.Getenv("CBR_ENV_ID")

# Python获取环境变量示例

import os
os.getenv('CBR_ENV_ID')

# JAVA获取环境变量示例

// 所有环境变量
System.getProperties()
// 指定某个环境变量
System.getProperty('CBR_ENV_ID') 

# Node.JS获取环境变量示例

const express = require('express')
const app = express()

app.get('/', (req, res) => {
  const CBR_ENV_ID = process.env.CBR_ENV_ID // process.env 获取环境变量
  console.log('当前环境 ID 为:', CBR_ENV_ID)
  res.send(CBR_ENV_ID)
})

const port = process.env.PORT || 80
app.listen(port, () => {
  console.log('服务启动,端口:', port)
})

# 时区设置

请移步至时区设置文档