如何發佈應用程式 - AWS Serverless Application Repository

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

如何發佈應用程式

本節提供您使用 AWS SAM CLI 或AWS Management Console將無伺服器應用程式發佈至 AWS Serverless Application Repository 的程序。本節也會示範如何共用應用程式以允許其他人部署,以及從 AWS Serverless Application Repository 刪除您的應用程式。

重要

您在發佈應用程式時輸入的資訊不會加密。此資訊包括作者名稱等資料。如果您有可辨識個人身分的資訊不想被儲存或公開,建議您在發佈應用程式時不要輸入此資訊。

發佈應用程式 (AWS CLI)

將應用程式發佈至 AWS Serverless Application Repository 的最簡單方法,是使用一組 AWS SAM CLI 命令。如需詳細資訊,請參閱「」使用發佈應用程式AWS SAMCLI中的AWS Serverless Application Model(AWS SAM) 開發人員指南

發佈新的應用程式 (主控台)

本節說明如何使用AWS Management Console將新應用程式發佈至 AWS Serverless Application Repository。如需發佈現有應用程式新版本的指示,請參閱發佈現有應用程式的新版本

先決條件

將應用程式發佈到 AWS Serverless Application Repository 之前,您需要下列資訊:

  • 有效的AWS帳户。

  • 有效的AWS Serverless Application Model(AWS SAM)範本,其定義AWS使用的資源。如需 AWS SAM 範本的詳細資訊,請參閱 AWS SAM 範本的基本概念

  • 您使用 AWS CLI 執行 AWS CloudFormation package 命令,為您的應用程式所建立的套件。此命令會封裝您的 AWS SAM 範本所參考的本機成品 (本機路徑)。如需詳細資訊,請參閱 文件中的套件AWS CloudFormation。

  • 指向您應用程式原始碼的 URL,以免您想公開發佈您的應用程式。

  • Readme.txt 檔案。此檔案應該要描述客户如何使用您的應用程式,以及如何在將其部署到自己的AWS帳户。

  • 來自 SPDX 網站的授權 .txt 檔案或有效的授權識別碼。請注意,只有在您想要公開共用應用程式時才需要授權。如果您要將應用程式保持為私有,或僅私下共用應用程式,則不需要指定授權。

  • 有效的 Amazon S3 儲存儲體政策,授予服務對您封裝應用程式時上傳到 Amazon S3 的成品具備讀取許可。若要設定此政策,請依照下列步驟執行:

    1. 請在 https://console.aws.amazon.com/s3/ 開啟 Amazon Simple Storage Service (Amazon S3) 主控台。

    2. 選擇您用於封裝應用程式的 Amazon S3 儲存儲體。

    3. 選擇 Permissions (許可) 索引標籤。

    4. 選擇 Bucket Policy (儲存貯體政策) 按鈕。

    5. 將下列政策陳述式貼到 Bucket policy editor (儲存貯體政策編輯器) 中。確保您的儲存儲體名稱替換為Resource元素,以及AWS帳户IDCondition元素。中的表達式Condition元素確認AWS Serverless Application Repository僅有權訪問指定AWS帳户。如需政策陳述式的詳細資訊,請參IAM JSON 政策元素參考中的IAM User Guide

      { "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. 選擇 Save (儲存) 按鈕。

程序

使用下列程序,在 AWS Serverless Application Repository 中建立新的應用程式。

若要在 AWS Serverless Application Repository 中建立新的應用程式
  1. 開啟 AWS Serverless Application Repository 主控台並選擇 Publish applications (發佈應用程式)

  2. Publish an application (發佈應用程式) 頁面輸入下列應用程式資訊,然後選擇 Publish an application (發佈應用程式)

    屬性 必要 描述
    Application name (應用程式名稱) TRUE

    應用程式名稱。

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

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

    作者 TRUE

    發佈應用程式的作者名稱。

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

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

    首頁 FALSE 包含有關應用程式詳細資訊的 URL(例如,您的 GitHub 存儲庫中的應用程序。
    Description (描述) 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 授權),則會捨棄您所做的任何手動編輯。

    這是選用欄位,但您必須提供授權才能公開共用應用程式。

    讀我檔案 FALSE

    上傳讀我檔案的內容,可以是文字或 Markdown 格式。這些內容會顯示在 AWS Serverless Application Repository 中的應用程式的詳細資訊頁面上。您可以在上傳檔案後手動編輯此文字方塊的內容。

    語義版本 FALSE

    應用程式的語義版本。如需詳細資訊,請參閱語意版本控制網站

    您必須為此屬性提供值,才能將您的應用程式公開。

    原始程式碼 Url FALSE 應用程式原始程式碼的公有儲存庫連結。
    SAM 範本 TRUE

    有效的AWS Serverless Application Model(AWS SAM)範本,其定義AWS使用的資源。

共用應用程式

您可以在下列三種類別其中之一內設定已發佈應用程式的許可:

  • 私有(默認)— 使用相同帳户建立且尚未與任何其他帳户共用的應用程式AWS帳户。只有共享您的AWS帳户具有部署私有應用程式的許可。

  • 私人共用— 發佈者明確與一組特定AWS帳户,或使用AWS帳户AWS組織。使用者有權部署已與其共用的應用程式AWS帳户或AWS組織。如需有關 AWS Organizations 的詳細資訊,請參閱《AWS Organizations 使用者指南》。

  • 公開共用— 發佈者與所有人共用的應用程式。所有使用者都有權部署任何公開共用的應用程式。

將應用程式發佈至 AWS Serverless Application Repository 之後,其根據預設會設定為私有。本節為您示範如何私下共用應用程式私下與特定AWS帳户或AWS組織,或與所有人公開分享。

透過主控台共用應用程式

您有兩個選項可與其他人共用您的應用程式:1)與特定AWS帳户或AWS您的帳户AWS組織,或者 2) 與所有人公開共享。如需有關 AWS Organizations 的詳細資訊,請參閱《AWS Organizations 使用者指南》。

