

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 开始使用 Amazon Bedrock AgentCore Runtime 直接代码部署
<a name="runtime-get-started-code-deploy"></a>

通过直接代码部署，您只需将代理代码及其依赖项打包到.zip 文件存档中，即可将代理引入 Amazon Bedrock AgentCore Runtime。您的代理仍需要遵循[AgentCore 运行时要求](https://docs.amazonaws.cn/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](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-integrated 版本。

请注意， AgentCore Runtime 使用 POSIX 文件权限，因此在创建 .zip 文件存档[之前，您可能需要为部署包文件夹](https://www.amazonaws.cn/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>

了解在亚马逊 Bedrock R AgentCore untime 中使用直接代码部署时的关键概念。

**Topics**

### 直接代码部署的责任共担模型
<a name="concept-shared-responsibility"></a>

具有直接代码部署功能的亚马逊 Bedrock AgentCore Runtime 使用类似于 Amazon Lambda 的责任共担模型。 AgentCore Runtime 管理语言运行时环境并自动应用安全补丁，而您可以专注于代理代码和依赖关系。

如果你使用[容器镜像来部署代理](https://docs.amazonaws.cn/bedrock-agentcore/latest/devguide/getting-started-custom.html)，那么 AgentCore Runtime 只负责修补计算内核。在这种情况下，你负责从最新的安全镜像重建代理的容器镜像并重新部署容器镜像。

下表对此进行了总结：


| Deployment mode (部署模式) | AgentCore 运行时的责任 | 由您负责 | 
| --- | --- | --- | 
| 直接部署模式 | 发布包含语言运行时最新补丁的新语言运行时版本。将语言运行时补丁应用于现有的 AgentCore 运行时直接部署。 | 更新您的代理代码，包括依赖关系，以解决任何安全漏洞。 | 
| 容器映像 | 使用最新版本自动修补底层计算操作系统内核。 | 更新您的代理代码，包括依赖关系，以解决任何安全漏洞。使用最新的基础映像定期重新构建和重新部署您的容器映像。 | 

有关与共担责任的更多信息 Amazon，请参阅责任[共担模型](https://www.amazonaws.cn/compliance/shared-responsibility-model/)。

AgentCore Runtime 通过安全更新、错误修复、新功能、性能增强和对次要版本版本的支持，使每个直接代码部署运行时保持最新状态。这些运行时更新作为*运行时版本发布*。 AgentCore 运行时通过将代理从较早的运行时版本迁移到新的运行时版本，将直接的代码部署运行时更新应用到代理。

对于直接部署 AgentCore 运行时，Runtime 会自动应用运行时更新。通过自动运行时更新， AgentCore Runtime 承担了修补运行时版本的操作负担。对于大多数客户来说，这应该是一个安全的选择，因为只会自动应用语言运行时补丁，并且客户有责任带来和管理他们的代码依赖关系。当前， AgentCore Runtime 不支持更改这种自动修补行为。

AgentCore Runtime 努力提供与现有函数向后兼容的运行时更新。但是，与软件修补一样，在极少数情况下，运行时更新会对现有函数产生负面影响。例如，安全性补丁可能会暴露现有函数的潜在问题，而该问题取决于先前的不安全行为。如果在极少数情况下这种风险不可接受，请使用[容器镜像来部署您的代理](https://docs.amazonaws.cn/bedrock-agentcore/latest/devguide/getting-started-custom.html)。

### 容器与直接代码部署的比较
<a name="concept-container-vs-direct"></a>

比较的一些维度，以了解一个选项与另一个选项有何不同，因此选择正确的选项会有所帮助
+  **部署流程**：直接代码部署使用 ZIP 文件而不是容器部署代理，从而加快开发迭代速度。
+  **部署时间**：尽管代理的首次部署没有太大区别，但通过直接部署代码，代理的后续更新要快得多。
+  **自定义**：直接代码通过 ZIP-based 打包支持自定义依赖关系，同时保持部署的简便性，而基于容器的依赖于 Docker 文件。
+  **包大小**：直接代码部署将包大小限制为 250MB，而基于容器的软件包的大小可以高达 2GB。
+  **会话创建率**：直接代码部署允许更高的会话创建 25 个新会话， sessions/second 而基于容 sessions/second 器的部署则为 1.6 个新会话。

我们的总体指导是
+ 如果部署包的大小超过 250MB，并且您有现有的容器 CI/CD 管道，并且需要高度专业化的依赖关系和打包，那么基于容器的部署是一个不错的选择。
+ 如果部署包的大小很小，代码和包的构建并不复杂，并且使用通用的框架和语言，并且需要快速原型设计和迭代，则可以选择直接代码部署。

也可以有混合选项，开发人员使用直接代码部署来快速实验和原型代理，然后切换到基于容器的部署（出于上述原因）进行开发、测试和部署到生产环境。