Установка переменных среды с помощью! Ref в AWS SAM? - PullRequest
0 голосов
/ 10 декабря 2018

Я использую SAM CLI v0.8.1.Я пытаюсь установить переменную среды MY_TABLE_VAR в качестве имени таблицы в моих ресурсах (MyTableResource).Однако при локальном запуске моего приложения MY_TABLE_VAR не определен.Можете ли вы сказать мне, что не так в моем шаблоне и как я могу установить его правильно?Ниже приведен мой шаблон SAM:

Globals:
    Function:
        Timeout: 30
        Runtime: nodejs8.10        
        Environment:
            Variables:
                MY_TABLE_VAR: !Ref MyTableResource
Resources:
    MyTableResource:
        Type: AWS::Serverless::SimpleTable
        Properties:
          TableName: table1
          PrimaryKey:
            Name: id
            Type: String
          ProvisionedThroughput:
            ReadCapacityUnits: 5
            WriteCapacityUnits: 5

1 Ответ

0 голосов
/ 20 декабря 2018

Насколько я понимаю, секция Globals не может ссылаться на ресурсы в секции Resources (зависимость идет в другом направлении, поскольку все, что добавлено в секцию Globals, добавляется ко всем бессерверным функциям иAPI в разделе Resources).Чтобы обойти это, я предлагаю вам использовать либо Mappings , либо Параметры , например

Parameters:
    TableName:
        Type: String
        Default: table1

Globals:
    Function:
        Timeout: 30
        Runtime: nodejs8.10        
        Environment:
            Variables:
                MY_TABLE_VAR: !Ref TableName

Resources:
    MyTableResource:
        Type: AWS::Serverless::SimpleTable
        Properties:
          TableName: !Ref TableName
          # more table config....
...