配置可部署架構

在專案中新增可部署架構後,即可編輯輸入值來設定架構的部署配置。

配置可以是通用的,但許多專案會使用單一配置或一組配置,將資源部署至不同環境。 例如,一組配置可被用於將資源部署至開發、測試及生產環境,並在環境之外設定通用服務。 當您部署設定時,IBM Cloud® Schematics 會使用 Terraform 來套用底層的計劃。

在部署架構之前,必須驗證可部署架構的輸入參數、計畫、合規性及預估成本。 對配置所做的任何變更都會經過驗證,以確保不會出現任何問題或故障。

設定輸入值

輸入值用於配置可部署架構,以符合您的特定需求。 所需輸入項目會因您選擇的可部署架構而有所不同。 根據架構設計的不同,某些輸入可能包含一組可供選擇的選項,或者您可以在欄位中以文字字串的形式輸入數值。

參照值

配置可透過將某個配置的輸出作為另一個配置的輸入來相互連結。 例如,某個應用程式的配置可能使用基礎架構配置的輸出(例如叢集識別碼),以部署至該基礎架構。 為達成此目標,您可以新增對其他設定中輸入或輸出的參照。 您亦可從環境中引用參數。 當您新增參照時,其值會從輸入、輸出或環境中提取,並作為您正在設定的架構中的輸入值使用。