選項 1:將您的應用程序與特定AWS帳户或您的賬户AWS組織
  1. 開啟 AWS Serverless Application Repository 主控台

  2. 在導覽窗格中,選擇 Published Applications (發佈的應用程式) 帶出您已建立的應用程式清單。

  3. 選擇您想要分享的應用程式。

  4. 選擇 Sharing (共用) 標籤 。

  5. Application policy statements (應用程式政策陳述式) 區段中,選擇 Create Statement (建立陳述式) 按鈕。

  6. Statement Configuration (陳述式組態) 視窗中,根據您要共用應用程式的方式來填寫欄位。

    注意

    如果您與組織共用,則只能指定AWS帳户是的成員。如果您嘗試指定AWS您不是其成員的組織,則會導致錯誤。

    要將您的應用程序共享給AWS組織,您必須確認UnshareApplication動作會添加到您的政策陳述式,以防將 future 需要撤銷共用。

  7. 選擇 Save (儲存) 按鈕。

選項 2:與所有人公開共用您的應用程式
  1. 開啟 AWS Serverless Application Repository 主控台

  2. 在導覽窗格中,選擇 Published Applications (發佈的應用程式) 帶出您已建立的應用程式清單。

  3. 選擇您想要分享的應用程式。

  4. 選擇 Sharing (共用) 標籤 。

  5. Public Sharing (公開共用) 區段中,選擇 Edit (編輯 按鈕。

  6. Public sharing (公開共用) 下方,選擇 Enable (已啟用) 選項按鈕。

  7. 在文字方塊中輸入應用程式的名稱,然後選擇 Save (儲存) 按鈕。

注意

若要公開共用應用程式,應用程式必須同時設定 SemanticVersionLicenseUrl 屬性。

透過 AWS CLI 共用應用程式

使用共用應用程式AWS CLI您可以使用put-application-policy命令來指定AWS帳户,您要以委託人的身份共用。

如需使用共用應用程式的詳細資訊AWSCLI,請參AWS Serverless Application Repository應用政策範例

取消共用應用程式

有兩個選項可從AWS組織:

  1. 應用程式發佈者可以使用 put-application-policy 指令來移除許可。

  2. 來自管理帳戶的AWS組織可以執行取消共用應用程式操作(即使該應用程式是由不同帳户的使用者所發佈)。

    注意

    當應用程序從AWS具有「取消共用應用程式」操作的組織,則無法與AWS組織。

    如需有關 AWS Organizations 的詳細資訊,請參閱《AWS Organizations 使用者指南》。

發佈者移除許可

發佈者透過主控台移除許可

若要透過AWS Management Console,則可以刪除與其他共用的政策陳述式陳述式AWS帳户。若要這麼做,請依照下列步驟進行:

  1. 開啟 AWS Serverless Application Repository 主控台

  2. 在左側導覽窗格中,選擇 Available Applications (可用的應用程式)

  3. 選擇您要取消共用的應用程式。

  4. 選擇 Sharing (共用) 標籤 。

  5. Application policy statements (應用程式政策陳述式 區段中,選取與您要取消共用之帳戶共用應用程式的政策陳述式。

  6. 選擇 Delete (刪除)。

  7. 確認訊息隨即顯示。再選擇一次 Delete (刪除)

發佈者透過 AWS CLI 移除許可

若要透過AWS CLI,發佈者可以刪除或以其他方式更改權限,使用put-application-policy命令將應用程序設置為私有,或者與不同的AWS帳户。

如需使用更改許可的詳細資訊AWSCLI,請參AWS Serverless Application Repository應用政策範例

管理帳户取消共享應用程序

管理帳户將應用程序從AWS透過主控台進行組織

要取消共享應用程序與AWS透過組織AWS Management Console,一個用户來自管理帳戶可以執行下列動作:

  1. 開啟 AWS Serverless Application Repository 主控台

  2. 在左側導覽窗格中,選擇 Available Applications (可用的應用程式)

  3. 在應用程式的圖磚中,選擇 Unshare (取消共用)

  4. 在取消共用訊息方塊中,輸入組織 ID 和應用程式名稱,然後選擇 Save (儲存) 以確認您要取消共用應用程式。

管理帳户將應用程序從AWS透過組織AWS CLI

要取消共享應用程序與AWS組織,用户來自管理帳戶可以運行aws serverlessrepo unshare-application命令。

以下命令將應用程序從AWS組織,其中應用程式 ID是應用程式的 Amazon Resource Name (ARN),組織編號是AWS組織 ID:

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

刪除應用程式

您可以使用AWS Management Console或 AWS SAM CLI 從 AWS Serverless Application Repository 中刪除應用程式。

刪除應用程式 (主控台)

若要透過 AWS Management Console 刪除已發佈的應用程式,請執行下列動作。

  1. 開啟 AWS Serverless Application Repository 主控台

  2. My Applications (我的應用程式) 中,選擇您要刪除的應用程式。

  3. 在應用程式的詳細資訊頁面上,選擇 Delete application (刪除應用程式)

  4. 選擇 Delete application (刪除應用程式),完成刪除作業。

刪除應用程式 (AWS CLI)

若要使用 AWS CLI 刪除已發佈的應用程式,請執行 aws serverlessrepo delete-application 命令。

下列命令會刪除應用程式,其中 application-id 是應用程式的 Amazon Resource Name (ARN):

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