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

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

如何發佈應用程式

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

重要

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

發佈應用程式 (AWS CLI)

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

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

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

先決條件

將應用程式發佈至 之前 AWS Serverless Application Repository,您需要下列項目:

  • 有效的 AWS 帳戶。

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

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

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

  • Readme.txt 檔案。此檔案應描述客戶如何使用您的應用程式,以及如何在將應用程式部署到自己的 AWS 帳戶中之前進行設定。

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

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

    1. 開啟位於 https://console.aws.amazon.com/s3/ 的 Amazon S3 主控台。

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

    3. 選擇許可索引標籤標籤。

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

    5. 將下列政策陳述式貼到 Bucket policy editor (儲存貯體政策編輯器) 中。請務必在 Resource元素中取代儲存貯體名稱,並在 Condition元素中取代 AWS 您的帳戶 ID。Condition 元素中的表達式可確保 AWS Serverless Application Repository 只有從指定 AWS 帳戶存取應用程式的許可。如需政策陳述式的詳細資訊,請參閱《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. 選擇 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 (授權) 文字方塊。附註:在下拉式清單中選擇授權,會取代 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

    valid 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 Organization 共用您的應用程式,您必須確認該UnshareApplication動作將新增至您的政策陳述式,以防未來需要撤銷共用。

  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 的帳戶 (做為委託人)。

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

取消共用應用程式

有兩種選項可從 AWS 組織取消共用應用程式:

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

  2. 來自 AWS 組織的管理帳戶的使用者可以在與組織共用的任何應用程式上執行未共用應用程式操作,即使應用程式是由來自不同帳戶的使用者發佈。

    注意

    當應用程式從具有「取消共用應用程式」操作 AWS 的 Organization 取消共用時,就無法再次與 AWS Organization 共用。

    如需詳細資訊 AWS Organizations,請參閱 AWS Organizations 使用者指南

發佈者移除許可

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

若要透過 取消共用應用程式 AWS Management Console,請移除與其他 AWS 帳戶共用的應用程式政策陳述式。若要這麼做,請依照下列步驟進行:

  1. 開啟 AWS Serverless Application Repository 主控台

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

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

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

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

  6. 選擇 刪除

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

發佈者透過 移除許可 AWS CLI

若要透過 取消共用應用程式 AWS CLI,發佈者可以使用 put-application-policy命令來移除或以其他方式變更許可,讓應用程式成為私有,或與不同的 AWS 帳戶共用。

如需使用 CLI AWS 變更許可的詳細資訊,請參閱 AWS Serverless Application Repository 應用程式政策範例

管理帳戶取消共用應用程式

管理帳戶透過主控台從 AWS Organization 取消共用應用程式

若要透過 從 AWS 組織取消共用應用程式 AWS Management Console,來自 管理帳戶的使用者可以執行下列動作:

  1. 開啟 AWS Serverless Application Repository 主控台

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

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

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

管理帳戶透過 從 AWS Organization 取消共用應用程式 AWS CLI

若要從 AWS Organization 取消共用應用程式,來自 管理帳戶的使用者可以執行 aws serverlessrepo unshare-application命令。

下列命令會從 AWS Organization 取消共用應用程式,其中 application-id 是應用程式的 Amazon Resource Name (ARN),而 organization-id 是 AWS Organization ID:

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

刪除應用程式

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

刪除應用程式 (主控台)

若要透過 刪除發佈的應用程式 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