為您的可部署架構加入自訂選項
本教學教導您一種方法,利用可自訂的選項來擴充可部署的架構,以符合您的業務需求。 完成本教學,學習如何在您的私有目錄中為現有的可部署架構建立新版本,並將其他架構堆疊在一起,讓使用者可以選擇加入。
假設您是虛構公司 Example Corp. 的雲端自動化工程專業人員。 您之前 定制了一個可部署架構, 該架構名為 Example Corp's infrastructure 並將其添加到私人目錄中。 這種客製化的可部署架構是 Example Corp 應用程式的基礎。 現在,您要提供軟體開發人員一些資料庫選項,讓他們使用
Example Corp's infrastructure。 在您瀏覽 IBM Cloud 目錄後,您決定讓您的開發人員在兩種可部署的架構中選擇,這兩種架構可建立不同的資料庫:
- 雲端自動化用於 Databases for Elasticsearch
- 這個可部署的架構建立了 Elasticsearch 的一個實例,這是一個 NoSQL 資料庫,適合全文搜尋和查詢大型資料集。 此資料庫非常適合 Example Corp 的應用程式,因為它有足夠的彈性來處理文字、影像和視訊等非結構化及半結構化資料。 本教學是基於可部署架構的 1.32 版本建立的,但如果您需要,也可以使用較後的版本。
- 雲端自動化用於 Databases for PostgreSQL
- 此可部署架構會建立 PostgreSQL 的一個實例,這是一個 SQL 資料庫,用於關聯性查詢和結構化資料。 此資料庫是 Example Corp 的另一個合適選擇,因為它可以管理結構化的交易資料,為使用者提供個人化的應用程式體驗。 本教學是基於 3.22 版本建立的,但如果您需要,也可以使用較後的版本。
本教學使用一個虛構的情境來幫助您瞭解如何透過與其他架構堆疊來建立更複雜的可部署架構。 當您完成本教學時,請調整每個步驟以符合您組織的需求。
開始之前
-
前往 IBM Cloud 主控台中的管理 > 帳戶 > 帳戶設定,確認您使用的是隨用隨付或訂閱帳戶。
-
確認您已被指派下列 IBM Cloud Identity and Access Management (IAM) 角色:
- 所有帳戶管理服務和所有 IAM 服務的管理員。
- 編輯「目錄管理」服務。
- Schematics 的 Manager 服務存取角色。
- 您的可部署架構中特定資源所需的其他角色。 Code Engine 的雲端自動化需要 Writer 服務存取角色,該角色的權限涵蓋 Code Engine 服務的所有資源。
如需詳細資訊,請前往 指派帳戶管理服務存取權限 和 管理資源存取權限。
-
建立一個名為「自訂可部署架構」 的
Example Corp's infrastructure並將其新增至名為「私人目錄」的目錄中Example Corp catalog。 此架構是您在完成本教學時將延伸的架構。 -
設定驗證方法。 您可以 使用儲存在 Secrets Manager 中的 API 金鑰 或 受信任的設定檔 來授權部署到您的目標帳戶。
為測試目的部署概念驗證? 您可以在稍後編輯專案中的設定時,建立 API 金鑰。 這樣做會授權專案部署到目前選取的帳戶。
建立可部署架構的版本
由於 Example Corp's infrastructure 已經在私人目錄中提供,您需要用新版本更新它。
- 在 IBM Cloud 主控台中,按一下管理 > 目錄 > 私有目錄,然後開啟私有目錄
Example Corp catalog。 - 從產品清單中選取 Example Corp 的基礎架構。
- 按一下版本 > 新增版本
- 選擇 Terraform 作為傳送方法。
- 指定您的儲存庫是公開或私有,並提供來源 URL。 在本教程中,您可以使用與
Example Corp's infrastructure0.0.1 版本相同的來源 URL。 - 選擇在 IBM Cloud Code Engine 上部署 Example Corp AI 應用程式作為變體。
- 輸入
0.0.2表示軟體版本。 - 按一下新增版本
從這裡,您可以設定新增版本的詳細資訊。
透過新增資料庫選項,擴充 Example Corp 的基礎架構
當您設定版本詳細資訊時,可將 Example Corp's infrastructure 與其他兩個可部署的架構堆疊,以建立不同的資料庫,從而擴充。 您希望您的使用者選擇 IBM Cloud Databases for Elasticsearch 或 IBM Cloud Databases for PostgreSQL。 請完成下列步驟:
-
從步驟 3 - 擴展您的架構,按一下新增。
-
在產品功能表中,搜尋
Cloud automation for Databases for Elasticsearch並選取。 -
使用者語意版本規範 ( SemVer ) 來列出與 Example Corp 基礎架構搭配使用的架構版本。
通常,修補程式版本不包含破壞性變更,因此您可以使用 SemVer 來指定與範例公司基礎架構相容的版本範圍,例如
~1.32. 如此一來,若雲端自動化服務的修補程式版本 Databases for Elasticsearch 更新至1.32.5(例如),任何曾使用該版本部署範例軍團的 Elasticsearch 用戶,皆可將其專案更新為使用新版服務。 針對主要版本變更 Elasticsearch,請建立 Example Corp 基礎架構的新版本,以確保新版 Elasticsearch 能與您的架構正常運作。 -
選擇標準變化。
-
指定「標準」為預設變化,也就是使用者預設選取的變化。
-
從「關係」功能表中選擇「可選」,因為部署
Example Corp's infrastructure並不需要架構。 -
(可選)提供顯示說明,以協助使用者了解此架構如何與
Example Corp's infrastructure搭配使用,以及提供哪些優點。 例如,輸入NoSQL database for full-text searching and querying large datasets. -
按一下新增。
現在您已新增 Databases for Elasticsearch 的雲端自動化,請再次重複步驟,但這次請搜尋 Cloud automation for Databases for PostgreSQL。 對於選用的顯示說明,請輸入 SQL database for relational queries and structured data.
使資料庫可互相交換
現在您將這兩個資料庫都加入 Example Corp's infrastructure 作為選項,您就可以指定它們可以互相交換。 您的使用者可以透過 Example Corp's infrastructure,選擇要使用的資料庫選項。 請完成下列步驟:
- 從步驟 3 - 擴展您的架構中,選取 Databases for Elasticsearch 的雲端自動化複選框。
- 選擇 Databases for PostgreSQL 雲端自動化的核取方塊。
- 按一下 Group as swappable(群組可交換 )。
- 輸入
Databases作為群組名稱,然後按一下新增。 - 按下一步。
為您的使用者定義變數
現在您已經在架構中加入了一些資料庫選項,您需要為使用者定義變數。 這樣做可以將架構中的輸入連接在一起,讓您的使用者更容易設定 Example Corp's infrastructure 以進行部署。
-
從步驟 4 - 設定部署詳細資訊,按一下定義變數。
「定義變數」視窗隨即顯示,並為您預先 Databases for Elasticsearch 選取「雲端自動化」選項,讓您能存取該架構的輸入與輸出。 從這裡,您可以新增引用或將輸入移至
Example Corp's infrastructure,以便使用者可以設定。 -
Example Corp's infrastructure創建時,該區域僅限於美國。 若要確保 Databases for Elasticsearch 的 Cloud automation 使用與Example Corp's infrastructure相同的區域,請完成下列步驟,新增參考以將它們連接在一起:- 在 Cloud automation for Databases for Elasticsearch 的 Required inputs 視窗中,選擇 參照變數 圖示
作為
region輸入。 - 然後,在變量名稱功能表中選擇區域。
- 按一下新增。 当用户在
Example Corp's infrastructure中配置region输入时,Databases for Elasticsearch 的云自动化将使用用户提供的该值作为其输入。
- 在 Cloud automation for Databases for Elasticsearch 的 Required inputs 視窗中,選擇 參照變數 圖示
-
由於
Example Corp's infrastructure也包含prefix輸入,請在 Cloud automation 中針對prefix輸入完成相同的步驟,Databases for Elasticsearch:- 選擇 “引用變數”
prefix輸入。 - 然後,在變量名稱功能表中選擇前綴。
- 按一下新增。
- 選擇 “引用變數”
-
由於
Example Corp's infrastructure包含existing_resource_group_name的輸入,您可以使用相同的資源群組進行 Databases for Elasticsearch 的雲端自動化:- 選擇 “引用變數”
resource_group_name輸入。 - 然後,在變量名稱功能表中選擇 existing_resource_group_name。
- 按一下新增。
- 選擇 “引用變數”
-
將
use_existing_resource_group的預設值設定為 true,表示您的使用者需要一個現有的資源群組,以符合您的架構。 -
若要簡化設定並降低開發環境的成本,請完成下列步驟,移除金鑰加密的要求:
- 將
existing_kms_instance_crn的預設值設定為__NULL__。 - 按一下可選輸入。
- 將
use_ibm_owned_encryption_key的預設值設定為 true。 - 將
plan的預設值設定為enterprise。 - 將
member_cpu_count的預設值設定為2。 - 將
member_host_flavor的預設值設定為multitenant。
- 將
現在您已為 Databases for Elasticsearch 的 Cloud automation 定義變數,您需要為包含的其他資料庫選項定義變數:Cloud automation for Databases for PostgreSQL。 請完成下列步驟:
- 在 Define variables(定義變量)視窗中,使用架構功能表從 Cloud automation for Databases for Elasticsearch 切換到 Cloud automation for Databases for PostgreSQL。
- 按一下 Required inputs(必須輸入 ),然後將
existing_kms_instance_crn的預設值設定為__NULL__,以移除金鑰加密要求。 - 此架構中其他三個所需的輸入都可以參考
Example Corp's infrastructure中已有的輸入。 完成下列步驟,即可新增這些輸入的參考:- 選擇參考變數圖示
為
resource_group_name,然後從變數名稱功能表中選擇 existing_resource_group_name。 按一下新增,雲端自動化 Databases for PostgreSQL 內的resource_group_name輸入將引用使用者提供的 Example Corp 基礎架構中的existing_resource_group_name值。 - 選擇參考變數圖示 參考
為
prefix,並從變數名稱功能表中選擇前綴,然後按一下新增。 - 選擇參考變數圖示
為
region,並從變數名稱功能表中選擇區域,然後按一下新增。
- 選擇參考變數圖示
- 按一下可選輸入。
- 將
use_existing_resource_group的預設值設定為 true,表示您的使用者需要一個現有的資源群組,以符合您的架構。 - 將
use_ibm_owned_encryption_key的預設值設定為 true。 - 按一下儲存。
將變更告知使用者
Example Corp's infrastructure 的最新版本不包含破壞性變更,但包含您的使用者需要瞭解的新功能。 透過新增變更通知,讓您的使用者知道他們可以使用 Example Corp's infrastructure 的新資料庫選項。 請完成下列步驟:
- 從步驟 6 - 新增變更通知,按一下新增功能。
- 在標題欄位中,輸入
Database options added to Example Corp's infrastructure。 - 對於說明,請輸入
Version 0.0.2 includes two optional databases that you can choose to add. You can either use Cloud automation for Databases for Elasticsearch, or Cloud automation for Databases for PostgreSQL. - 按一下儲存。
從「行動」功能表中,選擇「產生艙單」以下載最新變更。 最好的做法是下載檔案,並將它們新增到您的原始碼儲存空間,這樣您的變更就可以繼承到下一個版本中。
從專案中部署架構以驗證其有效性
現在,Example Corp's infrastructure 的 0.0.2 版本可在您的私人目錄中作為草稿使用。 任何可以存取您私人目錄的使用者都可以部署。 為了確保資料庫選項能與 Example Corp's infrastructure 搭配使用,請從專案中部署資料庫兩次。 對於一個部署,包括 Elasticsearch。 而且,對於其他部署,包括 PostgreSQL。 透過部署架構兩次,您可以驗證這兩個資料庫選項是否都能如預期般使用
Example Corp's infrastructure。
在您 與企業分享 Example Corp's infrastructure 之前,您必須在將版本加入私有目錄時進行驗證。 目前,驗證目錄中的版本 並不會驗證您堆疊在一起的任何架構。 當 Example Corp's infrastructure 在私有目錄中處於草稿狀態時,從專案中部署架構有助於確保您包含的架構能在 Example Corp's infrastructure 中正常運作。
以下列方式部署 Example Corp 的基礎架構 Elasticsearch
-
前往 IBM Cloud 目錄,開啟
Example Corp catalog私人目錄。 -
選取 Example Corp 的基礎架構,開啟其目錄清單。
-
請確保已 0.0.2 選取作為版本。
-
點擊「建立專案」,為新專案命名,然後點擊
Testing Example Corp infrastructure「建立」。 -
點擊 圖示 專案設定
,將設定名稱變更為
Example Corp infrastructure with Elasticsearch,然後點擊 儲存。 -
在「可部署架構概覽」區段中,點選 「自訂」,確認已選取 「雲端自動化」Databases for Elasticsearch 選項,然後點選「儲存」。
-
按一下組態和部署。
-
完成下列步驟 設定架構:
- 在「詳細資訊」部分,檢視資訊,然後按一下「下一步」。
- 在安全性部分,提供驗證方法以部署到您的目標帳戶,然後按一下下一步。 使用受信任的設定檔或 API 金鑰。
- 在輸入部分,輸入
test-south作為prefix輸入變數的值。 - 為
existing_resource_group_name輸入變數選擇預設值。 region輸入變數選擇 us-south。- 按一下「儲存」儲存
Example Corp's infrastructure的設定。
-
按一下驗證。 顯示的模組會提供更多正在進行驗證的詳細資訊。
如果驗證失敗,您可以 排除故障。 或者,IBM Cloud 專案服務上的管理員可以透過 Schematics 服務檢查結果,並覆寫失敗,批准 組態繼續部署。 但是,請確定管道失敗的原因是 Code Risk Analyzer 掃描,而不是驗證或計畫失敗。 不建議覆寫因驗證或計劃失敗而標記的失敗,因為組態無法成功部署。 如需更多關於專案中安全性與法規遵循的資訊,請參閱「以企業為單位實現持續法規遵循」。
-
驗證完成後,核准並部署變更:
- 從
Testing Example Corp infrastructure專案,選擇「組態」索引標籤。 - 按一下
Example Corp infrastructure with Elasticsearch> 檢視詳細資料,以檢視上次的驗證並核准變更。 - 新增註解,說明核准的詳細資訊,然後按一下核准。
- 從
-
按一下部署,等待部署完成。
若部署成功,則表示 與
Example Corp's infrastructureElasticsearch 能如預期般協同運作。 -
最後,解除部署架構所建立的資源。 在專案中的組態索引標籤上,按一下選項圖示
為
Example Corp infrastructure with Elasticsearch> 解除部署。
以下列方式部署 Example Corp 的基礎架構 PostgreSQL
完成相同的步驟來驗證 Example Corp's infrastructure 是否可與 PostgreSQL 相容:
-
在
Testing Example Corp infrastructure專案的 Configurations 索引標籤上,按一下建立,然後開啟Example Corp catalog私人目錄。 -
選取 Example Corp 的基礎架構,開啟其目錄清單。
-
請確保已 0.0.2 選取作為版本。
-
確定已選擇 Testing Example Corp 基礎架構為專案。
-
點擊 圖示 專案設定
,將設定名稱變更為
Example Corp infrastructure with PostgreSQL,然後點擊 儲存。 -
在「可部署架構概覽」區段中,點擊「自訂」,確認已選取 「雲端自動化」Databases for PostgreSQL 選項,然後點擊「儲存」。
-
按一下組態和部署。
-
設定架構。 然後,驗證、核准並部署,以驗證
Example Corp's infrastructure是否能如預期般與 PostgreSQL 一起運作。當您設定架構時,請在
region輸入變數中選擇 us-east,以確認架構可以部署到美國南部和美國東部地區。 輸入test-east作為前綴,表示資源部署到哪個區域。 -
從專案中解除部署配置,以解除部署資源。
下一步
繼續 上線最新版本的 Example Corp's infrastructure。 完成後,使用者就可以使用新版的可部署架構。 當他們將新版本新增至專案時,可透過加入 Cloud automation for Databases for Elasticsearch 或 Cloud automation for
Databases for PostgreSQL 自訂。
如果使用者已經部署了較早版本的 Example Corp's infrastructure,他們會在專案中收到需求注意 Widget 的提示,以 更新架構至最新版本。