定义和访问值
值是对Atlas存储的一段静态数据的命名引用,您可以在Atlas 函数中访问权限该数据。 值提供了一种替代方法,无需将配置常量直接硬编码到函数中。
换句话说,值允许您将部署特定的配置数据与应用的业务逻辑分开。
值可以解析为两种类型的数据:
纯文本:解析为您定义的常规JSON对象、大量或string值。
密钥:解析为您定义的密钥值。
定义值
您可以从用户界面或使用App Services CLI定义新值。
导航至Values 页面
导航至Triggers页面:
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含项目的组织。
如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。
在侧边栏中,单击 Services 标题下的 Triggers。
显示触发器页面。
单击 Linked App Service: Triggers(管理员)链接。
在侧边栏中,单击 Build 标题下的 Values。
单击 Create a Value(连接)。
定义值
选择 Value 类型。
定义纯文本值或密钥值的链接:
要定义纯文本值,请Custom Content并在输入框中输入纯文本值。
要链接到现有密钥的值,请选择Link to Secret ,然后从下拉列表中选择密钥。
要链接到新的密钥值,请选择Link to Secret ,然后在出现的输入框中输入新密钥的名称和新密钥的值。
有关创建密钥的更多信息,请参阅创建密钥。
对 MongoDB Atlas 用户进行身份验证
使用MongoDB Atlas Administration API密钥登录App Services CLI:
appservices login --api-key="<API KEY>" --private-api-key="<PRIVATE KEY>"
添加值配置
将新值的JSON配置文件添加到本地应用程序的values
子目录中:
touch values/<ValueName>.json
每个值都在自己的JSON文件中定义。 示例,名为myValue
的值将在文件/values/myValue.json
中定义。
配置文件应具有以下通用格式:
{ "name": "<Value Name>", "from_secret": <boolean>, "value": <Stored JSON Value|Secret Name> }
字段 | 说明 |
---|---|
name | 值的唯一名称。 此名称是在函数和规则中引用值的方式。 |
from_secret | |
value | 该值在被引用时公开的存储数据:
|
部署更改:
运行以下命令以部署更改:
appservices push
访问值
您可以使用context.values模块从Atlas Function访问权限值的存储数据。
context.values.get("<Value Name>")
示例,当活跃用户的true
ID 包含在纯文本大量值 中时,以下函数会返回adminUsers
:
exports = function() { const adminUsers = context.values.get("adminUsers"); const isAdminUser = adminUsers.indexOf(context.user.id) > 0; return isAdminUser; }