本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AMI 產品的合約價格 AWS License Manager
對於以合約定價為基礎的 Amazon 機器映像 (AMI) 產品,您可以使用 Lic AWS ense Manager 將授權與產品建立關聯。
AWS License Manager 是一種授權管理工具,可讓您的應用程式追蹤和更新客戶已購買的授權 (也稱為權利)。本節提供有關如何與產品整合的資訊 AWS License Manager。整合完成後,您可以在上發佈產品清單 AWS Marketplace。
若要取得有關的更多資訊 AWS License Manager,請參閱《AWS License Manager 使用指南》和《指AWS CLI令參考》一AWS License Manager節。
注意
-
客戶無法在合約到期後啟動 AMI 的新執行個體。但是,在合約期間,他們可以啟動任意數量的執行個體。這些授權不會鎖定節點或繫結至特定執行個體。
-
建立不公開優惠 — 賣家可以使用中的「私人選件」建立工具,為產品產生私人優惠 AWS Marketplace 管理入口網站。
-
報告 — 您可以在中的報告區段中設定 Amazon S3 儲存貯體來設定資料饋送 AWS Marketplace 管理入口網站。如需詳細資訊,請參閱 賣家報告、資料饋送和儀表板。
授權模式
AWS Marketplace 整合 AWS License Manager 支援兩種授權模式:
可設定授權模式
購買者購買授權後,可設定的授權模式 (也稱為可量化授權模式) 可讓購買者獲得特定數量的資源。
您可以設定定價維度和每單價。然後,買方可以選擇要購買的資源數量。
範例 定價範圍與單價
您可以設定定價維度 (例如資料備份) 和每單價 (例如 $30 美元/單位)
買家可以選擇購買 5 個,10 個或 20 個單位。
您的產品會追蹤並測量使用情況,以測量消耗的資源數量。
使用組態模型時,權利會以下列兩種方式之一計算:
提取授權
授權是從使用時允許數量的授權集區中抽取。該權利會永久簽出,且無法返回授權集區。
範例 處理有限數量的數據
使用者有權處理 500 GB 的資料。當它們繼續處理資料時,數量會從 500 GB 的集區中取出,直到消耗所有 500 GB 的授權為止。
對於提取授權,您可以使用 CheckoutLicense
API 作業來簽出已使用的授權單位。
範例 備份到S3 的多個單位/年
您的儲存產品允許備份到 Amazon Simple Storage Service (Amazon S3),一年內最多可備份 1024 個單位的資料。您可以使用多個 Amazon EC2 執行個體啟動應用程式。您的應用程式具有追蹤和彙總資料的機制。您的軟體會在每次備份時使用 Product ID 呼叫 CheckoutLicense
API 作業,或以固定時間間隔來更新耗用的數量。
在此示例中,您的軟件調CheckoutLicense
用簽出 10 個數據單位。當總容量達到客戶購買的備份限制時,API 呼叫會失敗。
請求
linux-machine ~]$ aws license-manager checkout-license\ --product-sku "2205b290-19e6-4c76-9eea-377d6bf7la47" \ --checkout-type "PERPETUAL" \ --key-fingerprint "aws:294406891311:AWS/Marketplace:issuer-fingerprint" \ --entitlements "Name=DataConsumption, Value=l0, Unit=Count" \ --client-token "AKIAIOSFODNN7EXAMPLE"
回應
{ "CheckoutType": "PERPETUAL", "EntitlementsAllowed": [ { "Name": "DataConsumption", "Count": 10, "Units": "Count", "Value": "Enabled" } }, "Expiration": "2021-04-22Tl9:02: 36", "IssuedAt": "2021-04-22Tl8:02:36", "LicenseArn": "arn:aws:license-manager::294406891311:license:l-16bf01b...", "LicenseConsumptionToken": "AKIAIOSFODNN7EXAMPLE" }
浮動授權
使用後,授權會返回至允許數量的授權集區。
範例 固定上限的使用者人數
使用者有權在應用程式上同時存取 500 位使用者。當使用者登入和登出時,會吸引使用者並返回 500 個使用者的集區。但是,該應用程序無法從池中吸引超過 500 個用戶,因為 500 個同時用戶是固定的上限。
對於浮動授權,您可以使用 CheckInLicense
API 作業將授權單位傳回權益集區。
範例 一年的同時使用者人數
您的產品是根據同時使用者的數量來定價。客戶為 10 位使用者購買一年的授權。客戶透過提供 AWS Identity and Access Management (IAM) 許可來啟動軟體。當使用者登入時,您的應用程式會呼叫 CheckoutLicense
API 作業,將數量減少 1。當使用者登出時,應用程式會呼叫 CheckInLicense
API 作業,將該授權傳回至集區。如果您不打電話CheckInLicense
,授權單位將在 1 小時後自動簽入。
注意
在下列要求中,key-fingerprint
不是預留位置值,而是發佈所有授權時所使用之指紋的實際值。
請求
linux-machine ~]$ aws license-manager checkout-license\ --product-sku "2205b290-19e6-4c76-9eea-377d6bf7la47" \ --checkout-type "PROVISIONAL" \ --key-fingerprint "aws:294406891311:AWS/Marketplace:issuer-fingerprint" \ --entitlements "Name=ReadOnlyUSers, Value=l0, Unit=Count" \ --client-token "AKIAIOSFODNN7EXAMPLE"
回應
{ "CheckoutType": "PROVISIONAL", "EntitlementsAllowed": [ { "Name": "ReadOnlyUsers", "Count": 10, "Units": "Count", "Value": "Enabled" } }, "Expiration": "2021-04-22Tl9:02: 36", "IssuedAt": "2021-04-22Tl8:02:36", "LicenseArn": "arn:aws:license-manager::294406891311:license:l-16bf01b...", "LicenseConsumptionToken": "AKIAIOSFODNN7EXAMPLE" }
分層授權模式
在購買者購買授權後,階層式授權模式可讓買家使用特定等級或應用程式功能層級。
您可以為產品建立層級,例如「基本」、「中級」和「高級」。然後,採購員會選取其中一個預先定義的層級。
該應用程序不需要跟踪或計量應用程序的使用情況。
使用分層授權模式時,不會計算授權,而是代表客戶採購的服務層。
如果您想要一起提供捆綁的功能,我們建議您使用分層授權模式。
範例 基本、中級和高級層
客戶可以簽署軟件的三個可能層之一的合同:基本,中級或高級。每個層都有自己的定價。您的軟體可以透過呼叫 CheckoutLicense
API 作業並指定要求中所有可能的層級,來識別客戶已註冊的層級。
請求的回應包含與客戶所購買的層級相對應的權利。根據此資訊,軟體可以佈建適當的客戶經驗。
請求
linux-machine ~]$ aws license-manager checkout-license\ --product-sku "2205b290-19e6-4c76-9eea-377d6bf7la47" \ --checkout-type "PROVISIONAL" \ --key-fingerprint "aws:294406891311:AWS/Marketplace:issuer-fingerprint" \ --entitlements "Name=BasicTier, Unit=None" "Name=IntermediateTier, Unit=None" \ "Name=PremiumTier, Unit=None"
回應
{ "CheckoutType": "PROVISIONAL", "EntitlementsAllowed": [ { "Name": "IntermediateTier", "Units": "None" } }, "Expiration": "2021-04-22Tl9:02:36", "IssuedAt": "2021-04-22Tl8:02:36", "LicenseArn": "arn:aws:license-manager::294406891311:license:l-16bf01b...", "LicenseConsumptionToken": "AKIAIOSFODNN7EXAMPLE" }
整合工作流
以下步驟顯示了將 AMI 產品與整合的工作流程 AWS License Manager:
-
賣方創建具有 AWS License Manager 集成的產品。
-
賣家將產品刊登於 AWS Marketplace。
-
買家在上找到產品 AWS Marketplace 並購買它。
-
授權會在其中傳送給買方 AWS 帳戶。
-
買方透過啟動 Amazon 彈性運算雲端 (Amazon EC2) 執行個體、亞馬遜 Elastic Container Service (Amazon ECS) 任務或 Amazon Elastic Kubernetes Service (Amazon EKS) 網繭軟體來使用該軟體,客戶使用 IAM 角色進行部署。
-
軟體會讀取買方 AWS License Manager 帳戶中的授權、探索所購買的權利,並據此佈建這些功能。
注意
License Manager 不會進行任何跟踪或更新;這是由賣方的應用程序完成的。
License Manager 整合必要
在發佈產品之前,您必須執行下列動作:
-
在中建立新 AMI 產品 AWS Marketplace 管理入口網站,並記下其產品代碼。
-
填寫產品裝載表格(PLF),並提供必要的價格信息,並將其交回給我們進行處理。
-
針對執行應用程式的工作或網繭使用 IAM 角色,並具有呼叫
CheckoutLicense
ExtendLicenseConsumption
、和所需的 IAM 權限CheckInLicense
。下列 IAM 政策詳述了必要的 IAM 許可。
{ "Version":"2012-10-17", "Statement":[ { "Sid":"VisualEditorO", "Effect":"Allow", "Action":[ "license-manager:CheckoutLicense", "license-manager:GetLicense", "license-manager:CheckInLicense", "license-manager:ExtendLicenseConsumption", "license-manager:ListReceivedLicenses" ], "Resource":"*" } ] }
-
對
RegisterUsage
API 操作進行測試調用,並記錄您選擇的所有定價維度。
以 AMI 為基礎的產品與整合 AWS License Manager
您可以使用 AWS License ManagerAPI 將您的 AMI 產品與 License Manager 整合。使用以 AWS Marketplace AMI 為基礎的產品啟動 Amazon EC2 執行個體。
注意
請確定您已完成,License Manager 整合必要然後再執行下列程序。
將您的 AMI 產品與 License Manager 整合
-
完成在 License Manager 中建立測試授權中的程序。您必須在 License Manager 中建立測試授權,才能測試整合。
-
使用您在步驟 1 中獲得的授權 Amazon 資源名稱 (ARN) 執行 GetLicenseAPI 作業。請注意
GetLicense
響應的KeyFingerprint
屬性的值以供以後使用。 -
在您的應用程式中下載並包含最新的公用 AWS SDK。
-
若要確認購買者有權為您的應用程式使用授權,請執行 CheckoutLicenseAPI 作業。使用您在步驟 1 中獲得的測試許可證的權利詳細信息和密鑰指紋。
如果找不到授權的權利,或超過權利計數上限,則會傳回
CheckoutLicense
NoEntitlementsAllowedException
API 作業。如果權利文件有效或可供使用,則CheckoutLicense
作業會傳回成功的回應,其中包含要求的權利及其值。 -
(僅適用於浮動權利) 使用
CheckoutLicense
回應中收到的 CheckinLicenseLicenseConsumptionToken
API 作業執行 API 作業。此動作會將先前已出庫的權利文件釋放回可用權利集區。 -
在您成功驗證 License Manager 與您在步驟 1 中建立的測試授權整合後,請將程式碼中的金鑰指紋更新為
aws:294406891311:AWS/Marketplace:issuer-fingerprint
。現在,您已準備好使用由發行的授權 AWS Marketplace。
按照將應用程序構建到 AMI 產品的發布過程,然後將產品提交到 AWS Marketplace 遵循產品發布過程。
在 License Manager 中建立測試授權
您可以使用 AWS Command Line Interface (AWS CLI) 的版本 2 在中建立測試授權 AWS License Manager。此測試授權僅用於驗證和測試 AWS License Manager 整合。測試完成後,您可以刪除測試許可證。實際的許可證是由不同 AWS Marketplace 的密鑰指紋生成的。
AWS Marketplace 支援中 AWS License Manager的兩種權利類型。但是,一個產品只能啟用一種類型。當您建立授權 (包括測試授權) 時,您必須指定下列其中一種權利類型:
分層授權 — 分層授權模式可讓客戶使用某些應用程式功能。客戶無法定義要購買的單位數量。不過,他們可以選取單一預先定義的套件或層級。客戶稍後可以修改合約以訂閱其他層級。
可配置的權利 — 當客戶購買授權時,可配置的授權模式會授與特定數量資源的權利。客戶在訂閱過程中選擇要購買的單位數量,並根據單價開立帳單。客戶也可以訂閱多個維度。
在 CheckoutLicense
API 作業中使用的必要參數如下:
-
CheckoutType
— 有效值為Perpetual
或Provisional
:-
Perpetual
— 當從集區中簽出的權利數量將用盡時使用。範例:買方有權處理 500 GB 的資料。隨著他們繼續處理資料,數量會從 500 GB 的池中抽出並用盡。取得已購買授權的狀態,瞭解授權是否已到期或即將到期,以便傳送通知給客戶。 -
Provisional
— 用於浮動授權權利,其中權利從集區中出庫並在使用後返回。示例:用戶有權在應用程序中同時使用 500 個用戶。當使用者登入和登出時,會吸引使用者並返回 500 個使用者的集區。如需浮動授權權利的詳細資訊,請參閱 AWS License Manager 中的賣方核發授權。
-
-
ClientToken
— 唯一且區分大小寫的識別碼,可確保發生確切的結果,無論嘗試多少次都是相同的。我們建議您針對每個要求使用隨機的通用唯一識別碼 (UUID)。 -
Entitlements
— 要出庫的權利清單。-
對於階層權利文件,提供
Name
和Unit
屬性如下:{
"Name": "<
Entitlement_Name
>","Unit": "
None
"}
-
對於可配置的權利,提供
Name
Unit
、和Value
屬性,如下所示:{
"Name": "<
Entitlement_Name
>","Unit": "<
Entitlement_Unit
>","Value": <
Desired_Count
>{}
-
-
KeyFingerprint
— 使用此金鑰指紋驗證授權是由核發 AWS Marketplace。發出授權的金鑰指紋如下: AWS Marketplaceaws:294406891311:AWS/Marketplace:issuer-fingerprint
-
Product SKU
— 具有與產品相關聯之全域唯一識別碼 (GUID) 格式的 AWS Marketplace 產品 ID。
範例 可設定權利的
以下是使用 CheckoutLicense
API 作業簽出名為的可設定權利的請求範例PowerUsers
。
aws license-manager checkout-license \ product-sku "2205b290-19e6-4c76-9eea-377d6bf71a47" \ checkout-type "PROVISIONAL" \ client-token "79464194dca9429698cc774587a603a1" \"Statement":[ entitlements "Name=PowerUsers,Value=1,Unit=Count" \ key-fingerprint "aws:294406891311:AWS/Marketplace:issuer-fingerprint"
範例 分層權利的
以下是使用 CheckoutLicense
API 作業簽出名為的功能權利的請求範例EnterpriseEdition
。
aws license-manager checkout-license \ --product-sku "2205b290-19e6-4c76-9eea-377d6bf71a47" \ --checkout-type "PROVISIONAL" \ --client-token "79464194dca9429698cc774587a603a1" \ --entitlements "Name=EnterpriseEdition,Unit=None" \ --key-fingerprint "aws:294406891311:AWS/Marketplace:issuer-fingerprint"
建立 AMI 產品的測試授權
-
從已安裝 AWS CLI v2 的本機環境中,執行下列指令碼。指令碼會建立測試授權,並設定適當的產品詳細資料。
注意
使用不同 AWS 帳戶 於您要部署和測試 AWS 帳戶 軟體的測試。無法建立、授與授權,以及在同一授權中簽出授權 AWS 帳戶。
#!/bin/bash # Replace with intended product ID on AWS Marketplace PRODUCT_ID=<REPLACE-WITH-PRODUCT-ID> # Replace with license recipient's AWS Account ID BENEFICIARY_ACCOUNT_ID=<REPLACE-WITH-BENEFICIARY-ACCOUNT-ID> # Replace with your product's name PRODUCT_NAME="Test Product" # Replace with your seller name on AWS Marketplace SELLER_OF_RECORD="Test Seller" # Replace with intended license name LICENSE_NAME="AWSMP Test License" # Replace the following with desired contract dimensions # More info here: https://docs.aws.amazon.com/license-manager/latest/APIReference/API_Entitlement.html # Example "configurable entitlement" ENTITLEMENTS='[ { "Name": "ReadOnly", "MaxCount": 5, "Overage": false, "Unit": "Count", "AllowCheckIn": true } ]' # Example "tiered entitlement" # ENTITLEMENTS='[ # { # "Name": "EnterpriseUsage", # "Value": "Enabled", # "Unit": "None" # } # ]' # Format "yyyy-mm-ddTHH:mm:ss.SSSZ" # This creates a validity period of 10 days starting the current day # Can be updated to desired dates VALIDITY_START=$(date +%Y-%m-%dT%H:%M:%S.%SZ) VALIDITY_END=$(date --date="+10 days" +%Y-%m-%dT%H:%M:%S.%SZ) # Configuration for consumption of the license as set on Marketplace products CONSUMPTION_CONFIG='{ "RenewType": "None", "ProvisionalConfiguration": { "MaxTimeToLiveInMinutes": 60 } }' # License's home Region HOME_REGION=us-east-1 # License issuer's name ISSUER=Self # Run AWS CLI command to create a license aws license-manager create-license \ --license-name "${LICENSE_NAME}" \ --product-name "${PRODUCT_NAME}" \ --product-sku "${PRODUCT_ID}" \ --issuer Name="${ISSUER}" \ --beneficiary "${BENEFICIARY_ACCOUNT_ID}" \ --validity 'Begin="'"${VALIDITY_START}"'",End="'"${VALIDITY_END}"'"' \ --entitlements "${ENTITLEMENTS}" \ --home-region "${HOME_REGION}" \ --region "${HOME_REGION}" \ --consumption-configuration "${CONSUMPTION_CONFIG}" \ --client-token $(uuidgen)
-
使用 AWS License Manager 主控台授予授權。如需詳細資訊,請參閱《L icense Manager 使用指南》中的散佈權利。
-
登入作為購買者帳戶 AWS 帳戶 的帳戶,您將在其中部署並測試您的軟體。這必須與建立並授予 AWS 帳戶 許可證的不同 AWS 帳戶 。
-
移至 AWS License Manager 主控台以接受並啟用授與的授權。如需詳細資訊,請參閱《Lic ense Manager 使用指南》中的〈管理授與的授權〉。
-
在您的環境中執行下列命令。
# The following example uses a key fingerprint that should match the test license you created. # When checking out an actual AWS Marketplace created license, use the following fingerprint: # aws:294406891311:AWS/Marketplace:issuer-fingerprint aws license-manager checkout-license \ --product-sku <REPLACE-WITH-PRODUCT-ID> \ --checkout-type PROVISIONAL \ --key-fingerprint "aws:<ACCOUNT-ID-WHERE-YOU-CREATED-TEST-LICENSE>:Self:issuer-fingerprint" \ --entitlements "Name=ReadOnly,Value=1,Unit=Count" \ --client-token $(uuidgen)
上一個指令使用
PROVISIONAL
做為CheckoutType
參數的值。如果軟體權利文件使用提取授權,請使PERPETUAL
用該值。
License Manager API 呼叫
若要管理儲存在客戶的 License Manager 帳戶中的授權,您的軟體可以使用下列 API 呼叫:
-
GetLicense
— 取得授權是否已到期或即將到期的已購買授權狀態,以便傳送通知給客戶。 -
CheckoutLicense
— 發現用戶已購買的許可證。您也可以在使用者使用一定數量的授權時,使用它來更新授權數量。使用CheckoutLicense
,您可以繼續簽出客戶使用的許可證數量。當客戶用盡所有授權時,此呼叫會傳回錯誤。如需有關建議執行節奏的資訊CheckoutLicense
,請參閱授權續約和升級。 -
ExtendLicenseConsumption
— 在浮動維度的情況下,當軟體簽出授權時,它會在 60 分鐘後自動將授權歸還至集區。如果您想延長許可證保持簽出的時間,您的軟件可ExtendLicenseConsumption
以調用將許可證延長 60 分鐘。 -
CheckInLicense
— 如果是浮動維度,當您想要將授權傳回權益集區時,請使用CheckInLicense
。 -
ListReceivedLicenses
— 列出購買者購買的授權。
授權續約和升級
客戶可以在上續約或升級其授權 AWS Marketplace 管理入口網站。在他們進行額外購買之後, AWS Marketplace 會產生反映新授權的新版本。您的軟體會使用相同的 API 呼叫讀取新的權利。您不必在許可證管理器集成方面做任何不同的事情來處理續訂和升級。
由於授權續約、升級、取消等原因,我們建議您的產品在產品使用期間定期執行 CheckoutLicense
API 呼叫。藉由定期使用 CheckoutLicense
API 作業,產品可偵測權利的變更,例如升級和到期。
建議您每 15 分鐘執行一次 CheckoutLicense
API 呼叫。