

# 開始使用 Amazon Bedrock AgentCore 執行期直接程式碼部署
<a name="runtime-get-started-code-deploy"></a>

直接程式碼部署可讓您將代理程式帶到 Amazon Bedrock AgentCore 執行期，只需在 .zip 檔案存檔中封裝代理程式程式碼及其相依性即可。您的代理程式仍然需要遵循 [AgentCore 執行期要求](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/runtime-service-contract.html)。

若要將部署套件建立為 .zip 檔案封存，您可以使用 [AgentCore CLI](https://github.com/aws/agentcore-cli) 或遵循以下特定語言指南中的步驟，或任何其他 .zip 檔案公用程式，例如 [7zip](https://www.7-zip.org/download.html)。以下各節顯示的範例假設您在 Linux 或 MacOS 環境中使用命令列 `zip` 工具。若要在 Windows 中使用相同命令，您可以[安裝適用於 Linux 的 Windows 子系統](https://docs.microsoft.com/en-us/windows/wsl/install-win10)，以取得 Ubuntu 和 Bash 的 Windows 整合版本。

請注意，AgentCore 執行期使用 POSIX 檔案許可，因此您可能需要在建立 .zip 檔案封存之前[設定部署套件資料夾的許可](https://aws.amazon.com/premiumsupport/knowledge-center/lambda-deployment-package-errors/)。

**Topics**
+ [直接程式碼部署概念](#runtime-code-deploy-concepts)
+ [Python 的直接程式碼部署](runtime-get-started-code-deploy-python.md)
+ [Node.js 的直接程式碼部署](runtime-get-started-code-deploy-node.md)
+ [支援的語言執行時間和取代政策](runtime-code-deploy-supported-runtimes.md)
+ [對直接程式碼部署進行故障診斷](runtime-code-deploy-common-issues.md)

## 直接程式碼部署概念
<a name="runtime-code-deploy-concepts"></a>

了解搭配 Amazon Bedrock AgentCore 執行期使用直接程式碼部署時的重要概念。

**Topics**

### 直接程式碼部署的共同責任模型
<a name="concept-shared-responsibility"></a>

具有直接程式碼部署的 Amazon Bedrock AgentCore 執行期使用與 AWS Lambda 類似的共同責任模型。AgentCore Runtime 會管理語言執行期環境，並自動套用安全修補程式，同時專注於您的代理程式程式碼和相依性。

如果您使用[容器映像來部署代理程式](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/getting-started-custom.html) ，則 AgentCore 執行期負責僅修補運算核心。在此情況下，您必須負責從最新的安全映像重建代理程式的容器映像，並重新部署容器映像。

以下表進行總結：


| 部署模式 | AgentCore 執行期的責任 | 您的責任 | 
| --- | --- | --- | 
| 直接部署模式 | 發佈新的語言執行時間版本，其中包含語言執行時間的最新修補程式。將語言執行期修補程式套用至現有的 AgentCore 執行期直接部署。 | 更新您的代理程式程式碼，包括相依性，以解決任何安全漏洞。 | 
| 容器映像 | 使用最新版本自動修補基礎運算作業系統核心。 | 更新您的代理程式程式碼，包括相依性，以解決任何安全漏洞。使用最新的基礎映像，定期重建和重新部署容器映像。 | 

如需 共同責任的詳細資訊 AWS，請參閱[共同責任模型](https://aws.amazon.com/compliance/shared-responsibility-model/)。

AgentCore 執行期可讓每個直接程式碼部署執行期保持在最新狀態，其中包含安全性更新、錯誤修正、新功能、效能增強和次要版本版本的支援。這些執行階段更新會發佈為*執行階段版本*。AgentCore 執行期會將代理程式從較早的執行期版本遷移至新的執行期版本，以套用直接程式碼部署執行期更新至代理程式。

對於直接部署執行期，AgentCore 執行期會自動套用執行期更新。透過自動執行期更新，AgentCore 執行期會承擔修補執行期版本的操作負擔。對於大多數客戶來說，這應該是安全的選擇，因為只會自動套用語言執行期修補程式，而且客戶必須負責攜帶和管理其程式碼相依性。AgentCore Runtime 目前不支援變更此自動修補行為。

AgentCore 執行期致力於提供與現有函數回溯相容的執行期更新。但是與軟體修補一樣，在極少數情況下，執行階段更新可能會對現有函數產生負面影響。例如，安全性修補程式可能會暴露現有函數的潛在問題，取決於先前的不安全行為。在極少數情況下，如果無法接受此風險，請使用[容器映像來部署您的代理](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/getting-started-custom.html)程式。

### 容器與直接程式碼部署比較
<a name="concept-container-vs-direct"></a>

比較的一些維度，以查看一個選項與另一個選項的差異，因此選擇正確的選項有幫助
+  **部署程序** ：直接程式碼部署會使用 ZIP 檔案而非容器部署代理程式，將自己借給更快速的開發反覆運算。
+  **部署時間** ：雖然在第一次部署代理程式期間沒有太大的差異，但透過直接程式碼部署，代理程式的後續更新會明顯更快。
+  **自訂** ：直接程式碼透過以 ZIP 為基礎的封裝支援自訂相依性，同時維持部署的簡單性，而容器則取決於 Docker 檔案。
+  **套件大小** ：直接程式碼部署會將套件大小限制為 250MB，而容器型套件的大小上限為 2GB。
+  **工作階段建立速率** ：相較於使用容器型部署的 1.6 個新工作階段，直接程式碼部署允許更高每秒 25 個新工作階段的工作階段建立。

我們的一般指引是
+ 如果部署套件的大小超過 250MB，而且您擁有現有的容器 CI/CD 管道，而且您需要高度專業化的相依性和封裝，則容器型部署是不錯的選擇。
+ 如果部署套件的大小很小，程式碼和套件在建置和使用常見的架構和語言並不複雜，而且您需要快速原型設計和反覆運算，則直接程式碼部署將是選項。

還有一個混合選項，開發人員可以使用直接程式碼部署來快速實驗和原型代理程式，然後切換到容器型部署 （基於上述原因） 來開發、測試和部署到生產環境。