本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS CloudFormation 語言伺服器
AWS CloudFormation 語言伺服器提供加速編寫infrastructure-as-code (IaC) 以及安全且自信地部署 AWS 資源的功能。它遵循語言伺服器通訊協定
與語言伺服器整合的 AWS CloudFormation IDEs
AWS Toolkit 擴充功能整合 CloudFormation 語言伺服器,以增強撰寫體驗。VS 程式碼型 IDEs 目前支援此整合,包括:
開始使用
主題
先決條件
在開始之前,請確認:
-
您在支援的作業系統 (macOS、 Windows或 ) 上使用 VS 程式碼型 IDELinux。
-
您已為 IDE 安裝或升級至最新版本的 AWS Toolkit
。
AWS CloudFormation 語言伺服器中的某些功能需要作用中 AWS 帳戶 和設定的登入資料。您必須使用有效的登入資料, AWS 帳戶 透過 AWS Toolkit 登入您的 。
步驟 1:安裝或升級 AWS Toolkit
-
開啟 IDE 的延伸模組或外掛程式管理員。
-
搜尋 AWS Toolkit。
-
安裝或更新至適用於 IDE 的 AWS Toolkit 3.85.0 版或更新版本。
-
安裝後重新啟動 IDE。
注意:安裝後, AWS Toolkit 會自動啟用 CloudFormation IDE 支援。當您第一次使用語言伺服器延伸安裝或升級 AWS Toolkit AWS CloudFormation 時,系統會提示您授予 AWS 收集匿名使用資料的許可。此資料有助於 AWS 改善 CloudFormation 語言伺服器,並增強撰寫體驗。不會收集任何敏感資訊, AWS 也不會記錄或存放範本內容、資源組態或任何可識別身分的客戶資料。您可以隨時從 IDE 設定變更遙測偏好設定。所收集的用量資料僅著重於特徵互動和效能指標。這些洞見有助於 AWS 識別和排定改善的優先順序,例如更快的驗證、增強的自動完成和更好的錯誤診斷。
步驟 2:在 AWS Toolkit 面板中存取 CloudFormation
在 IDE 中,從活動列開啟 AWS Toolkit 面板。在 AWS 工具組下,選擇 CLOUDFORMATION。
面板區段:
-
區域:顯示目前的 AWS 區域。您可以透過選取區域名稱或使用 AWS CloudFormation:從命令調色盤選取區域命令來變更它。
-
環境:指出您在 期間選取的環境 CFN init(例如,dev、test 或 prod)。只有在完成環境選擇步驟後,才會顯示此值。
-
堆疊:顯示您帳戶中 CloudFormation 堆疊的分頁清單。
-
按一下重新整理圖示以更新堆疊清單。
-
使用 + 圖示將新範本部署為堆疊。
-
每個堆疊項目包括:
-
概觀:顯示堆疊摘要和狀態
-
堆疊 ID
-
Description
-
建立時間和更新時間
-
狀態和狀態原因
-
事件、輸出和資源
-
-
變更集
-
-
資源:選取資源類型之後,面板會顯示帳戶中該類型的 AWS 資源。您可以檢視、重新整理、複製或匯入範本。
步驟 3:驗證、測試和精簡您的範本
當您撰寫 CloudFormation 範本時,IDE 會提供智慧型撰寫協助,協助您更快速地建立準確且合規的基礎設施。CloudFormation 語言伺服器會在背景執行,並提供下列撰寫功能:
-
程式碼完成:根據 CloudFormation 結構描述建議資源類型、參數和屬性。
-
新增現有 AWS 資源:可讓您將現有資源從 匯入 AWS 帳戶 範本。IDE 使用 AWS 雲端控制 API (CCAPI) 擷取資源的即時組態和屬性,協助您複製或重複使用範本中的現有基礎設施。
將資源新增至範本
-
展開 CloudFormation 資源面板:在 AWS 工具組側邊面板中,展開 CloudFormation,然後在資源下按一下新增 + 圖示。
-
搜尋資源類型:若要尋找特定 AWS 資源類型,請在搜尋列中輸入您要新增的特定 AWS 資源類型。範例:
-
AWS::S3::Bucket -
AWS::Lambda::Function
您可以使用 來選取資源類型AWS CloudFormation:在命令調色盤中新增資源類型。
-
-
將資源新增至範本:在資源面板下,會顯示您帳戶中偵測到 AWS 的資源分頁清單。如果您有許多資源,則只會顯示第一頁。使用面板底部的導覽控制項來瀏覽其他頁面並檢視所有可用的資源。
-
選擇您要包含在範本中的資源。
-
視您的目標而定,您可以透過兩種方式將資源插入範本:
-
複製現有資源:使用現有 AWS 資源的即時組態和屬性,在範本中建立新的資源。
-
匯入現有資源:使用即時狀態將實際資源新增至範本,藉此將實際資源插入您的堆疊。
-
提示
-
您可以隨時重新整理資源面板,以檢視帳戶或區域中可用資源的最新清單。
-
如果您要匯入資源,請勿新增已屬於相同帳戶中現有 CloudFormation 堆疊的資源。
-
若要確認資源是否已由 CloudFormation 管理,請按一下資源名稱旁的 i (資訊) 圖示。
-
或者,您可以使用命令 AWS CloudFormation:取得堆疊管理資訊來檢查資源是否屬於堆疊。
新增相關資源
您可以使用命令 AWS CloudFormation:依類型新增相關資源,將相關資源新增至選取的資源。從範本中已定義的資源類型中選取資源類型後,IDE 會顯示通常與該類型相關聯或相依的資源清單。例如,如果您選取 AWS::EC2::Instance,IDE 可能會建議新增相關資源,例如 AWS::EC2::SecurityGroup或 AWS::EC2::Subnet。此功能可協助您快速建置連線的基礎設施元件,而無需手動搜尋相容的資源類型。
靜態驗證
CloudFormation IDE 提供內建的靜態驗證,採用 AWS CloudFormation Linter (cfn-lint)
靜態驗證概觀
您會在 IDE 中看到兩種類型的即時靜態驗證:
-
CloudFormation Linter (
cfn-lint):根據 CloudFormation 資源規格和結構描述規則驗證您的範本。 -
Guard (
cfn-guard):根據合規規則和組織政策套件驗證您的範本。
CloudFormation Linter (cfn-lint)
CloudFormation Linter 已整合至 IDE,可在您輸入時自動檢查範本語法和結構。
-
結構描述驗證:偵測語法和結構描述錯誤,以確保您的範本符合 CloudFormation 資源結構描述。
-
錯誤反白顯示:在問題下顯示紅色或黃色快速行,代表部署封鎖程式或警告。
-
將滑鼠游標暫留在說明上:當您將滑鼠暫留在錯誤上時,IDE 會顯示與該問題相關聯的診斷訊息。如果快速修正可用,也會在暫留面板中提供。
Guard 整合
Guard 會根據定義合規和安全性政策的規則集來驗證您的範本。IDE 透過 CloudFormation 語言伺服器即時執行 Guard 驗證,在您撰寫範本時提供立即的意見回饋。
-
預設規則套件:IDE 包含一組預先註冊的 Guard 規則,著重於資源安全和組態衛生的基礎最佳實務。進一步了解 防護規則登錄
檔的連結。 -
新增規則套件:若要新增或修改規則集,請開啟設定、保護,然後選取或上傳其他 Guard 規則套件。
秘訣:了解快速行指標
-
藍色小幫手:最佳實務提示或最佳化建議。
-
黃色小工具:非封鎖問題的警告 (例如,缺少標籤或參數)。
-
紅色小工具:部署封鎖程式,例如無效的屬性名稱、缺少必要欄位或結構描述不相符。
步驟 4:導覽範本
當您按一下 Explorer 中的範本檔案時,大綱面板會自動顯示 CloudFormation 範本的結構化階層檢視。它會將範本組織成 Parameters、Outputs、 Resources和 等區段Mappings,並顯示每個資源類型和邏輯 ID。這可讓您輕鬆地快速尋找和導覽至大型範本中的特定資源或參數。
您可以針對 GetAtt和 等內部函數使用 Go to DefinitionRef,可讓您直接跳到範本中參考的資源或參數。這可協助您追蹤相依性、了解資源關係,並更有效率地進行編輯。
步驟 5:驗證和部署
當您準備好部署 CloudFormation 範本時,請開啟命令面板並執行 AWS CloudFormation:驗證和部署。命令會驗證您的範本,如果找不到封鎖錯誤,則會進入部署階段。在確認之前,IDE 會顯示偏離感知變更集摘要和差異檢視,以便您可以檢閱所有提議的變更。
驗證的運作方式
IDE 會在部署之前自動執行驗證檢查,並根據常見的失敗原因驗證您的範本,包括:
-
屬性語法或結構描述不相符無效:這些問題通常在撰寫
cfn-lint期間由 發現,但如果使用者繼續部署而不解決,CloudFormation 的部署時間驗證將在建立或更新堆疊之前出現相同的錯誤。 -
資源名稱與您帳戶中的現有資源衝突。
-
服務特定的限制條件,例如 S3 儲存貯體名稱衝突或缺少加密。
如果驗證偵測到錯誤,IDE 會使用紅色或黃色快速行反白範本中的問題,並在 PROBLEMS 面板中列出錯誤。每個問題都包含導致失敗的特定屬性或資源,以及建議的修正。如果沒有封鎖錯誤,您可以繼續部署階段。
如果發現警告 (非封鎖問題),則會出現一個對話方塊,允許您繼續部署或取消並進行更正。
IDE 會開啟偏離感知變更集,顯示目前範本與已部署堆疊組態之間的任何差異。這可讓您在執行之前檢閱、確認或取消變更集。
注意:偏離感知變更集可讓您安全地處理堆疊偏離,以增強 CloudFormation 部署程序。當資源的實際狀態與 CloudFormation 範本中定義的狀態不同時,就會發生堆疊偏離,通常是由於透過 AWS 管理主控台、CLI 或 SDK 進行的手動變更。CloudFormation 偏離感知變更集會比較處理過的堆疊組態與即時資源狀態,而 IDE 會呈現這些差異,讓您可以在部署之前將資源恢復合規。
檢視堆疊事件
部署開始時,您可以導覽至面板中的 CloudFormation 索引標籤,以即時監控進度。在堆疊事件下,您會看到部署期間執行的操作清單。每個事件都包含詳細資訊,例如:
-
時間戳記:事件發生的時間
-
資源:正在建立、更新或刪除的特定 AWS 資源
-
狀態:操作的目前狀態 (例如
CREATE_IN_PROGRESS、UPDATE_COMPLETE或ROLLBACK_IN_PROGRESS) -
原因:其他內容或錯誤訊息,如適用
您也可以從此面板檢視堆疊的資源和輸出。如果您想要在 中開啟堆疊 AWS 管理主控台,請使用堆疊名稱旁的外部連結圖示。堆疊事件檢視可協助您追蹤部署進度、識別潛在問題,並確認堆疊何時成功完成。
在 IDE 中初始化 CloudFormation 專案
在 IDE 中初始化 CloudFormation 專案可協助您設定具有正確資料夾、環境組態和 AWS 憑證的結構化工作區,以便您可以可靠地驗證和部署範本。您可以直接從 IDE 初始化新的 CloudFormation 專案,以建立此建議設定。
若要初始化 CloudFormation 專案:
-
開啟命令調色盤
-
從您的 IDE 開啟命令調色盤 (
Ctrl+Shift+PCmd+Shift+P上的 或 macOS)。 -
選擇 AWS CloudFormation:CFN Init:初始化專案。
-
-
選擇專案目錄
-
根據預設,IDE 會使用您目前的工作目錄。
-
您可以將此路徑變更為您要存放 CloudFormation 範本的任何資料夾。
-
-
選取您的 AWS 登入資料設定檔
-
系統會提示您選擇 AWS 登入資料設定檔。選取的設定檔將用於環境偵測、驗證和部署。
-
-
設定您的環境
-
系統會提示您建立或選取環境。
-
環境會定義部署或驗證範本的位置和方式 (例如 dev、beta 或 production)。您可以使用 AWS CloudFormation:CFN Init:新增環境來選取或變更您的環境。
-
您可以使用 AWS CloudFormation:CFN Init: Remove Environment 來移除您選取的環境。
-
-
(選用) 匯入參數檔案
-
如果您已經有現有的參數檔案,IDE 可讓您在初始化期間匯入它們。
-
IDE 會自動偵測相容的檔案,並將其連結至您的專案,以用於範本驗證和部署。
-
-
命名並完成專案
-
提供專案名稱,例如 beta-environment,並完成設定。
-
IDE 會為您建立初始專案結構和組態檔案。
-
您可以直接從 IDE 執行驗證、預覽部署或切換環境。
開放原始碼
AWS CloudFormation 語言伺服器是依據 Apache-2.0授權進行開放原始碼,讓客戶能夠完整了解範本診斷、結構描述驗證和靜態分析的執行方式。對於在採用工具之前需要來源層級可見性的客戶,這可以減少安全和合規摩擦。
程式碼庫可在 GitHub 上公開取得:https://https://github.com/aws-cloudformation/cloudformation-languageserver/
需要幫助?
試用 CloudFormation 社群