建立環境

在您的專案中建立環境,將相關設定歸類整合,並在設定間共享值,以簡化部署流程。 您新增至環境的屬性,會自動套用至使用該環境的設定。 在配置中,您可以置換環境所提供的任何值。 欲了解更多資訊,請參閱 使用環境的優勢

編輯設定時,您可在「定義詳細資訊」區段中為該設定選擇要使用的環境。

開始之前

您必須在 IBM Cloud® Projects 服務中擁有編輯者角色或更高權限,才能建立和編輯環境。 有關存取權限的詳細資訊,請參閱《 指派使用者存取專案的權限 》。

透過控制台建立環境

要從您的專案建立環境,請完成以下步驟:

  1. 在控制台 IBM Cloud ,點擊圖示 導航選單圖示導航選單 > 專案 並選擇一個專案。
  2. 從「管理」標籤頁中,選擇「環境」。
  3. 按一下建立
  4. 為您的環境命名,然後點擊「新增」以添加屬性。

您可以將三類屬性新增至環境:驗證、合規性與輸入。 您可以手動新增這些屬性,或從專案中的設定檔一次新增多個屬性。

手動新增屬性

若需手動新增屬性,請優先考慮添加驗證方法。 需提供目標帳戶的驗證方式,方能授權將部署推送至該目標帳戶。 若您想從目標帳戶拉取 Workload Protection 策略,此驗證方法亦適用於此情境。 您只能為一個環境新增一個驗證屬性,且僅當目標帳戶中已存在欲使用的 Workload Protection 實例、區域及政策時,方可為該環境新增合規性屬性。 您的 Workload Protection 例也必須啟用 CSPM 功能。 您無法新增 使用可部署架構預設控制項 的合規性屬性,因為這些預設控制項會因架構而異。

若要新增合規性屬性並從 Workload Protection 指定政策,您必須先在環境中提供包含有效驗證詳細資訊的驗證屬性。 您可以 使用 API 金鑰透過 Secrets Manager 進行驗證,或 使用受信任的設定檔 來驗證目標帳戶,該帳戶內含您的 Workload Protection 附件。

驗證與合規資訊會應用於所有設定,因此若您在環境中新增驗證屬性或合規屬性,該屬性將自動套用至所有使用該環境的設定。

輸入值亦可作為屬性添加至您的環境中。 當您將輸入新增至環境時,該環境中輸入的名稱必須與使用該環境的設定檔中輸入的名稱完全一致。 若名稱不符,則環境中的值不會用於配置。 例如,若您在環境中新增一個輸入並命名為 resource_group,但使用該環境的某個設定檔內存在名為 的輸入,則該設定 resourcegroup 檔將不會採用環境中的值。

多種架構可共用相同環境,但並非所有架構對相似值都採用相同的輸入名稱。 您可以在環境中添加多個輸入項目,這些項目可以具有相同的值,但名稱不同。 例如,您可以新增兩個輸入屬性,並將其中一個命名為,resource_group 另一個命名為 resourcegroup。 保持兩項屬性的數值相同。 任何使用環境變數且具有 輸入 resource_group 名稱 或 輸入 resourcegroup 名稱 的設定,都將採用環境變數中的相同值。

若要手動新增屬性,請完成下列步驟:

  1. 建立環境後,請點擊該環境的 編輯圖示 圖示 編輯

  2. 按一下新增 > 手動新增...

  3. 請選擇您要新增的物業類別。

    請先考慮為目標帳戶新增一個驗證屬性,並填入有效的驗證詳細資訊。

  4. 提供房產的詳細資訊,然後點擊「新增」。

  5. 按一下儲存

從設定新增屬性

透過從單一設定檔中將多個屬性新增至您的環境,節省時間並減少錯誤。 透過此操作,您有助於確保屬性在您的環境中保持準確,因為輸入的名稱和值會直接從您所選的設定中提取。 在您從設定檔中新增屬性後,即可在環境中編輯這些屬性,而不會影響您的設定檔。 未來對組態的編輯不會影響環境中的屬性。

要從配置中新增多個屬性,請完成以下步驟:

  1. 建立環境後,請點擊該環境的 編輯圖示 圖示 編輯
  2. 點擊 「新增」 > 「從設定新增…」
  3. 選擇您要用來為環境新增屬性的設定。
  4. 從配置中選取您要新增至環境的項目,然後點擊「新增」。

使用 CLI 建立環境

若要透過命令列介面建立環境,請執行以下 ibmcloud project environment-create 指令:

ibmcloud project environment-create --project-id PROJECT-ID [--definition DEFINITION]

在 內 definition,您可以透過 使用 選項 inputs 來指定要包含在環境中的輸入屬性。 同樣地,您可以在環境中透過在 內使用 選項 authorizations``definition 來指定驗證屬性。 此外,您亦可透過在 中包含 選項 compliance-profile``definition 來新增合規屬性。

例如,以下指令會建立一個名為 development 的環境,該環境包含一個輸入屬性,用於定義資源群組:

ibmcloud project environment-create \
     --project-id exampleString \
     --definition '{"name": "development", "inputs": {"resource_group" : "stage"}}'

同樣地,以下指令會建立一個名為 development 的環境,該環境包含一個輸入屬性,用於定義資源群組。 可信賴的個人資料 亦作為驗證屬性提供:

ibmcloud project environment-create \
     --project-id exampleString \
     --definition '{
    "name": "development",
    "authorizations": {
      "method": "trusted_profile",
      "trusted_profile_id": "<trusted-profile-id>"
    },
    "inputs": {
      "resource_group": "stage"
    },
    "compliance_profile": {
      "id": "<profile-id>",
      "instance_id": "<instance-id>",
      "instance_location": "us-south",
      "profile_name": "{\"instance_crn\":\"crn:v1:staging:public:compliance:us-south:a/<account>:<instance-id>::\",\"instance_label\":\"compliance\",\"name\":\"Basic Control\",\"version\":\"1.0.0\",\"attachment_label\":\"basic\"}",
      "attachment_id": "<attachment-id>"
    }
  }'

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

使用 API 建立環境

您可以透過程式化方式呼叫專案 API 來建立環境,如下列範例請求所示。 此範例建立了一個名為 development 的環境,並具有兩個輸入屬性:一個用於定義資源群組,另一個用於定義區域:

curl -X POST --location --header "Authorization: Bearer {iam_token}" \
  --header "Accept: application/json" \
  --header "Content-Type: application/json" \
  --data '{ "definition": { "name": "development", "description": "The environment 'development'", "authorizations": { "method": "api_key", "api_key": "TbcdlprpFODhkpns9e0daOWnAwd2tXwSYtPn8rpEd8d9" }, "inputs": { "resource_group": "stage", "region": "us-south" }, "compliance_profile": { "id": "some-profile-id", "instance_id": "some-instance-id", "instance_location": "us-south", "profile_name": "some-profile-name", "attachment_id": "some-attachment-id" } } }' \
  "{base_url}/v1/projects/{project_id}/environments"