觀點 · 資訊分享

AWS Transform 能把 .NET 程式從 Azure 改寫成 AWS 版:Functions 變 Lambda、Blob 變 S3

AWS Transform 正式支援把 .NET 程式裡呼叫 Azure 的程式碼,自動改寫成呼叫 AWS 對應服務:Azure Functions 轉 Lambda、Blob Storage 轉 S3、Queue Storage 轉 SQS,Cosmos DB 轉 DynamoDB 還在預覽。

發布
2026-10-17
篇幅
約 4 分鐘 · 1,830 字
結構
7 節 + 3 題常見問題
標籤
#AWS#AWS Transform#.NET#雲端遷移
AWS Transform 能把 .NET 程式從 Azure 改寫成 AWS 版:Functions 變 Lambda、Blob 變 S3

一句話看懂:AWS 的 AI 代理現在能讀懂你的 .NET 程式,把呼叫 Azure 服務的程式碼自動改寫成呼叫 AWS 對應服務,讓「換雲端」最累的改程式碼工作先被做掉一大半。

AWS Transform 幫 .NET 程式搬離 Azure資訊圖卡:把程式裡呼叫 Azure 服務的程式碼,自動改成呼叫 AWS 對應服務

先用白話講:這個功能在做什麼?

想像你搬家時,舊家所有電器都是 110V,新家卻只有 220V 插座。最麻煩的不是搬箱子,而是每一台電器都要換插頭、換變壓器。

雲端搬家也是這樣。程式裡到處都是「呼叫 Azure 的存檔服務」「呼叫 Azure 的佇列」這種寫法,換到 AWS 之後,每一行都要改成 AWS 的寫法。AWS Transform 的新功能,就像一位幫你逐台換插頭的師傅:自動找出這些地方,改成 AWS 版本,換不了的就貼張便條紙提醒你。

發生什麼事

AWS 在 10 月 16 日宣布,AWS Transform 的 Azure 轉 AWS 程式碼改寫正式上線,由 .NET 現代化代理執行。目前支援四種服務:

服務類型 Azure AWS 狀態
無伺服器函式 Azure Functions AWS Lambda 正式
物件儲存 Azure Blob Storage Amazon S3 正式
訊息佇列 Azure Queue Storage Amazon SQS 正式
NoSQL 資料庫 Azure Cosmos DB Amazon DynamoDB 預覽

可用區域共 8 個:美東(維吉尼亞北部)、孟買、東京、首爾、雪梨、加拿大中部、法蘭克福、倫敦。公告頁沒有提到價格。

流程怎麼走?

  1. 送出原始碼:AWS Transform 找出程式碼裡用到的 Azure SDK
  2. 看評估報告:檢視評估報告與現代化計畫裡列出的轉換選項
  3. 接受或調整:可以選擇不轉某些服務、指定命名規則,甚至改變轉換目標(例如 Blob 改存 DynamoDB 而不是 S3)
  4. 執行轉換:改寫成對應的 AWS SDK 呼叫,並驗證修改有套用進去

給開發者的技術細節

依官方使用指南,SDK 的對應關係是:

  • Azure.Storage.Blobs 改成 Amazon.S3
  • Azure.Storage.Queues 改成 Amazon.SQS
  • Microsoft.Azure.Cosmos 改成 Amazon.DynamoDBv2(預覽)
  • Azure Functions 會重寫成 Lambda 函式

要注意的限制:

  • 只改程式碼:不處理雲端基礎設施的搬遷,資源要另外建
  • 只轉列出的服務:其他服務官方建議用 AWS Transform custom 或 Kiro 這類 AI 程式助手
  • 改不動的會標記:用 TODO 註解、樁程式碼,或產生的下一步說明檔列出來
  • 預設自動啟用:符合條件的現代 .NET 專案會自動轉換,不想要就在計畫或對話裡關掉

我的看法

我自己主要寫 .NET,接案時偶爾會遇到客戶因為價格或合約想換雲端。真正拖時間的通常不是搬資料,而是程式裡散落各處的 SDK 呼叫,每一處都要改、都要測。

這個功能能省下第一輪的機械式改寫,但我不會把它當成「按一下就搬完」。轉換後的程式碼一定要跑過完整測試,尤其是 Cosmos DB 轉 DynamoDB,兩邊的資料模型差很多,而且官方還標示是預覽。比較穩的做法是先拿一個小的 Function 試轉,看看產出的程式碼品質,再決定要不要整個專案交給它。

名詞小辭典

  • SDK:雲端廠商提供的程式庫,讓程式可以直接呼叫雲端服務。
  • 無伺服器函式(Serverless Function):只寫一小段程式,由雲端負責執行與擴展,不用自己管主機。
  • 訊息佇列(Queue):讓不同程式之間排隊傳遞工作的服務,前面的程式丟進去,後面的程式慢慢處理。
  • 樁程式碼(Stub):先放一個空殼函式佔位置,提醒之後要補上真正的實作。

資料來源

常見問題

它會幫我把 Azure 上的資源搬到 AWS 嗎?
不會。官方文件寫明這個功能只轉換應用程式程式碼,不處理雲端基礎設施的遷移,資料庫、儲存體、網路等資源要另外規劃搬移。
支援哪些程式語言?
這次公告只針對 .NET 應用程式,由 AWS Transform 的 .NET 現代化代理處理。其他雲端服務或其他需求,官方建議用 AWS Transform custom 或 Kiro 這類 AI 程式助手。
可以不要它自動改某些服務嗎?
可以。符合條件的 .NET 專案會自動啟用轉換,但你可以編輯現代化計畫、在代理對話中下指示,或提供引導文件,選擇不轉換某些服務、指定命名慣例,甚至改變轉換目標。
LINE