Прежде всего , вы должны включить ключи API, используя блок key
в meta
, например:
key s3 {
"access_key" : "--access_key--"
}
Это лучше, чем хранить или передавать ключи в простых строках.
Второй , вашему модулю нужна строка configure using
в meta
(я полагаю, у вас уже есть такая строка). Передача пустого хеша в качестве значения по умолчанию предотвратит использование жестко закодированного ключа в модуле набором правил, вызывающим модуль.
configure using s3keys = {}
Наконец , в глобальном блоке сделайте что-то вроде этого:
usekeys = s3keys || keys:s3();
Это говорит KRL использовать либо s3keys
, который был передан вызывающим набором правил, либо клавишу s3
из собственного блока meta
модуля, если ваш модуль используется сам по себе. Даже если кто-то использует ваш модуль, он никогда не получит ваш keys:s3()
из-за значения по умолчанию, которое вы установили в строке configure using
.
Получив usekeys
, вы можете pick()
собрать нужные вам куски:
access_key = usekeys.pick("access_key");
Модуль Sam's Twilio - отличное место для примеров.