我想从我的yaml隐藏我的秘密凭证,我需要使用.env,所以如何从我的yaml调用.env文件,这样我每次调用这个YAML,YAML都会自动调用.env文件。请帮我。 THX
答案 0 :(得分:2)
您可以执行以下操作,而不是使用.env
文件,如果您正在关注dotenv包,则该文件是一个简单的属性文件:
.yml
文件,例如.secrets.yml
。你可以存储每个阶段的秘密: prod:
MY_SECRET: foo
dev:
MY_SECRET: bar
然后在serverless.yml
:
custom:
secrets: ${file(.secrets.yml):${self:provider.stage}}
provider:
environment:
MY_SECRET: ${self:custom.secrets.MY_SECRET}
如何在本地测试
在测试中,您可以通过以下方式加载秘密文件:
const yaml = require('js-yaml');
const fs = require('fs');
const _ = require('lodash');
module.exports.loadSecrets = function (env = 'dev', path = './.secrets.yml') {
const secrets = yaml.load(fs.readFileSync(path));
_.forEach(secrets[env], (value, key) => {
process.env[key] = value;
});
}
参考:http://www.goingserverless.com/blog/using-environment-variables-with-the-serverless-framework