觀點 · 資訊分享
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 的 AI 代理現在能讀懂你的 .NET 程式,把呼叫 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 個:美東(維吉尼亞北部)、孟買、東京、首爾、雪梨、加拿大中部、法蘭克福、倫敦。公告頁沒有提到價格。
流程怎麼走?
- 送出原始碼:AWS Transform 找出程式碼裡用到的 Azure SDK
- 看評估報告:檢視評估報告與現代化計畫裡列出的轉換選項
- 接受或調整:可以選擇不轉某些服務、指定命名規則,甚至改變轉換目標(例如 Blob 改存 DynamoDB 而不是 S3)
- 執行轉換:改寫成對應的 AWS SDK 呼叫,並驗證修改有套用進去
給開發者的技術細節
依官方使用指南,SDK 的對應關係是:
Azure.Storage.Blobs改成Amazon.S3Azure.Storage.Queues改成Amazon.SQSMicrosoft.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):先放一個空殼函式佔位置,提醒之後要補上真正的實作。