本文說明 Java 開發人員可用於 GitHub Copilot 應用程式現代化的預先定義工作。
預先定義的工作會擷取使用 Azure 服務的業界最佳做法。 目前,GitHub Copilot 應用程式現代化提供涵蓋常見移轉案例的預先定義工作。 這些工作涉及下列主題,以及更多內容:
- 秘密管理
- 消息佇列整合
- Monitoring
- 身分識別管理
Note
此清單會根據客戶意見反應和不斷演進的雲端需求而成長。
下列影片示範如何使用 GitHub Copilot 應用程式現代化來套用預先定義的工作,將 Java 專案移轉至 Azure:
工作清單
GitHub Copilot 應用程式現代化目前支援下列預先定義的工作:
Spring RabbitMQ 到 Azure 服務總線
此工作會轉換使用 Spring Messaging 架構的應用程式,包括 Spring Advanced Message Queuing Protocol (AMQP) 和 Spring Java Message Service (JMS) - 搭配 RabbitMQ,將其變更為改用受控服務 Azure 服務總線。 消息佇列互動邏輯會調整為 Azure 服務匯流排的相等功能,並保留傳訊模式和語義,同時預設啟用安全的驗證機制。
將資料庫移轉至 Azure 的受控識別
Azure 資料庫供應專案 - Azure SQL Server、適用於 MySQL 的 Azure 資料庫、適用於 PostgreSQL 的 Azure 資料庫、適用於 Cassandra API 的 Azure Cosmos DB 和適用於 MongoDB 的 Azure Cosmos DB - 支援使用受控識別的安全登入。 當您將應用程式從本機資料庫移轉至受控 Azure 雲端資料庫時,此工作可協助您準備程式代碼基底,以向資料庫進行受控識別驗證。
Azure 上認證移轉的受控識別
使用連接字串的驗證會導致安全性弱點和維護額外負荷。 此工作會轉換 Java 應用程式,以針對 Azure 事件中樞和 Azure 服務總線等傳訊服務使用 Azure 的受控識別驗證。 當您與 Microsoft 身分識別用戶端程式庫整合時,您的程式碼不再需要在組態檔中儲存敏感性連接字串或共用存取簽章。
Amazon Web Services (AWS) S3 至 Azure 記憶體 Blob
當您將服務從 AWS 移轉至 Azure 時,您可以從 AWS S3 轉換至 Azure 記憶體 Blob。 此工作可協助您將與 AWS S3 互動的程式代碼邏輯轉換成使用 Azure 記憶體 Blob 運作的程式碼邏輯,同時維護相同的語意。
記錄至本機檔案
根據預設,Azure 主控服務會與 Azure 監視器整合,收集控制台的記錄輸出,並讓您查詢和監視它們。 同時,不建議記錄到雲端環境中的檔案,因為它需要額外的記錄輪替和傳輸。 這項工作可協助您將應用程式中的檔案型記錄轉換成控制台型記錄,使其準備好與 Azure 監視器整合。
本機檔案 I/O 至 Azure 儲存體檔案共用掛載
Azure 托管服務在部署、調整、故障轉移等方面提供彈性,並提供更多功能。 同時,指定應用程式運行時間的檔案系統是暫時性的。 如果您的應用程式從本機檔案讀取或寫入,此工作可協助您識別這類案例,並將其轉換成統一掛接路徑存取。 如此一來,您可以將 Azure 記憶體檔案共用掛接至指定的路徑,讓應用程式能夠跨不同的複本共用和保存數據,而不必擔心重新配置、故障轉移或類似問題。
Java Mail 至 Azure 通訊服務
使用簡單郵件傳輸通訊協定 (SMTP) 相依性移轉應用程式可能會很困難,因為並非所有 Azure 環境都支援埠 25 上的傳出要求。 此工作可協助轉換透過 SMTP 傳送郵件的應用程式,以使用與 Azure 裝載環境完全相容的 Azure 通訊服務。
Azure Key Vault 的憑證和秘密管理
此工作可協助將敏感性安全性資產移轉至 Azure Key Vault。 它支援代碼庫中的硬編碼密鑰,以及在 Java KeyStores 中管理的本地 TLS/mTLS 憑證。 針對秘密,它會識別可疑的秘密文字,並將其轉換成從 Azure Key Vault 擷取數據的邏輯。 針對憑證,它會將您的應用程式從本機管理憑證轉換為使用 Azure Key Vault 的 Java 密碼編譯架構 (JCA) 提供者,同時維持相同的功能和安全性狀態。
用戶驗證以Microsoft Entra ID 驗證
Java 應用程式通常會使用不容易移轉至 Azure 的 LDAP 型驗證解決方案。 這項工作可協助您將本機使用者驗證機制轉換為使用 Microsoft Entra ID 進行驗證的驗證機制。
SQL 方言:Oracle 至 PostgreSQL
當您從 Oracle 轉換到 PostgreSQL 時,SQL 方言的差異可能會帶來重大挑戰。 此工作會將 Java 程式代碼中的 Oracle 特定 SQL 查詢、數據類型和專屬函式轉換為其 PostgreSQL 對等專案,以確保與適用於 PostgreSQL 的 Azure 資料庫緊密整合。
AWS Secrets Manager 到 Azure Key Vault
從 AWS 秘密管理員移至 Azure Key Vault 需要重新設定應用程式處理敏感性資訊的方式。 此工作會轉換程式碼中秘密管理的所有層面 (從建立和擷取到更新和刪除),並使用 Azure 金鑰保存庫的完整安全性功能和驗證模型。
ActiveMQ to Azure 服務總線
以 Apache ActiveMQ 為基礎的應用程式可以現代化,以使用 Azure 的受控傳訊服務。 此工作會將您的 ActiveMQ 訊息產生者、取用者、連線處理站和佇列/主題互動轉換為其 Azure 服務總線對等專案,並在雲端環境中實作可靠性和驗證的最佳做法。
Amazon Web Services (AWS) 簡單佇列服務 (SQS) 至 Azure 服務總線
從 AWS SQS 轉換至 Azure 服務總線牽涉到重新實作佇列作業和訊息處理模式。 此工作會將 SQS 特定的程式代碼建構轉譯為其 Azure 服務總線對應專案,並保留重要的傳訊語意,例如至少一次傳遞、訊息批處理和可見度逾時行為,同時引進 Azure 增強的安全性功能。