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

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

如何发布应用程序

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

重要

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

发布应用程序 (Amazon CLI)

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

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

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

先决条件

在将应用程序发布到 Amazon Serverless Application Repository 之前,您需要以下内容:

  • 一个有效的Amazonaccount.

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

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

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

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

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

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

    1. 通过以下网址打开 Simple Storage Service(Amazon S3)控制台:https://console.aws.amazon.com/s3/

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

    3. 请选择 Permissions 选项卡。

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

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

      { "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 (许可证) 文本框。注意:在下拉列表中选择许可证将替换许可证文本框,并放弃您所做的任何手动编辑。
    许可证 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 template (SAM 模板) TRUE

    一个有效的Amazon Serverless Application Model(Amazon SAM) 定义Amazon使用的资源。

共享应用程序

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

  • 私有(默认)— 使用同一账户创建但尚未与任何其他任何其他账户共享的应用程序Amazonaccount. 只有分享你的消费者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如果将来需要撤销共享,操作将添加到您的策略语句中 future

  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要以委托人身份共享的账户。

有关使用共享应用程序的更多信息AmazonCLI,请参阅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. 请选择 Delete(删除)。

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

发布者通过 Amazon CLI 删除权限

要通过取消共享应用程序Amazon CLI,出版商可以使用put-application-policy命令将应用程序设为私有,或与另一组Amazon账户。

有关使用更改权限的更多信息AmazonCLI,请参阅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组织,哪里应用程序 ID是应用程序的 Amazon 资源名称 (ARN),并且组织编号是Amazon组织编号:

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