«Стек с идентификатором X не существует» во всех командах sls после успешного удаления sls - PullRequest
0 голосов
/ 13 июня 2018

После успешного завершения sls remove все sls команды завершаются с

Стек с идентификатором X не существует

Проверен этот стек, дополнительные стеки и корзина развертывания S3были удаленыПробовал удалить .serverless/, но это не помогло.

Ответы [ 3 ]

0 голосов
/ 13 июня 2018

Проблема в том, что синтаксис ${cf:...} требует вывода существующего стека CloudFormation, а когда вы еще не развернули проект, стек и его выходные данные еще не существуют.

Если вам нужноПолучив доступ к этому выводу из «текущего» стека, вы должны посмотреть, как выход определяется в Serverless (этот пример взят из одного из моих проектов):

"ServiceEndpoint":{
  "Description": "URL of the service endpoint",
  "Value": {"Fn::Join":["", [
    "https://",
    {"Ref":"ApiGatewayRestApi"},
    ".execute-api.eu-central-1.",
    {"Ref":"AWS::URLSuffix"},"/dev"]]}
}

Вы можете использовать тот же синтаксис для "«сгенерируйте» это значение в своем собственном стеке в тех местах, где оно вам нужно, заменив динамические части переменными без сервера, такими как ${self:provider.region} и ${self:provider.stage}, или любым другим, выбранным вашим проектом вместо них.Например, чтобы добавить его в среду Lambda:

provider:
  environment:
    SERVICE_ENDPOINT: {"Fn::Join":["", [
      "https://",
      {"Ref":"ApiGatewayRestApi"},
      ".execute-api.${self:provider.region}.",
      {"Ref":"AWS::URLSuffix"},
      "/${self:provider.stage}"]]}
0 голосов
/ 26 сентября 2018

В моем случае я удалил стек облачной информации вручную и запустил sls deploy -s <stage> --force, и это сработало.

0 голосов
/ 13 июня 2018

Оказывается, бит оскорбления был ${cf:${self:service}-${self:provider.stage}.ServiceEndpoint} в моем serverless.yml.Очевидно, что ${cf:...} материал (или, по крайней мере, тот конкретный случай) в serverless.yml завершается неудачей, если основной стек не существует, то есть вы еще не развернуты.

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

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