如何发布应用程序 - Amazon Serverless Application Repository
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

如何发布应用程序

本节为您提供使用 Amazon SAM CLI 或将无服务器应用程序发布到的过程。 Amazon Serverless Application Repository Amazon Web Services Management Console它还向您展示如何共享您的应用程序以允许其他人部署它,以及从 Amazon Serverless Application Repository中删除您的应用程序。

重要

您在发布应用程序时输入的信息未加密。此信息包括作者姓名等数据。如果您有不希望存储或公开的个人身份信息,我们建议您不要在发布应用程序时输入此类信息。

发布应用程序 (Amazon CLI)

向发布应用程序的最简单方法 Amazon Serverless Application Repository 是使用一组 Amazon SAM CLI 命令。有关更多信息,请参阅 Amazon Serverless Application Model (Amazon SAM) 开发者指南中的使用 Amazon SAM CLI 发布应用程序

发布新应用程序(控制台)

本节介绍如何使用 Amazon Web Services Management Console 向发布新应用程序 Amazon Serverless Application Repository。有关发布现有应用程序的新版本的说明,请参阅发布现有应用程序的新版本

先决条件

在将应用程序发布到之前 Amazon Serverless Application Repository,您需要满足以下条件:

  • 有效的 Amazon 账户。

  • 定义所用 Amazon 资源的有效 Amazon Serverless Application Model (Amazon SAM) 模板。有关 Amazon SAM 模板的更多信息,请参阅Amazon SAM 模板基础知识

  • 您使用 Amazon CloudFormation package命令为应用程序创建的软件包 Amazon CLI。此命令打包您的 Amazon SAM 模板引用的本地工件(本地路径)。有关更多详细信息,请参阅 Amazon CloudFormation 文档中的软件包

  • 指向应用程序源代码的 URL(如果您需要公开发布应用程序)。

  • 一个 readme.txt 文件。此文件应描述客户如何使用您的应用程序,以及如何在将其部署到自己的 Amazon 账户中之前对其进行配置。

  • 来自 SPDX 网站的 license.txt 文件或有效的许可证标识符。请注意,只有当您想要公开共享您的应用程序时,才需要许可证。如果您要将应用程序保持为私有或仅私下共享,则无需指定许可证。

  • 有效的 Amazon S3 存储桶策略,用于向服务授予在您打包应用程序时上传到 Amazon S3 的项目的读取权限。要设置此策略,请按照下列步骤操作:

    1. 打开 Amazon S3 控制台,网址为 https://console.aws.amazon.com/s3/

    2. 选择用于打包您的应用程序的 Amazon S3 存储桶。

    3. 选择权限选项卡。

    4. 选择存储桶策略按钮。

    5. 将以下策略语句粘贴到 Bucket policy editor (存储桶策略编辑器) 中。请务必在元素中替换您的存储桶名称,在Resource元素中替换您的 Amazon 账户 ID。ConditionCondition元素中的表达式确保 Amazon Serverless Application Repository 只有从指定 Amazon 账户访问应用程序的权限。有关策略声明的更多信息,请参阅《IAM 用户指南》中的 IAM JSON 策略元素参考

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "serverlessrepo.amazonaws.com" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::bucketname/*", "Condition" : { "StringEquals": { "aws:SourceAccount": "123456789012" } } } ] }
    6. 选择保存按钮。

过程

使用以下步骤在 Amazon Serverless Application Repository 中创建新应用程序。

要在中创建新应用程序 Amazon Serverless Application Repository
  1. 打开 Amazon Serverless Application Repository 控制台并选择 Publish applications (发布应用程序)

  2. Publish an application (发布应用程序) 页面上,输入以下应用程序信息,然后选择 Publish application (发布应用程序)

    属性 必需 描述
    应用程序名称 TRUE

    应用程序的名称。

    最小长度 = 1。最大长度 = 140。

    模式:"[a-zA-Z0-9\\-]+";

    作者 TRUE

    发布应用程序的作者的姓名。

    最小长度 = 1。最大长度 = 127。

    模式:"^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$";

    主页 FALSE 包含有关应用程序的更多信息的 URL,例如应用程序 GitHub 存储库的位置。
    描述 TRUE

    关于应用程序的描述。

    最小长度 = 1。最大长度 = 256。

    标签 FALSE

    改善在搜索中发现应用程序的结果的标签。

    最小长度 = 1。最大长度 = 127。最大标签数量:10。

    模式:"^[a-zA-Z0-9+\\-_:\\/@]+$";

    Spdx 许可证(下拉列表) FALSE 从下拉列表中选择包含 SPDX 网站上可用的许可证的有效许可证标识符。在下拉列表中选择一个项目将填充其下方的 License (许可证) 文本框。注意:在下拉列表中选择许可证将替换 License (许可证) 文本框中的内容,并放弃您所做的任何手动编辑。
    许可证 FALSE

    上传 .txt 许可证文件,或从上一行中描述的 Spdx license (Spdx 许可证) 下拉菜单中选择一个许可证。从 Spdx license (Spdx 许可证) 下拉列表中选择许可证会自动填充 License (许可证) 文本框。上传许可证文件或从 Spdx license (Spdx 许可证) 下拉菜单中选择一个许可证文件后,您可以手动编辑此文本框的内容。但是,如果从下拉列表中选择了另一个 Spdx license (Spdx 许可证) ,则会丢弃您所做的任何手动编辑。

    这是一个可选字段,但您必须提供许可证才能公开共享应用程序。

    Readme (自述文件) FALSE

    上传自述文件的内容,该文件可以是文本或记录格式。这些内容显示在 Amazon Serverless Application Repository中应用程序的详细信息页面上。上传文件后,您可以手动编辑此文本框的内容。

    Semantic version FALSE

    应用程序的语义版本。有关更多信息,请参阅语义版本控制网站

    您必须为此属性提供一个值,才能使您的应用程序变为公有的。

    Source code Url (源代码 Url) FALSE 指向应用程序源代码的公共存储库的链接。
    SAM 模板 TRUE

    定义所用 Amazon 资源的有效 Amazon Serverless Application Model (Amazon SAM) 模板。

共享应用程序

已发布的应用程序可能已设置以下三个类别之一的权限:

  • 私有(默认)-使用同一账户创建且未与任何其他 Amazon 账户共享的应用程序。只有共享您 Amazon 账户的消费者才有权部署私有应用程序。

  • 私下共享 — 发布者已明确与一组特定 Amazon 帐户或 Amazon 组织中的 Amazon 帐户共享的应用程序。消费者有权部署已与其 Amazon 账户或 Amazon 组织共享的应用程序。有关的更多信息 Amazon Organizations,请参阅《Amazon Organizations 用户指南》

  • 公开共享-发布者与所有人共享的应用程序。所有使用者都有权部署任何公开共享的应用程序。

将应用程序发布到后 Amazon Serverless Application Repository,该应用程序默认设置为私有。本节向您展示如何与特定 Amazon 账户或 Amazon 组织私下共享应用程序,或者如何与所有人公开共享应用程序。

通过控制台共享应用程序

您可以通过两种方式与他人共享您的应用程序:1) 与特定 Amazon 账户或 Amazon 组织内的 Amazon 账户共享,或者 2) 与所有人公开共享。有关的更多信息 Amazon Organizations,请参阅《Amazon Organizations 用户指南》

选项 1:与 Amazon 组织内的特定 Amazon 账户或账户共享您的应用程序
  1. 打开 Amazon Serverless Application Repository 管理控制台

  2. 在导航窗格上,选择 Published Applications (已发布的应用程序),以显示您已创建的应用程序的列表。

  3. 选择要共享的应用程序。

  4. 选择 Sharing (共享) 选项卡。

  5. Application policy statements (应用程序策略语句) 部分中,选择 Create Statement (创建语句) 按钮。

  6. Statement Configuration (语句配置) 窗口中,根据您希望共享应用程序的方式填写各个字段。

    注意

    如果您与组织共享,则只能指定您的 Amazon 账户所属的组织。如果您尝试指定一个您不是其成员的 Amazon 组织,则会出现错误。

    要与您的 Amazon 组织共享您的申请,您必须确认该UnshareApplication操作将添加到您的政策声明中,以防将来需要撤销共享。

  7. 选择保存按钮。

选项 2:与所有人公开共享您的应用程序
  1. 打开 Amazon Serverless Application Repository 管理控制台

  2. 在导航窗格上,选择 Published Applications (已发布的应用程序),以显示您已创建的应用程序的列表。

  3. 选择要共享的应用程序。

  4. 选择 Sharing (共享) 选项卡。

  5. Public Sharing (公开共享) 部分,选择 Edit (编辑) 按钮。

  6. Public sharing (公开共享) 下,选择 Enabled (已启用) 单选按钮。

  7. 在文本框中键入应用程序的名称,然后选择 Save (保存) 按钮。

注意

要公开共享应用程序,它必须同时设置了 SemanticVersionLicenseUrl 属性。

通过 Amazon CLI共享应用程序

要使用共享应用程序, Amazon CLI 您可以使用put-application-policy命令授予权限,指定要与之共享的 Amazon 账户作为委托人。

有关使用 Amazon CLI 共享应用程序的更多信息,请参阅Amazon Serverless Application Repository 应用程序策略示例

取消共享应用程序

取消与 Amazon 组织共享应用程序的选项有两种:

  1. 应用程序的发布者可以使用 put-application-policy 命令删除权限。

  2. 来自组织管理账户的用户可以对与该 Amazon 组织共享的任何应用程序执行取消共享应用程序操作,即使该应用程序是由其他账户的用户发布的。

    注意

    当通过 “取消共享应用程序” 操作取消与 Amazon 组织共享应用程序时,该应用程序将无法再次与 Amazon 组织共享。

    有关的更多信息 Amazon Organizations,请参阅《Amazon Organizations 用户指南》

发布者删除权限

发布者通过控制台删除权限

要通过取消共享应用程序 Amazon Web Services Management Console,请删除与其他 Amazon 账户共享该应用程序的政策声明。为此,请按照以下步骤操作:

  1. 打开 Amazon Serverless Application Repository 管理控制台

  2. 在左侧导航窗格中,选择 Available Applications (可用的应用程序)

  3. 选择要取消共享的应用程序。

  4. 选择 Sharing (共享) 选项卡。

  5. Application policy statements (应用程序策略语句) 部分中,选择与要取消共享的账户共享应用程序的策略语句。

  6. 选择删除

  7. 此时会显示确认消息。再次选择删除

发布者通过删除权限 Amazon CLI

要通过取消共享应用程序 Amazon CLI,发布者可以使用put-application-policy命令移除或以其他方式更改权限,将该应用程序设为私有,或者与其他 Amazon 账户组共享。

有关使用 Amazon CLI 更改权限的更多信息,请参阅Amazon Serverless Application Repository 应用程序策略示例

管理账号取消共享应用程序

管理账号通过控制台取消与 Amazon 组织共享的应用程序

要通过取消共享 Amazon 组织中的应用程序 Amazon Web Services Management Console,管理账户中的用户可以执行以下操作:

  1. 打开 Amazon Serverless Application Repository 管理控制台

  2. 在左侧导航窗格中,选择 Available Applications (可用的应用程序)

  3. 在应用程序的磁贴中,选择 Unshare (取消共享)

  4. 在取消共享消息框中,通过输入组织 ID 和应用程序名称,然后选择 Save (保存),以确认您要取消共享应用程序。

管理账户取消与 Amazon 组织共享应用程序的权限 Amazon CLI

要取消与 Amazon 组织的共享应用程序,管理账户中的用户可以运行该aws serverlessrepo unshare-application命令。

以下命令从 Amazon 组织取消共享应用程序,其中application-id是应用程序的 Amazon 资源名称 (ARN)organization-id,也是 Amazon 组织 ID:

aws serverlessrepo unshare-application --application-id application-id --organization-id organization-id

删除应用程序

您可以使用 Amazon Web Services Management Console 或 Amazon SAM CLI 从中删除应用程序。 Amazon Serverless Application Repository

删除应用程序(控制台)

要通过删除已发布的应用程序 Amazon Web Services Management Console,请执行以下操作。

  1. 打开 Amazon Serverless Application Repository 管理控制台

  2. 对于 My Applications (我的应用程序),请选择要删除的应用程序。

  3. 在应用程序的详细信息页面中,选择 Delete application (删除应用程序)

  4. 选择 Delete application (删除应用程序) 来完成删除。

删除应用程序 (Amazon CLI)

要使用删除已发布的应用程序 Amazon CLI,请运行aws serverlessrepo delete-application命令。

以下命令删除应用程序,其中 application-id 是应用程序的 Amazon 资源名称 (ARN):

aws serverlessrepo delete-application --application-id application-id