$ {}无服务器语法

时间:2018-11-30 00:12:50

标签: serverless-framework

this serverless.yml example的第19行上,出现以下内容:

Resource: "arn:aws:dynamodb:${opt:region, self:provider.region}:*:table/${self:provider.environment.DYNAMODB_TABLE}"

1)语法${...}是bash参数扩展的一个实例,例如this guide覆盖的扩展


2)无论如何,上面的行是做什么的?

1 个答案:

答案 0 :(得分:1)

这些是变量定义。可以在其他地方定义它们。例子

   custom: ${file(env.yml)}

   environment: ${self:custom.environment}

然后我在env.yml中这样定义变量

environment: dev

Resource: "arn:aws:dynamodb:${opt:region, self:provider.region}:*:table/${self:provider.environment.DYNAMODB_TABLE}"

该资源是示例DYANMODB_TABLE的资源

您将执行类似这样的操作

- Sid: "LogsAccess"
                   Effect: "Allow"
                   Action:
                     - "logs:CreateLogGroup"
                     - "logs:CreateLogStream"
                     - "logs:PutLogEvents"
                     - "logs:DescribeLogStreams"
                   Resource: "arn:aws:logs:*:*:*"

但是在这种情况下,您的区块将与dynamodb相关。