LocalStack - CloudFormation возвращает код ошибки: 500 - PullRequest
0 голосов
/ 16 октября 2018

В настоящее время я хочу смоделировать среду AWS, используя LocalStack .Но при создании стеков сервис вернул мне код ошибки: 500.

Вот мой файл шаблона:

AWSTemplateFormatVersion: '2010-09-09'
Description: 'Sample'
Resources:
  sample:
      Type: AWS::Lambda::Function
      Properties:
        MemorySize: 256
        Timeout: 10
        Runtime: nodejs8.10
        Handler: /dist/service/src/handler.sample
        Code:
          Zipfile: lambda.zip

Вот команда, которую я пытаюсь выполнить:

aws cloudformation create-stack \
  --template-body file://localstack/cloudtemplate.yaml \
  --stack-name sample \
  --endpoint-url=http://localhost:4581 \

А вот вывод:

Unable to parse response (syntax error: line 1, column 54), invalid XML received:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>500 Internal Server Error</title>
<h1>Internal Server Error</h1>
<p>The server encountered an internal error and was unable to complete your request.  Either the server is overloaded or there is an error in the application.</p>

Похоже, что конечная точка облачного формирования локального стека не работает должным образом.Я что-то упустил?

1 Ответ

0 голосов
/ 04 марта 2019

Ошибка, которую вы получаете от LocalStack, довольно расплывчата, поэтому вам нужно немного углубиться в нее.Прежде всего, вы можете написать, как вы запускаете LocalStack (это через Docker и если да, какова точная командная строка)?

Использование Docker и docker-compose:

version: '3'

services:

  localstack:
    image: localstack/localstack:latest
    ports:
      - "4567-4584:4567-4584"
      - "${PORT_WEB_UI-8080}:${PORT_WEB_UI-8080}"
    environment:
      - SERVICES=cloudformation
      - HOSTNAME=localstack
      - DEFAULT_REGION=eu-west-2
      - PORT_WEB_UI=${PORT_WEB_UI- }
      - DEBUG=1

Здесь следует отметить несколько вещей:

  • DEBUG=1 даст вам точную ошибку в консоли, которую вы выполняете docker-compose, из которой может (или не может) помочь вам диагностировать реальную проблему
  • Необходимо убедиться, что Cloudformation запущен (добавив его в массив SERVICES) и что соответствующий порт открыт.По умолчанию используется значение 4581 (я просто использую настройки по умолчанию, открывающие все порты, которые LocalStack использует)
  • :latest.У меня была более старая версия образа и у меня были проблемы с Cloudformation, которые исчезли при обновлении до последней версии.Не уверен, в какой момент это было исправлено, но, думаю, это не имеет значения.

И чтобы убедиться, что проблема не в вашем шаблоне, попробуйте использовать тот, который работает, например, выберите один из следующих:

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html

Использование SQS Queue с сигналами Cloudwatch Пример YAML у меня работает следующая команда:

aws cloudformation create-stack --stack-name myteststack --template-body file://cloudf.yml --endpoint-url=http://localhost:4581

Если вышеприведенное работает и у вас все еще есть проблемы с вашим шаблоном, то, по крайней мере, вы знаете, в чем проблема (и, возможно, вы можете опубликовать более подробный вывод DEBUG).

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