此文本已使用 Salesforce 机器翻译系统进行翻译。如需了解更多详情,请点击此处。
Managed Runtime 环境变量允许您将变量添加到环境中运行的应用程序进程,而无需更改代码。环境变量被安全存储,使其非常适合以下用例:
有关详细信息,请参阅环境变量。
让我们使用环境变量来存储用于访问安全外部资源的 API 密钥。在本教程中,资源是一个假想的第三方内容管理系统 (CMS)。我们将向 ssr.js 中的 Express.js 服务器添加一个处理程序,该处理程序向 CMS 发出请求并使用受保护的数据进行响应。然后,我们通过调用处理程序来访问数据。
出于安全原因,API 密钥从服务器端代码(而不是客户端代码)调用 CMS。
要完成本教程,首先:
在运行本教程中的命令之前,请将所有占位符替换为实际值。占位符的格式如 $PLACEHOLDER。
要在当前会话中设置环境变量,请打开终端并运行以下命令:
set CMS_API_KEY='my-cms-api-key'export CMS_API_KEY='my-cms-api-key'通过运行以下命令检查环境变量是否设置正确:
echo %CMS_API_KEY%echo $CMS_API_KEY该命令返回以下输出:my-cms-api-key
在以下位置添加此用于在 ssr.js 中调用 CMS 的 JavaScript 代码:
1async function fetchCMSData() {
2 const key = process.env.CMS_API_KEY;
3 if (!key) {
4 throw new Error("Environment variable CMS_API_KEY isn't set.");
5 }
6
7 return await fetch("https://api.example.com/", {
8 headers: {
9 Authorization: "Bearer " + key,
10 },
11 }).json();
12}
13
14async function handlerCMS(req, res) {
15 try {
16 const data = await fetchCMSData();
17 return res.json(data);
18 } catch (err) {
19 return res.status(500).json({ error: err.message });
20 }
21}npm start 启动开发服务器。最后,导航到本地处理程序以验证是否返回 CMS 数据。建议在非生产环境中测试这些步骤,然后再将更改部署到生产环境。
在运行本教程中的命令之前,请将所有占位符替换为实际值。占位符的格式如 $PLACEHOLDER。
1curl "https://cloud.mobify.com/api/projects/$PROJECT_ID/target/$ENVIRONMENT_ID/env-var/" \
2 --request 'PATCH' \
3 --header 'Content-Type: application/json' \
4 --header 'Accept: application/json' \
5 --header "Authorization: Bearer $MOBIFY_API_KEY" \
6 --data '{"CMS_API_KEY": {"value": "'$YOUR_API_KEY_VALUE'"}}'