Я создавал веб-приложение Python с помощью AWS Elastic Beanstalk, и мне было интересно, нужно ли создавать файл .ebextensions / xyz.config для использования таких ресурсов, как DynamoDB, SNS и т. д.
вот пример кода с использованием boto3, и я смог подключиться из своего веб-приложения и поместить данные в таблицу без определения каких-либо файлов конфигурации ...
db = boto3.resource('dynamodb', region_name='us-east-1')
table = db.Table('StudentInfo')
цените ваш вклад






Вы не используете необходимость .ebextensions для создания DynamoDB для работы с Beanstalk. Однако вы жестяная банка, как описано здесь. В этом примере синтаксис шаблона CloudFormation используется для указания ресурса DynamoDB. Если бы не файл .ebextensions, вы бы создали DynamoDB с помощью консоли AWS SDK / Dynamo DB и сделали бы конечную точку доступной для вашего приложения Django.
Вы можете использовать указать тему соцсети для Beanstalk для публикации событий в DynamoDB или, как в приведенном выше примере, создать его как ресурс CFN. Разница между этими двумя подходами заключается в том, что в первом случае тема SNS принадлежит среде Beanstalk, а во втором - лежащему в основе стеку CloudFormation. Если вы хотите использовать тему SNS для других целей, кроме публикации событий состояния окружающей среды, вы должны использовать второй подход. Например, чтобы интегрировать тему SNS с DynamoDB, вы должны использовать последний подход (то есть указать его как ресурс в файле ebextensions, а не как настройку параметра).
Вам нужно будет переключиться на использование ролей IAM. Узнать больше здесь.
Я предполагаю, что вы не изменили роль по умолчанию, которая назначается экземпляру Elastic Beanstalk (EB) во время создания. роль профиля экземпляра по умолчанию позволяет EB использовать другие сервисы AWS, необходимые для создания различных компонентов.
Пока вы не поймете больше об IAM, создании ролей и назначении разрешений, вы можете прикрепить управляемые разрешения AWS к этой роли для тестирования своего приложения (просто найдите Dynamo и SNS).