Неисполненные обещания в AWS Lambda из параметров SSM - PullRequest
1 голос
/ 01 октября 2019

Я использую серверную среду для развертывания и программирования своей лямбда-функции aws, и поскольку моя функция готова к работе, мне нужно удалить чувствительные ключи и я решил использовать системный менеджер aws (хранилище параметров ssm), чтобы использовать эти ключи вбезопасным образом, но при развертывании я получаю следующее сообщение об ошибке, связанное с использованием этих ключей. Я подумал, что это может быть что-то, связанное с ролью Iam, которую я вручную связал с лямбдой, но я не уверен, что с ней будет.

Ошибка:

Serverless Information ----------------------------------

  ##########################################################################################
  # 47555: 0 of 2 promises have settled
  # 47555: 2 unsettled promises:
  # 47555:   ssm:mg-production-domain~true waited on by: undefined
  # 47555:   ssm:mg-production-api-key~true waited on by: undefined
  # This can result from latent connections but may represent a cyclic variable dependency
  ##########################################################################################

YAML:

provider:
  name: aws
  runtime: nodejs10.x
  stage: dev
  region: us-east-1
  environment:
    MG_PRODUCTION_DOMAIN: ${ssm:mg-production-domain~true}
    MG_PRODUCTION_API_KEY: ${ssm:mg-production-api-key~true}

Вот политика Iam Role, которую я добавил в lambda, но я думаю, что, вероятно, есть лучший способ сделать это, добавив Iam Role через файл YAML:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "ssm:DescribeParameters",
            "Resource": "*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": "ssm:GetParameters",
            "Resource": "arn:aws:ssm:us-east-1:*account-id*:parameter/*"
        },
        {
            "Sid": "VisualEditor2",
            "Effect": "Allow",
            "Action": "ssm:GetParameter",
            "Resource": "arn:aws:ssm:us-east-1:*account-id*:parameter/*"
        }
    ]
}
...