AWS Marketplace
针对 AWS Marketplace 提供商的用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

发布容器产品

AWS Marketplace 支持两种类型的容器产品。首先,它支持将一组容器作为交付选项 的产品。这意味着产品包含一个或多个可在任何标准容器运行时上启动的容器映像,或付费产品包含一个或多个只能在 Amazon ECS 上启动的容器映像。这些是新产品,不同于您目前可以通过 AWS Marketplace 发布的任何产品,即使容器映像等效于您的产品的 AMI 版本。其次,它支持使用基于容器的代理的新的或现有的 SaaS 产品将代理作为单独产品发布。客户可以在 Amazon ECS 控制台中或在 AWS Marketplace 网站上浏览或搜索容器产品时找到此类产品。要实现此方案,您不必修改现有的 SaaS 产品,但需要为容器代理创建单独的列表。

服务器容器产品

产品包含一个或多个容器映像及关联的元数据。您需要提交至少一组容器映像作为您的产品的交付选项。通过搜索在 Delivery Method 下具有 Container (容器) 交付选项的产品,客户在 AWS Marketplace 目录中找到您的产品。服务器产品的其他交付方式包括 Amazon Machine Image (Amazon 系统映像)Private Image Build (私有映像生成)AWS CloudFormation Stack (AWS CloudFormation 堆栈)。例如,您可能提交两个容器映像作为要用于 Amazon ECS 的交付选项:一个用于产品,另一个用于支持数据库。类似地,您可能提交另一组容器映像作为要用于 Amazon EKS 的交付选项。

AWS Marketplace 将代表交付选项的每组容器映像视为容器组,并且 AWS Marketplace 会为其提供容器组 ID,在扫描您的映像后会将该 ID 发送给您。

要创建容器产品,请登录到 AWS Marketplace Management Portal,然后选择 Containers (容器)。您将创建新的容器产品,并且必须定义至少一个容器组。对于每个容器组,提供组成您的产品的容器映像的链接。链接可以是 Docker Hub 上的公有外部存储库的名称或私有存储库(如 Amazon ECR)的 URL。

例如,可以使用以下任一格式作为指向您的映像的指针:

  • nginx:mytag

  • 123456789012.dkr.ecr.us-west-2.amazonaws.com/nginx:mytag

在您提交每个容器映像 URL 后,我们会立即扫描它并检查是否存在安全漏洞。AWS Marketplace 容器提取过程包括映像扫描阶段,我们将检查您提供的映像是否存在已知安全漏洞。为此,我们对映像执行逐层静态扫描。如果我们发现具有可远程利用风险的关键漏洞,我们将在 AWS Marketplace Management Portal 中提供已发现的问题列表。我们强烈建议您使用容器映像扫描程序(如 Clair、Twistlock、Aqua Security 和 Trend Micro)执行自己的安全分析,以避免延迟提取和发布过程。

您为构建容器映像所选择的基本映像可对最终映像的安全配置文件产生重大影响。如果您所选取的基本映像已具有已知关键漏洞,则会因基本层而标记它们,即使应用程序软件层是干净的也是如此。我们建议您先验证是否从无漏洞的基本容器开始,然后再构建映像并将其提交到 AWS Marketplace。

扫描完成后,我们将提供容器组 ID,您需要使用它来标识与要创建的交付选项关联的映像集。您最多可为所提交的每个容器产品定义四个交付选项,并且每个集中最多可具有 50 个容器映像。

当您在 AWS Marketplace Management Portal 中创建新容器产品时,我们将提供一组产品标识符,具体为产品 ID、产品代码和公有密钥。如果您的产品是 ECS 上的付费产品或 ECS 上要跟踪其用量的免费或 BYOL 产品,这些用于将您的产品与 AWS Marketplace Metering Service 集成。

您还可提供元数据,方法是完成并提交容器产品的产品加载表单 (PLF),此格式与您可能用于将其他产品提交到 AWS Marketplace 的以前的 PLF 不同,它较短。第一组列(A 到 AJ)用于标准产品信息,如名称、描述、产品特色、产品类别、徽标图像 URL 和 EULA。下一组列(AK 到 AX)用于特定于您的第一个容器交付选项的元数据。为接下来的三个可用交付选项重复这些列(AY 到 BL、BM 到 BZ 和 CA 到 CN)。在这里,您指定交付选项的名称、提供描述以及交付选项支持哪些 AWS 服务(Amazon ECS、Amazon EKS 或 Amazon ECS 和 Amazon EKS)。您还可以指定使用说明并提供部署模板 的 URL 以支持您的交付选项。这些是特定于服务的文档,可帮助在给定运行时或协调服务上配置并启动您的产品。例如,您可能使容器产品具有两个交付选项:一个用于 Amazon ECS,另一个用于 Amazon EKS。然后,Amazon ECS 交付选项可能附带两个部署模板:一个是使产品可在 Amazon ECS 上作为可扩展的应用程序轻松启动的任务定义,另一个是包含内联任务定义和产品将使用的数据库的配置说明的 AWS CloudFormation 模板。类似地,Amazon EKS 交付选项可能只附带了一个部署模板:使产品可轻松部署到 Amazon EKS 上客户的 Kubernetes 集群的 Helm 图表。每个交付选项最多可以具有四个部署模板。

提示

在 Microsoft Excel 中查看 PLF 时,将鼠标指针悬停在每个字段上可显示注释,其中提供了有关如何填写每个字段的指导。

在 AWS Marketplace 上发布您的产品后,客户可在产品详细信息页面上查看可用的交付选项,并且在他们订阅产品并在 Configure your product (配置您的产品) 页面上选择其首选交付选项后,他们可查看指向可用部署模板的链接以及有关如何提取各个容器映像的说明。

在您已提交包含产品元数据的已完成的 PLF 并且已成功扫描您的容器映像后,AWS Marketplace 将发布您的产品。最初,已发布的产品处于受限状态,只有您的账户可以访问它。这使您能够审查列表并确保它按预期显示。在发布过程中,您的容器映像会复制到 Amazon ECR 上的 AWS Marketplace 存储库。因此,您必须更新部署模板中的引用以使其指向新映像 URL,否则您的产品可能无法按预期运行。具体而言,对于付费产品,如果容器映像 URL 不正确,客户将收到错误。

每个映像的最终 URL 将是以下格式:

mp-account-#.dkr.us-east-1.amazonaws.com/product_id/container_group_id/product_name/scan:product-version_latest

容器的 SaaS 产品

您可能想要发布与容器相关的新 SaaS 产品,或者您可能已在 AWS Marketplace 上有一个此类产品。例如,如果您的产品监控容器应用程序或为运行容器应用程序的服务器提供安全性,您可以使用 AWS Marketplace 上的现有 SaaS 产品类型。

在大多数情况下,您的产品通常会使用部署到服务器本地或作为容器映像部署的代理。为确保您的产品在客户访问 Amazon ECS 控制台或使用 AWS Marketplace 网站上的 Delivery Method (交付方式) 筛选条件来仅显示容器产品时显示,您将代理作为单独的产品发布,其中包含已在其中安装了您的代理的单个容器映像。这将是免费产品,并且您将在 PLF 中提供元数据。在 PLF 的 Usage Information (使用信息) 部分中,您提供客户必须订阅才能使用您的软件的相关 SaaS 产品的链接。客户不必订阅容器代理产品即可使用您的 SaaS 产品。但是,如果他们要在其 Amazon EKS 集群、Amazon ECS 集群或 Amazon Fargate 任务中部署容器代理,这样做会更方便。