Обновление стека CloudFormation с помощью пула Cognito утверждает, что мы добавляем атрибуты, когда мы не - PullRequest
0 голосов
/ 09 ноября 2018

Начиная с 7 ноября 2018 года, при обновлении наших стеков CloudFormation мы получили следующую ошибку:

Updating user pool schema is not allowed from cloudformation. Use the
AddCustomAttributes API or the AWS Cognito Console to update user pool
schema.

Наши стеки CF не имеют никаких изменений в пользовательских атрибутах пула Cognito. Они имеют только изменения в триггерах PostConfirmation и CustomMessage, а также добавление ответов API Gateway.

Кто-нибудь знает, почему мы можем это видеть? Как мы можем избежать этого сообщения об ошибке?

Ответы [ 3 ]

0 голосов
/ 09 ноября 2018

мы удалили изменения CustomMessage из нашего шаблона, и это, похоже, помогло.

0 голосов
/ 12 ноября 2018

В основном благодаря удаче я нашел ответ, который позволяет мне обойти это автоматически.

Как работали наши скрипты

Сначала позвольте мне объяснить, как это работало. Раньше у меня был следующий набор скриптов cloudFormation:

cognitoSetup.template  --> <Serverless Framework> --> <cognitoSetup.template updated with triggers>

Таким образом, мы настроили пул Cognito, запустили Serverless Framework, чтобы добавить функции Cognito Lambda, а затем обновили файл cognitoSetup.template с помощью ARN для лямбд, экспортируемых при запуске Serverless Framework.

Исправление

Теперь мы включаем ARN для лямбд в cognitoSetup.template. Так что теперь cognitoSetup.template выглядит так:

   "CognitoUserPool": {
     "Type": "AWS::Cognito::UserPool"
     ...
     "Properties": {
     ...
     "LambdaConfig": {
        "CustomMessage": "arn:aws:lambda:<our aws region>:<our account#>:function:main-<our stage>-onCognitoCustomMessage"
      }
    }

Обратите внимание, мы устанавливаем этот триггер до того, как лямбда даже существует. Триггеру просто нужен ARN, и, похоже, его не волнует, что он еще не там. Затем мы запускаем sls deploy, который создает настоящую лямбда-функцию, и все работает нормально.

Теперь наши скрипты выглядят так:

cognitoSetup.template  --> <Serverless Framework>

Почему это исправляет эту ошибку? Я на самом деле не знаю. CloudFormation, кажется, хорошо с этой модификацией, но не хорошо с изменением того же файла позже в нашем процессе. Но это работает.

0 голосов
/ 09 ноября 2018

У нас была такая же проблема с развертыванием. На данный момент мы развертываем его без триггера CustomMessage и настраиваем триггер CustomMessage вручную после развертывания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...