Создание пользовательской платформы на основе ошибки упаковщика ElasticBeanstalk

Я пытаюсь создать собственную платформу, используя предоставленный пример (NodePlatform_Ubuntu) по адресу http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/custom-platforms.html#custom-platforms-pda.

Я установил EB CLI (моя ОС - MacOSX El Captain):

➜  custom-platform ebp --version 
EB CLI 3.10.1 (Python 2.7.1)

По какой-то причине EB CLI настаивает на использовании Python 2.7.1 вместо уже установленного Python 3.x (команда python3 работает), но это не имеет значения согласно http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3-install.html поддерживает Python 2.7

Пока "ebp init" работает отлично. "ebp create" не работает.

➜  custom-platform ebp create
Creating application version archive "app-170427_145319".
Uploading custom-platform/app-170427_145319.zip to S3. This may take a while.
Upload Complete.
Note: An environment called 'eb-custom-platform-builder-packer' has been created in order to build your application. This environment will not automatically be terminated and it does have a cost associated with it. Once your platform creation has completed you can terminate this builder environment using the command 'eb terminate'.
INFO: createPlatform is starting.
INFO: Initiated platform version creation for 'custom-platform/1.0.2'.
INFO: Creating Packer builder environment 'eb-custom-platform-builder-packer'.
ERROR: Packer environment eb-custom-platform-builder-packer is not available, current status: terminated.
INFO: Failed to create platform version 'custom-platform/1.0.2'.

Это ошибка:

ERROR: Packer environment eb-custom-platform-builder-packer is not available, current status: terminated.

Дополнительные журналы (режим отладки):

2017-04-27 14:19:55,698 (DEBUG) ebcli.lib.aws : Response: {u'Events': [{u'PlatformArn': 'arn:aws:elasticbeanstalk:us-west-2:107875334514:platform/custom-platform/1.0.1', u'Message': "Failed to create platform version 'custom-platform/1.0.1'.", u'Severity': 'INFO', u'EventDate': datetime.datetime(2017, 4, 27, 11, 19, 52, 84000, tzinfo=tzutc()), u'RequestId': 'f762956d-2b3a-11e7-8cd7-c96ae1e26915'}, {u'PlatformArn': 'arn:aws:elasticbeanstalk:us-west-2:107875334514:platform/custom-platform/1.0.1', u'Message': 'Packer environment eb-custom-platform-builder-packer is not available, current status: terminated.', u'Severity': 'ERROR', u'EventDate': datetime.datetime(2017, 4, 27, 11, 19, 51, 861000, tzinfo=tzutc()), u'RequestId': 'f762956d-2b3a-11e7-8cd7-c96ae1e26915'}], 'ResponseMetadata': {'date': 'Thu, 27 Apr 2017 11:19:52 GMT', 'RetryAttempts': 0, 'HTTPStatusCode': 200, 'RequestId': '6f7dcea9-2b3b-11e7-8cd7-c96ae1e26915'}}
ERROR: Packer environment eb-custom-platform-builder-packer is not available, current status: terminated.
INFO: Failed to create platform version 'custom-platform/1.0.1'.

Обратите внимание, что файл app-170427_145319.zip успешно загружен в S3.

Есть идеи, что случилось?


person Nizar Blond    schedule 27.04.2017    source источник


Ответы (1)


Произошел сбой с профилем экземпляра (ролью) aws-elasticbeanstalk-custom-platform-ec2-role, который не получал необходимую встроенную политику роли, прикрепленную к нему.

Из-за множества модификаций и изменений, по-видимому, из-за ошибки интерфейса командной строки EB, профиль экземпляра был поврежден и не принимал InstanceProfile ARN при попытке создать профиль с тем же именем «aws-elasticbeanstalk-custom- платформа-ec2-роль ".

Итак, мы пошли дальше и создали новую платформу под названием «custom-platform» и приложили необходимые разрешения встроенной политики, о которых я упоминал в этом случае.

После того, как эти проблемы с IAM будут отсортированы, мы перешли к пакету упаковщика, выполнили «ebp init», а затем запустили «ebp create», но с флагом -ip, и использовали настраиваемую платформу этого профиля экземпляра, как в

ebp create -ip custom-platform
person Nizar Blond    schedule 01.05.2017