#amazon-cloudformation #aws-cli #localstack
#amazon-cloudformation #aws-cli #localstack
Вопрос:
Я хочу использовать AWS CLI для развертывания стека CloudFormation в локальном экземпляре localstack, размещенном на docker:
aws cloudformation deploy --endpoint http://localhost:4566 --stack-name localBootstrap --template-file localstack-bootstrap-cf.yaml --no-fail-on-empty-changeset
Я бы хотел, чтобы это было повторяемо, т.е.:
- Создайте стек, если он не существует
- обновите его, если я изменю файл yaml
- Ничего не делайте, если стек существует, а файл не изменился
Последний сценарий меня подводит, т. Е. Я ожидаю --no-fail-on-empty-changeset
, что он будет работать в этом случае, но если я воссоздам свой образ docker, а затем дважды подряд выполню вышеуказанную команду, первый запуск работает так, как ожидалось, но при втором запуске я получаю следующий сбой в журналах docker:
2021-12-09T13:29:03.362:DEBUG:localstack.services.cloudformation.cloudformation_api: Executing change set "arn:aws:cloudformation:eu-west-1:000000000000:changeSet/awscli-cloudformation-package-deploy-1639056542/ee700101" for stack "localBootstrap" with 2 resources ...
2021-12-09T13:29:03.363:INFO:localstack.utils.cloudformation.template_deployer: Unable to apply change set awscli-cloudformation-package-deploy-1639056542: No updates are to be performed.
И следующая ошибка в моем CLI:
Unable to parse response (syntax error: line 1, column 54), invalid XML received. Further retries may succeed:
b'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">n<title>500 Internal Server Error</title>n<h1>Internal Server Error</h1>n<p>The server encountered an internal error and was unable to complete your request. Either the ser
ver is overloaded or there is an error in the application.</p>n'
На стороне localstack это похоже на проблему, которая ранее поднималась и, по-видимому, исправлена: https://github.com/localstack/localstack/issues/2444
Я использую localstack/localstack:latest
(версию 0.13.1) и последнюю версию AWS CLI 2 (2.4.5.0). Исключение, похоже, выдается здесь, в кодовой базе localstack.
Это ожидаемое поведение? Это сбой localstack или сбой AWS CLI?