

终止支持通知：2025年9月15日， AWS 我们将停止对Amazon Lex V1的支持。2025 年 9 月 15 日之后，您将无法再访问 Amazon Lex V1 控制台或 Amazon Lex V1 资源。如果您使用的是 Amazon Lex V2，请改为参阅 [Amazon Lex V2 指南](https://docs.aws.amazon.com/lexv2/latest/dg/what-is.html)。

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

# 版本控制和别名
<a name="versioning-aliases"></a>

Amazon Lex 支持发布机器人、意图和插槽类型的版本，以便您可以控制客户端应用程序使用的实现。*版本* 是您工作的带编号快照，您可以发布版本以用于您的工作流的不同阶段，如开发、测试部署和生产。

Amazon Lex 机器人也支持别名。*别名* 是指向自动程序特定版本的指针。利用别名，您可以轻松更新您的客户端应用程序正在使用的版本。例如，您可以将别名指向您机器人的版本 1。当您准备更新机器人时，您可以发布版本 2，然后更改别名以指向新版本。由于您的应用程序使用的是别名而不是特定版本，因此您的所有客户端无需进行更新即可获得新功能。

**Topics**
+ [版本控制](#versioning-intro)
+ [Aliases](#aliases-intro)

## 版本控制
<a name="versioning-intro"></a>

当您对 Amazon Lex 资源进行版本控制时，您创建一个资源快照，从而能够以创建该版本时的资源状态使用该资源。版本创建后，在您继续处理应用程序时它将保持不变。

### \$1LATEST 版本
<a name="versioning-intro-create-function"></a>

当您创建 Amazon Lex 机器人、意图或插槽类型时，只有一个版本，即 `$LATEST` 版本。

![\[The $LATEST version of a bot.\]](http://docs.aws.amazon.com/zh_cn/lex/latest/dg/images/lex-only-bot.png)

`$LATEST` 是您的资源的工作副本。您只能更新 `$LATEST` 版本，直到您发布第一个版本之前，`$LATEST` 是您所拥有的唯一资源版本。

只有资源的 `$LATEST` 版本可以使用另一个资源的 `$LATEST` 版本。例如，自动程序的 `$LATEST` 版本可以使用目的的 `$LATEST` 版本，目的的 `$LATEST` 版本可以使用槽类型的 `$LATEST` 版本。

`$LATEST` 版本的机器人只应用于手动测试。Amazon Lex 限制可对 `$LATEST` 版本的机器人进行的运行时请求的数量。

### 发布 Amazon Lex 资源版本
<a name="versioning-intro-publish-version"></a>

当您发布资源时，Amazon Lex 将创建 `$LATEST` 版本的副本，并将其保存为带编号的版本。无法更改已发布版本。

![\[Publishing a new version of the bot.\]](http://docs.aws.amazon.com/zh_cn/lex/latest/dg/images/bot2.png) 

您可以使用 Amazon Lex 控制台或 [CreateBotVersion](API_CreateBotVersion.md) 操作创建和发布版本。有关示例，请参阅[练习 3：发布版本和创建别名](gettingstarted-ex3.md)。

当您修改 `$LATEST` 版本的资源时，可以发布新版本以做出可用于您的客户端应用程序的更改。每当您发布版本时，Amazon Lex 都会复制 `$LATEST` 版本以创建新版本并将版本号递增 1。版本号绝不会重复使用。例如，如果您删除版本编号为 10 的资源，然后再重新创建该资源，则 Amazon Lex 分配给它的下一个版本号是版本 11。

在发布自动程序前，必须先将它指向它所使用的任意目的的一个编号版本。如果您尝试发布使用 \$1LATEST 版本目的的自动程序新版本，Amazon Lex 会返回 HTTP 400 错误请求异常。在发布编号版本的目的之前，必须先将目的指向它所使用的任意槽类型的一个编号版本。否则您会收到 HTTP 400 错误请求异常。

![\[Publishing a new version of $LATEST.\]](http://docs.aws.amazon.com/zh_cn/lex/latest/dg/images/lex-publish-identical-bot.png) 

**注意**  
仅在上次发布的版本与 `$LATEST` 版本不同时，Amazon Lex 才会发布新版本。如果您尝试发布 `$LATEST` 版本而不对它进行修改，则 Amazon Lex 不会创建或发布新版本。

### 更新 Amazon Lex 资源
<a name="versioning-intro-updating-function-code"></a>

您只能更新 Amazon Lex 机器人、意图或插槽类型的 `$LATEST` 版本。无法更改已发布的版本。您在控制台中或者使用 [CreateBotVersion](API_CreateBotVersion.md)、[CreateIntentVersion](API_CreateIntentVersion.md) 或 [CreateSlotTypeVersion](API_CreateSlotTypeVersion.md) 操作更新资源后，随时可以发布新版本。

### 删除 Amazon Lex 资源或版本
<a name="versioning-intro-deleting-function-versions"></a>

Amazon Lex 支持使用控制台或以下 API 操作之一删除资源或版本：
+ [DeleteBot](API_DeleteBot.md)
+ [DeleteBotVersion](API_DeleteBotVersion.md)
+ [DeleteBotAlias](API_DeleteBotAlias.md)
+ [DeleteBotChannelAssociation](API_DeleteBotChannelAssociation.md)
+ [DeleteIntent](API_DeleteIntent.md)
+ [DeleteIntentVersion](API_DeleteIntentVersion.md)
+ [DeleteSlotType](API_DeleteSlotType.md)
+ [DeleteSlotTypeVersion](API_DeleteSlotTypeVersion.md)

## Aliases
<a name="aliases-intro"></a>

别名是指向 Amazon Lex 机器人特定版本的指针。使用别名可允许客户端应用程序使用特定版本的自动程序，而应用程序无需跟踪它是哪个版本。

以下示例显示 Amazon Lex 机器人的两个版本，版本 1 和版本 2。这两个自动程序版本各有一个关联的别名，分别为 BETA 和 PROD。客户端应用程序使用 PROD 别名来访问自动程序。

![\[Point a client application to a version by using an alias.\]](http://docs.aws.amazon.com/zh_cn/lex/latest/dg/images/lex-publish-alias-bot.png) 

当您创建另一个版本的自动程序时，您可以使用控制台或 [PutBot](API_PutBot.md) 操作更新别名以指向新版本的自动程序。当您更改别名时，您的所有客户端应用程序都将使用新版本。如果新版本出了问题，您只需通过更改别名以指向之前的版本，即可回滚到该版本。

![\[Updating an alias changes the version used by client applications.\]](http://docs.aws.amazon.com/zh_cn/lex/latest/dg/images/lex-publish-alias-bot-v2.png) 

**注意**  
虽然您可以在控制台中测试自动程序的 `$LATEST` 版本，但我们建议，在您将自动程序与您的客户端应用程序集成时，首先发布一个版本，然后创建一个指向该版本的别名。本部分中说明了在您的客户端应用程序中使用别名的原因。当您更新别名时，Amazon Lex 会等到所有当前会话的会话超时过期之后再开始使用新版本。有关会话超时的更多信息，请参阅[设置超时会话](context-mgmt-session-timeout.md)