- Конфигурация Serverless›
- Репозиторий бессерверных приложений›
- Вопросы, ответы и условия
Репозиторий бессерверных приложений: термины, вопросы и ответы
Темы страниц
Общие вопросыОбщие вопросы
Что такое бессерверные приложения?
Бессерверные приложения устраняют необходимость в выделении, развертывании серверов или других инфраструктур, а также в управлении ими. Они по умолчанию характеризуются высокой доступностью и способны масштабироваться непрерывно и автоматически. Для создания и запуска бессерверных приложений можно использовать один из множества полностью управляемых сервисов AWS, в том числе AWS Lambda для вычислений, Amazon API Gateway для API и Amazon DynamoDB для баз данных.
Что такое AWS Serverless Application Repository?
AWS Serverless Application Repository предлагает постоянно растущую подборку бессерверных приложений, опубликованных AWS, другими разработчикам и партнерами AWS. AWS Serverless Application Repository упрощает развертывание приложений для распространенных примеров использования, таких как мобильные и веб-серверы, обработка потоковых данных, машинное обучение и многое другое, и это позволяет быстро начать работу с платформой бессерверных вычислений AWS.
В каких регионах доступен AWS Serverless Application Repository?
В настоящее время сервис доступен в следующих регионах: Восток США (Огайо), Восток США (Сев. Вирджиния), Запад США (Сев. Калифорния), Запад США (Орегон), Азия и Тихий океан (Токио), Азия и Тихий океан (Сеул), Азия и Тихий океан (Мумбаи), Азия и Тихий океан (Сингапур), Азия и Тихий океан (Сидней), Канада (Центр), ЕС (Франкфурт), ЕС (Ирландия), ЕС (Лондон) и Южная Америка (Сан-Паулу).
Какие приложения доступны в AWS Serverless Application Repository?
AWS Serverless Application Repository предлагает приложения для навыков Alexa, чатботов, обработки данных, Интернета вещей, обработки потоковых данных в режиме реального времени, мобильных и веб-серверов, анализа тенденций в социальных сетях, адаптации размеров изображений и другие варианты различных издателей на AWS.
Взимается ли плата за использование AWS Serverless Application Repository?
Просматривать, развертывать и публиковать приложения в AWS Serverless Application Repository можно бесплатно. Плата за ресурсы приложений, которые вы развертываете, взимается в соответствии со стандартными тарифами AWS.
Каким образом лицензируются приложения в AWS Serverless Application Repository?
Приложения, предоставляемые AWS, доступны по лицензии MIT для приложений с открытым исходным кодом, а приложения, опубликованные другими издателями, предоставляются по одной или нескольким лицензиям для приложений с открытым исходным кодом, утвержденным организацией Open Source Initiative (OSI). Сведения о лицензии можно посмотреть на соответствующей вкладке в описании приложения на веб-сайте AWS.
Проверяет ли AWS приложения в AWS Serverless Application Repository?
Все приложения, изданные AWS, проверяются на соответствие лицензии и качество кода. Приложения, размещенные сторонними издателями, проверяются на правильное использование разрешений, чтобы клиенты знали, к каким ресурсам приложение может получить доступ и какие ресурсы может изменить. Прежде чем использовать приложение, можно просмотреть эти сведения, а также узнать, сколько раз его развертывали другие клиенты AWS.
Можно ли использовать AWS Serverless Application Repository одновременно с GitHub?
Да. AWS Serverless Application Repository позволяет разработчикам публиковать бессерверные приложения, разработанные в репозитории GitHub. При использовании AWS CodePipeline для связи между исходным кодом GitHub и Репозиторием бессерверных приложений AWS процесс публикации упрощается, а его настройка занимает считаные минуты.
Развертывание приложений
Каким образом осуществляется управление бессерверными приложениями, развертывание которых выполнено в аккаунте?
Бессерверные приложения развертываются как стеки AWS CloudFormation, что упрощает управление приложением как единым целым. Всем ресурсам в качестве тега присваивается заданное для приложения уникальное имя ресурса Amazon (ARN), с помощью которого можно искать ресурсы в консоли AWS Tag Editor. Для отдельного управления каждым ресурсом можно также использовать существующие инструменты AWS и сторонних поставщиков.
Публикация приложений
Как опубликовать бессерверное приложение в AWS Serverless Application Repository?
Чтобы опубликовать бессерверное приложение, необходимо описать его в формате модели AWS Serverless Application Model (SAM), упаковать с помощью интерфейса командной строки AWS и опубликовать с помощью Консоли управления AWS, интерфейса командной строки AWS или AWS SDK. Для публикации требуется действительный аккаунт AWS. Кроме того, для приложения потребуется предоставить название, описание, ссылку на исходный код и файл LICENSE.txt. Приложения, предназначенные для использования всеми клиентами AWS, должны быть опубликованы в регионе Восток США (Сев. Вирджиния) или в регионе Восток США (Огайо).
Кто может развертывать приложения, которые опубликованы в AWS Serverless Application Repository?
Возможность поиска и развертывания приложений из репозитория находится под контролем их издателей. Доступ можно открыть только для своих сотрудников (группы, использующей один аккаунт AWS), для других указанных аккаунтов или для всех пользователей AWS. Для получения дополнительной информации о разрешениях и видимости публикуемых приложений изучите документацию по политикам на основе ресурсов.
Можно ли взимать плату за бессерверные приложения, которые я публикую?
Если вы хотите взимать плату за использование бессерверного приложения, можно включить AWS Lambda за шлюзом Amazon API Gateway, а затем продавать API как продукт SaaS через AWS Marketplace. Для получения дополнительной информации ознакомьтесь с шагами, которые необходимо выполнить для размещения продукта на AWS Marketplace и для монетизации API с помощью API Gateway.
Использование вложенных приложений
Что такое вложенное приложение?
Вложенное бессерверное приложение – это компонент, развертываемый как часть другого бессерверного приложения. По мере роста бессерверных архитектур в различных шаблонах приложений выявляются типовые решения, в которых определены одни и те же компоненты. Теперь можно отделить типовые решения как специальные приложения и затем использовать их как часть новых или существующих шаблонов приложений.
Как развертываются вложенные приложения?
Вложенные приложения развертываются как вложенные стеки AWS CloudFormation.
Как включить вложенное приложение в состав шаблона SAM?
Чтобы добавить приложения, разработанные вами локально, или приложения, которыми с вами поделились через репозиторий Serverless Application Repository, используйте тип ресурса AWS:Serverless:Application. Определить входные данные для вложенного приложения или ожидаемые выходные значения можно с помощью простого синтаксиса AWS SAM. Подробнее см. в документации.
Как обрабатывать конфликты по совпадению имен ресурсов при использовании вложенных приложений?
Присвойте уникальное имя каждому вложенному приложению в шаблоне SAM. Ресурсы, созданные вложенным приложением, будут содержать его уникальное имя.
Как упаковать вложенное приложение?
Для упаковки вложенного приложения используйте команду sam package в интерфейсе командной строки SAM. Опубликуйте упакованное приложение в репозитории Serverless Application Repository с помощью интерфейсов API или AWS SDK. Для немедленного развертывания приложения используйте команду sam deploy в интерфейсе командной строки SAM.
Можно ли упаковать иерархию вложенных приложений с помощью интерфейса командной строки SAM?
Да. Команда sam package в интерфейсе командной строки SAM рекурсивно упаковывает иерархию вложенных приложений. Максимальное количество приложений, вложенных в один шаблон приложения верхнего уровня, равно 199.
Применение вложенных приложений
Каким образом осуществляется управление бессерверными приложениями, развертывание которых выполнено в аккаунте?
Бессерверные приложения развертываются как стеки AWS CloudFormation, что упрощает управление приложением как единым целым. Всем ресурсам в качестве тега присваивается заданное для приложения уникальное имя ресурса Amazon (ARN), с помощью которого можно искать ресурсы в консоли AWS Tag Editor. Для отдельного управления каждым ресурсом можно также использовать существующие инструменты AWS и сторонних поставщиков.
Как вложить приложения, которыми со мной поделились через репозиторий Serverless Application Repository?
Настройте ресурс SAM, указав тип AWS:Serverless:Application и имя ARN приложения, а также все необходимые приложению входные параметры. Подробнее см. в документации.
Как упаковать вложенное приложение из Репозитория бессерверных приложений?
Вложенные приложения из Serverless Application Repository уже упакованы и готовы к использованию. Перед развертыванием приложения в своем аккаунте убедитесь, что вложенные приложения по‑прежнему вам доступны, воспользовавшись командой sam package в интерфейсе командной строки SAM.
Что произойдет, если вложенное приложение станет недоступно?
Если приложения, которые вы вложили, будут удалены или станут недоступны, это никак не повлияет на существующие развертывания вашего приложения. Если вы попытаетесь выполнить новое развертывание приложения с зависимостями, которые больше не существуют, вам потребуется обновить свое приложение.
Как узнать, содержит ли приложение другие вложенные приложения?
Приложения, содержащие одно или несколько вложенных приложений, используют параметр CAPABILITY_AUTO_EXPAND.
Публикация вложенных приложений
Можно ли публиковать вложенные приложения в Serverless Application Repository?
Да. Публикация вложенных приложений в Serverless Application Repository ничем не отличается от публикации отдельных приложений. Для публикации вложенных приложений можно использовать консоль AWS, интерфейс командной строки AWS, интерфейс командной строки SAM либо интерфейсы API сервиса Serverless Application Repository.
Предоставление доступа к вложенным приложениям
Как предоставить доступ к приложению, содержащему вложенные приложения?
Бессерверные приложения следуют той же модели, которая используется функциями Lambda. Доступом к бессерверным приложениям в Репозитории бессерверных приложений можно управлять с помощью политик AWS IAM на основе ресурсов. Эти политики позволяют настроить доступ к приложению: частный, для нескольких аккаунтов или публичный.
Каким образом предоставляется доступ при наличии иерархии вложенных приложений?
Если применяется иерархия вложенных приложений, то аккаунту AWS, которому предоставляется доступ к приложению верхнего уровня, должны быть доступны все вложенные приложения.
Предоставление общего доступа к приложениям
Можно ли поделиться приложениями со всеми аккаунтами, которые принадлежат организации AWS?
Да. Поделиться приложением можно со всеми аккаунтами, которые принадлежат организации AWS. Бессерверные приложения используют ту же модель, что и функции Lambda. Доступом к бессерверным приложениям в репозитории AWS Serverless Application Repository можно управлять с помощью политик AWS IAM на основе ресурсов. Политики можно использовать для настройки следующих вариантов доступа к приложению: частный, публичный, для нескольких аккаунтов или организации. Подробнее о политиках на основе ресурсов для бессерверных приложений см. здесь.
Как обновить политики на основе ресурсов, чтобы поделиться приложением с организацией AWS?
Сначала найдите приложение в консоли AWS Serverless Application Repository, перейдите на вкладку Share (Поделиться) и затем нажмите Create Statement (Создать выражение). Здесь вы можете добавить принципала организации AWS, чтобы предоставить этой организации доступ к приложению. Кроме того, для обновления политик на основе ресурсов и совместного доступа к приложениям в организации можно использовать API репозитория AWS Serverless Application Repository. Подробнее о политиках на основе ресурсов см. в документации здесь.
Можно ли поделиться приложением с множеством организаций AWS?
Нет. Вы можете поделиться приложением только с теми аккаунтами, которые принадлежат той же организации AWS, что и ваш аккаунт.
Можно ли поделиться приложением с определенным подразделением внутри моей организации?
Предоставление доступа к приложениям в рамках организационного подразделения не поддерживается. Политики можно использовать для настройки следующих вариантов доступа к приложению: частный, публичный, для нескольких аккаунтов или организации.
Можно ли поделиться приложением с определенными аккаунтами в организации?
Чтобы поделиться приложением с определенными аккаунтами в организации, нужно просто обновить политику на основе ресурсов, включив в нее необходимые аккаунты AWS и идентификатор организации AWS.
Можно ли изменить разрешения для организации таким образом, чтобы входящие в нее аккаунты могли только просматривать приложение?
Да. В политике на основе ресурсов можно задать специальные действия. Они будут ограничивать типы операций, которые могут выполнять пользователи с доступом к приложению. Обновление политики на основе ресурсов можно выполнить через API репозитория AWS Serverless Application Repository и консоль. Подробнее о действиях, которые можно задать в политиках на основе ресурсов, см. в документации здесь.
Условия использования
Условия использования
1. Издатели, являющиеся клиентами AWS, могут предоставлять доступ к своим бессерверным приложениям и компонентам AWS («бессерверные приложения AWS») через AWS Serverless Application Repository («репозиторий») либо частным образом (нескольким конкретным аккаунтам AWS), либо всем клиентам AWS, использующим репозиторий в соответствии с процессом публикации в консоли репозитория. Бессерверные приложения AWS, к которым доступ предоставляется частным образом либо для нескольких конкретных аккаунтов AWS, могут храниться как двоичный код или исходный код; бессерверные приложения AWS, к которым могут получить доступ все клиенты AWS, могут храниться как двоичный код или исходный код и должны содержать достаточно сведений для доступа пользователей к исходному коду.
2. Для отправки своих бессерверных приложений AWS в репозиторий издатели должны обладать всеми лицензиями и необходимыми разрешениями или правами. Наряду с бессерверным приложением AWS издатель также обязан отправить в репозиторий условия лицензий, по которым доступно бессерверное приложение AWS, в том числе все требования лицензий для приложений с открытым исходным кодом. Издатель несет ответственность за проверку, оценку и тестирование любого бессерверного приложения AWS до отправки его в репозиторий.
3. Издатель настоящим дает AWS и ее дочерним организациям права на воспроизведение, распространение, предоставление публичного или ограниченного конкретными аккаунтами AWS доступа (в зависимости от настроек), выполнение, передачу, использование и представление в цифровом виде (любым из способов электронного и онлайн‑распространения) бессерверных приложений AWS, размещенных в репозитории.
4. Издатель заявляет и гарантирует, что обладает всеми правами на отправку бессерверного приложения AWS в репозиторий, всеми правами на разрешение загрузки бессерверного приложения AWS из репозитория, а также предоставил все требуемые свидетельства об авторских правах. Издатель обязуется не публиковать бессерверные приложения AWS, содержащие вредоносное ПО или вредоносный контент с намерением или целью нанести ущерб другим пользователям. AWS может по своему усмотрению удалять или отключать бессерверные приложения AWS по этой или любой другой причине.
5. Клиенты AWS обязуются соблюдать условия лицензий (в том числе все авторские права или другие требования) для любого бессерверного приложения AWS, которое они загружают из репозитория.
6. Любой клиент AWS, создающий приложение на основе какого‑либо бессерверного приложения AWS, несет ответственность за определение, обладает ли он достаточным правом на это в соответствии с лицензиями, по которым доступно бессерверное приложение AWS, и обязуется соблюдать все авторские права или другие требования.
7. Все лицензии на бессерверные приложения AWS или другие соглашения издателя определяют отношения исключительно между издателем и клиентами AWS. Ни AWS, ни какая‑либо из ее дочерних организаций не являются частью этой лицензии или другого соглашения, и ни одна из них не несет ответственности и обязательств в соответствии с этой лицензией или другим соглашением. AWS не несет ответственности за соблюдение издателями или клиентами AWS условий лицензии (включая авторские права) или других требований.
8. Бессерверные приложения AWS и любые другие материалы сторонних поставщиков, доступные в репозитории, являются «контентом репозитория». Контент репозитория ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ‑ЛИБО ГАРАНТИЙ, ВЫРАЖЕННЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, В ТОМ ЧИСЛЕ – НО НЕ ТОЛЬКО – ГАРАНТИЙ ТОРГОВОЙ ПРИГОДНОСТИ, СООТВЕТСТВИЯ КОНКРЕТНОЙ ЦЕЛИ И СОБЛЮДЕНИЯ ПРАВ ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ. НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ИЗДАТЕЛИ, ВЛАДЕЛЬЦЫ АВТОРСКИХ ПРАВ, AWS ИЛИ ЕЕ ДОЧЕРНИЕ ОРГАНИЗАЦИИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЕТЕНЗИИ, УЩЕРБ ИЛИ ДРУГИЕ УБЫТКИ, ВОЗНИКШИЕ ИЗ ИЛИ КАСАЮЩИЕСЯ контента репозитория В СВЯЗИ С НАРУШЕНИЕМ КОНТРАКТА, ПРАВОНАРУШЕНИЕМ ИЛИ КАКИМ-ЛИБО ИНЫМ ОБРАЗОМ, А ТАКЖЕ В СВЯЗИ С ИСПОЛЬЗОВАНИЕМ ИЛИ ЛЮБЫМИ ДРУГИМИ ДЕЙСТВИЯМИ В ОТНОШЕНИИ контента репозитория.
9. Издатели и клиенты AWS при использовании репозитория подтверждают свое согласие с этими условиями, а также с тем, что AWS может время от времени обновлять эти условия.