В настоящее время я хочу смоделировать среду 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>
Похоже, что конечная точка облачной информации локального стека не работает должным образом. Я что-то упускаю?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Ошибка, которую вы получаете от 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 с сигналами тревоги Cloudwatch YAML, у меня работает следующая команда:
aws cloudformation create-stack --stack-name myteststack --template-body file://cloudf.yml --endpoint-url=http://localhost:4581
Если все вышеперечисленное работает и у вас все еще есть проблемы с шаблоном, то, по крайней мере, вы знаете, в чем проблема (и, возможно, вы можете опубликовать более подробный вывод DEBUG).