假设我有写入 S3 存储桶的函数。因此,存储桶名称显然是一个“变量”,不应将其硬编码到函数中(例如,对于 dev 与 prod 可能是不同的存储桶)。
现在,如果我希望函数能够访问它,我至少需要在两个地方使用存储桶名称:
- 在函数的 IAM 策略中(允许访问存储桶)。
- 在函数本身。
对于#1,我可以使用一个变量,并引用在 IAM 策略中定义的变量s-module
(或在 v0.4 中调用的任何内容:)。
对于#2,我可以使用一个 env var,然后我可以在运行时在函数代码中访问它的值。
但我当然不想定义变量两次(一次在文件sls env set
中,一次在s-variables
文件中)。那不是很干。但是,我看不到在定义 envar 时引用变量的方法,反之亦然。
我怎样才能在一个地方定义存储桶名称?