在控制台中,您可將游標懸停於輸入欄位上,並點選參考圖示 (Reference icon 來為當前設定的架構新增參考項目。

若您正在使用 API 或 CLI 配置可部署架構,或 編輯可部署架構堆疊定義 時需要加入參照,可將參照內容以文字字串形式寫入。 參考資料符合 URL 規範,但採用不同 ref 協議取代 http。 就像網站上的網址一樣,你可以寫出相對於當前上下文的參考。 例如,若您正在編輯的設定檔中新增對某個輸入項目的參照,此時您的當前路徑為 /configs/<configname>,您便可寫入相對於該路徑的參照。 例如,在同一組設定中 ref:./inputs/region,會新增對名為 region 的輸入參照。 在此情況下,您正在編輯的設定無需部署即可引用其內的其他值。

您可透過開啟專案中的已部署設定,並前往「輸出」標籤頁,來查找可供參照的輸出名稱。

從配置中引用值

在設定檔中引用值的一般格式如下:

ref:/configs/<config_name>/inputs_or_outputs/<input_or_output_name>.

您可以引用從您的專案部署的配置中的輸入或輸出。 例如,以下參考指向在 配置 ProdClustercluster_id 命名為 的輸出:ref:/configs/ProdCluster/outputs/cluster_id

您可以在當前編輯的設定中,為另一個輸入項目新增相對參照。 無需部署即可執行此設定。

實驗性

若您在專案中將配置堆疊在一起,即可在這些堆疊配置之間相互參照輸出結果。 引用值的一般格式如下:

ref:/configs/<stack_name>/members/<member_name>/inputs_or_outputs/<input_or_output_name>

若您想建立相對參考,可以這麼做。 堆疊在一起的配置之間的相對參照格式為 ref:../<member_name>/inputs_or_outputs/<input_or_output_name>:。 但若您在堆疊定義中引用某個值,則該值在成員配置中會以 ref:../../inputs/<input_name> 的格式呈現。 目前,成員無法引用堆疊定義中的輸出。

引用環境中的輸入

由於環境是在專案內建立,而非在設定檔內建立,因此若要在環境中引用參數 /configs/<configname>,無需包含 ``。 但您必須在 environments 參考類型後面包含環境名稱。 接著,指定 inputs 並提供您要引用的輸入名稱:ref:./environments/<environment_name>/inputs/<name>。 您無法從環境中新增對驗證參數或合規性設定檔的參照。

例如,以下參考指向在 環境 Productioncluster_id 命名為 的輸入參數:ref:./environments/Production/inputs/cluster_id

透過控制台設定架構

若要建立自訂組態,請完成下列步驟:

  1. 從「安全性」面板中,選擇您要用於部署架構的驗證方法。

    部署一個概念驗證以供測試之用? 您可以在編輯專案中的設定時建立 API 金鑰。 此操作將授權專案部署至當前選取的帳戶。 否則,您可透過 IBM Cloud® Secrets Manager 添加 API 金鑰。 此授權允許專案部署至目標帳戶,且為部署您的架構所必需。 如需更多資訊,請參閱《 使用 API 金鑰與 Secrets Manager 授權專案部署架構 》。

  2. 在驗證過程中,程式碼風險分析器掃描會 對您的架構執行掃描。 請選擇您在驗證過程中要使用的政策。 您可以使用「架構預設值」,或若目標帳戶中已設定 Workload Protection 實例,則可選用「從 Workload Protection 選擇」選項。

    若您選擇「建築」預設值

    • 此掃描採用部署式架構所有者在登錄時所設定的預設政策。
    • 架構擁有者新增的政策包含相關要求。 同時包含於支援規則集中的需求項目將被檢查。
    • 當您驗證配置時,架構擁有者新增的任何額外要求(未包含在支援規則清單中)將不會被檢查。
    • 若可部署架構的所有者未在其產品中添加政策,則將使用完整的規則集。

    若要檢視新增的要件清單,請前往 IBM Cloud® 目錄,並選取您正在設定的可部署架構。 「安全性與合規性」標籤頁列出了所有新增至可部署架構的規範要求。

    若您選擇「從 Workload Protection 中選取」,則必須在目標帳戶中擁有該服務的實例,方可進行部署。

  3. 輸入 面板,輸入可部署架構組態所需輸入的值。

    根據可部署架構的不同,某些輸入參數可能會預先設定,並參照其他架構或固定值進行配置。 這些數值是由可部署架構的創建者所提供。 編輯這些值時請謹慎行事,尤其是參考值,因為架構可能無法在不同值下成功部署。 將游標懸停於輸入欄位上,點擊「重設」按鈕即可將輸入值恢復為創建者指定的固定數值。 您無法重設輸入參照。 僅固定值輸入可重置為其原始固定值。

  4. 可選:將「可選輸入」切換至開啟狀態,即可為可選輸入欄位輸入數值。

  5. 按一下儲存

  6. 按一下驗證。 顯示的模態視窗會提供更多關於您正在進行的驗證的詳細資訊。

    若驗證失敗,您可以 針對失敗原因進行疑難排解。 或者,IBM Cloud 專案服務上的管理員可以透過 Schematics 服務檢查結果,並覆寫失敗,批准 組態繼續部署。 然而,請確保管道失敗是由於程式碼風險分析器掃描所致,而非驗證或執行計畫失敗所造成。 不建議覆寫因驗證或計畫失敗而標記的失敗狀態,因為此類配置可能無法成功部署。 有關專案安全與合規性的更多資訊,請參閱 《實現企業級持續合規》

若您正在配置可部署的堆疊式架構,請務必依據各架構間的依賴關係,依序驗證每個架構。 或者,您也可以編輯專案設定,讓成功驗證的配置變更能自動部署。 若您如此操作,每種架構都將根據其依賴關係自動進行驗證、核准與部署。 如需更多資訊,請參閱 《部署架構》

透過主控台批准配置變更

在您驗證設定後,所有變更必須經由 IBM Cloud Projects 服務的編輯者或管理員核准。 請完成以下步驟以核准變更:

  1. 從專案清單中,選擇一個專案。
  2. 請檢查您的專案中「概覽」標籤頁是否存在任何尚未處理的待處理事項。 需處理的項目可能阻礙您的部署能力。
  3. 前往「設定」標籤頁,並選擇可部署的架構設定。
  4. 按一下編輯
  5. 按一下檢視最後驗證
  6. 添加評論以提供更多關於批准的詳細資訊,然後點擊「批准」。

若您的驗證因程式碼風險分析器掃描而失敗,IBM Cloud Projects 服務 的管理 員可覆寫此失敗結果,批准配置並繼續部署。

使用命令列介面設定架構

若要透過命令列介面將設定新增至專案,請執行以下 ibmcloud project config-create 指令:

ibmcloud project config-create --project-id PROJECT-ID [--definition DEFINITION] [--schematics SCHEMATICS]

有關命令參數的更多資訊,請參閱 ibmcloud project config-create

透過命令列介面批准配置變更

  1. 執行以下 ibmcloud project config-validate 指令以驗證您的設定:

    ibmcloud project config-validate --project-id PROJECT-ID --id ID
    

    有關命令參數的更多資訊,請參閱 ibmcloud project config-validate

  2. 在驗證您的設定後,請執行以下 ibmcloud project config-approve 指令批准設定編輯並將其合併至主設定:

    ibmcloud project config-approve --project-id PROJECT-ID --id ID [--comment COMMENT]
    

    有關命令參數的更多資訊,請參閱 ibmcloud project config-approve

使用 API 設定架構

您可以透過調用專案 API 來程式化地將配置新增至專案,如下列範例請求所示。 此範例將名稱為 的設定 My new configuration 新增至專案:

curl -X POST --location --header "Authorization: Bearer {iam_token}" \
  --header "Accept: application/json" \
  --header "Content-Type: application/json" \
  --data '{ "definition": { "name": "env-stage", "description": "Stage environment configuration.", "locator_id": "1082e7d2-5e2f-0a11-a3bc-f88a8e1931fc.018edf04-e772-4ca2-9785-03e8e03bef72-global", "inputs": { "account_id": "account_id", "resource_group": "stage", "access_tags": [ "env:stage" ], "logdna_name": "LogDNA_stage_service", "sysdig_name": "SysDig_stage_service" }, "settings": { "IBMCLOUD_TOOLCHAIN_ENDPOINT": "https://api.us-south.devops.dev.cloud.ibm.com" } } }' \
  "{base_url}/v1/projects/{project_id}/configs"

透過 API 核准配置變更

您可以透過程式化方式批准配置編輯,並將其合併至主配置中,方法是呼叫 專案 API,如下列範例請求所示。 此範例會批准配置編輯並將其合併至配置中:

curl -X POST --location --header "Authorization: Bearer {iam_token}" \
  --header "Accept: application/json" \
  --header "Content-Type: application/json" \
  --data '{ "comment": "Approving the changes" }' \
  "{base_url}/v1/projects/{project_id}/configs/{id}/approve"