

# 在 Amazon Glue 中更新蓝图
<a name="updating_blueprints"></a>

如果您具有修订的布局脚本、修订的蓝图参数集或修订的支持文件，则可以更新蓝图。更新蓝图将创建一个新版本。

更新蓝图不会影响根据蓝图创建的现有工作流。

您可以通过使用 Amazon Glue 控制台、Amazon Glue API 或 Amazon Command Line Interface（Amazon CLI）更新蓝图。

以下程序假设 Amazon Glue 开发人员已经创建更新后的蓝图 ZIP 格式归档并将其上传到 Amazon S3。

**更新蓝图（控制台）**

1. 确保您对 Amazon S3 中的蓝图 ZIP 格式归档具有读取权限（`s3:GetObject`）。

1. 通过 [https://console.aws.amazon.com/glue/](https://console.amazonaws.cn/glue/) 打开 Amazon Glue 控制台。

   以具有蓝图更新权限的用户身份登录。切换到包含蓝图 ZIP 格式归档的 Amazon S3 存储桶所在的相同 Amazon 区域。

1. 在导航窗格中，选择 **blueprints（蓝图）**。

1. 在 **blueprints（蓝图）**页面上，选择一个蓝图，然后在 **Actions（操作）**菜单上选择 **Edit（编辑）**。

1. 在 **Edit a blueprint (编辑蓝图)** 页面上，更新蓝图 **Description (描述)** 或者 **ZIP archive location (S3) (ZIP 归档位置（S3）)**。请务必在路径中包含归档文件的名称。

1. 选择 **Save (保存)**。

   返回 **blueprints（蓝图）**页面，蓝图状态显示为 `UPDATING`。选择刷新按钮，直到状态更改为 `ACTIVE` 或者 `FAILED`。

1. 如果状态为 `FAILED`，则选择蓝图，然后在 **Actions (操作)** 菜单上，选择 **View (查看)**。

   详细信息页面会显示故障原因。如果错误消息为“Unable to access object at location...”或者“Access denied on object at location...”，请检查以下要求：
   + 您在登录时使用的用户身份必须对 Amazon S3 中的蓝图 ZIP 格式归档具有读取权限。
   + 包含 ZIP 格式归档的 Amazon S3 存储桶必须具有存储桶策略，该策略会为您的 Amazon 账户 ID 授予对象读取权限。有关更多信息，请参阅 [发布蓝图](developing-blueprints-publishing.md)。
   + 您使用的 Amazon S3 存储桶必须位于您在控制台上登录的相同区域。
**注意**  
如果更新失败，则下次蓝图运行将使用已成功注册或更新的最新蓝图版本。

**更新蓝图（Amazon CLI）**

1. 输入以下命令。

   ```
   aws glue update-blueprint --name {{<blueprint-name>}} [--description {{<description>}}] --blueprint-location s3://{{<s3-path>}}/{{<archive-filename>}}
   ```

1. 要检查蓝图状态，请输入以下命令。重复该命令，直到状态变为 `ACTIVE` 或者 `FAILED`。

   ```
   aws glue get-blueprint --name {{<blueprint-name>}}
   ```

   如果状态为 `FAILED` 并且错误消息为“Unable to access object at location...”或“Access denied on object at location...”，请检查以下要求：
   + 您在登录时使用的用户身份必须对 Amazon S3 中的蓝图 ZIP 格式归档具有读取权限。
   + 包含 ZIP 格式归档的 Amazon S3 存储桶必须具有存储桶策略，该策略会为您的 Amazon 账户 ID 授予对象读取权限。有关更多信息，请参阅 [发布蓝图](developing-blueprints-publishing.md)。
   + 您使用的 Amazon S3 存储桶必须位于您在控制台上登录的相同区域。

**另请参阅**  
[Amazon Glue 中的蓝图概览](blueprints-overview.md)