

我们不再更新 Amazon Machine Learning 服务，也不再接受新用户使用该服务。本文档可供现有用户使用，但我们不会再对其进行更新。有关更多信息，请参阅[什么是 Amazon Machine Learning](https://docs.aws.amazon.com/machine-learning/latest/dg/what-is-amazon-machine-learning.html)。

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

# Amazon Machine Learning 参考
<a name="amazon-machine-learning-reference"></a>

**Topics**
+ [为 Amazon ML 授予从 Amazon S3 读取您的数据的权限](granting-amazon-ml-permissions-to-read-your-data-from-amazon-s3.md)
+ [向 Amazon ML 授予将预测输出到 Amazon S3 的权限](granting-amazon-ml-permissions-to-output-predictions-to-amazon-s3.md)
+ [使用 IAM 控制对 Amazon ML 资源的访问](controlling-access-to-amazon-ml-resources-by-using-iam.md)
+ [防止跨服务混淆座席](cross-service-confused-deputy-prevention.md)
+ [异步操作的依赖项管理](dependency-management-of-asynchronous-operations.md)
+ [检查请求状态](operation-request-status.md)
+ [系统限制](system-limits.md)
+ [所有对象 IDs 的名称和名称](names-and-ids-for-all-objects.md)
+ [对象生命周期](object-lifetimes.md)

# 为 Amazon ML 授予从 Amazon S3 读取您的数据的权限
<a name="granting-amazon-ml-permissions-to-read-your-data-from-amazon-s3"></a>

 要在 Amazon S3 中使用您的输入数据创建数据源对象，您必须在存储输入数据的 S3 位置为 Amazon ML 授予以下权限：
+  **GetObject**对 S3 存储桶和前缀的权限。
+  **ListBucket**对 S3 存储桶的权限。与其他操作不同，**ListBucket**必须授予存储桶范围的权限（而不是前缀）。但是，您可以使用 **Condition** 子句限定特定前缀的权限范围。

 如果您使用 Amazon ML 控制台创建数据源，这些权限可添加到您的存储桶。完成向导中的步骤后，系统将提示您确认是否要添加它们。以下示例策略说明如何授予 Amazon ML 从示例位置 s3:/*examplebucket*/读取数据的权限*exampleprefix*，同时将**ListBucket**权限范围限定为输入路径。*exampleprefix*

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "machinelearning.amazonaws.com"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::examplebucket/exampleprefix/*",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:machinelearning:us-east-1:123456789012:*"
                }
            }
        },
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "machinelearning.amazonaws.com"
            },
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::examplebucket",
            "Condition": {
                "StringLike": {
                    "s3:prefix": "exampleprefix/*"
                },
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:machinelearning:us-east-1:123456789012:*"
                }
            }
        }
    ]
}
```

------

要将此策略应用到您的数据，您必须编辑与存储数据的 S3 存储桶关联的策略语句。

**为 S3 存储桶编辑权限策略（使用旧控制台）**

1. 登录 AWS 管理控制台 并打开 Amazon S3 控制台，网址为[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 选择数据所在的存储桶的名称。

1. 选择**属性**。

1. 选择**编辑存储桶策略**。

1. 如上所示输入策略，进行自定义以符合您的需求，然后选择**保存**。

1. 选择**保存**。



**为 S3 存储桶编辑权限策略（使用新控制台）**

1. 登录 AWS 管理控制台 并打开 Amazon S3 控制台，网址为[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 选择存储桶名称，然后选择**权限**。

1. 请选择**存储桶策略**。

1. 如上所示输入策略，进行自定义以符合您的需求。

1. 选择**保存**。

# 向 Amazon ML 授予将预测输出到 Amazon S3 的权限
<a name="granting-amazon-ml-permissions-to-output-predictions-to-amazon-s3"></a>

 要将批量预测操作的结果输出到 Amazon S3，您必须向 Amazon ML 授予输出位置的以下权限，该位置是作为“创建批量预测”操作的输入提供的：
+  **GetObject**对您的 S3 存储桶和前缀的权限。
+  **PutObject**对您的 S3 存储桶和前缀的权限。
+  **PutObjectAcl**在你的 S3 存储桶和前缀上。
  +  Amazon ML 需要此权限才能确保在创建对象后能够向您的 AWS 账户授予预装 [ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl) bucket-owner-full-control 权限。
+  **ListBucket**对 S3 存储桶的权限。与其他操作不同，**ListBucket**必须授予存储桶范围的权限（而不是前缀）。不过，您可以使用 **Condition** 子句限定特定前缀的权限范围。

 如果您使用 Amazon ML 控制台创建批量预测请求，这些权限可添加到您的存储桶。在您完成向导中的步骤时，系统将提示您确认是否要添加它们。

 以下示例策略说明如何授予 Amazon ML 向示例位置 s3://examplebucket/exampleprefix 写入数据的权限，同时将**ListBucket**权限范围限定为 exampleprefix 输入路径，以及如何授予 Amazon ML 在输出前缀 ACLs 上设置 put 对象的权限：

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "machinelearning.amazonaws.com"
            },
            "Action": [
                "s3:GetObject",
                "s3:PutObject"
            ],
            "Resource": "arn:aws:s3:::examplebucket/exampleprefix/*",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:machinelearning:us-east-1:123456789012:*"
                }
            }
        },
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "machinelearning.amazonaws.com"
            },
            "Action": "s3:PutObjectAcl",
            "Resource": "arn:aws:s3:::examplebucket/exampleprefix/*",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:machinelearning:us-east-1:123456789012:*"
                }
            }
        },
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "machinelearning.amazonaws.com"
            },
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::examplebucket",
            "Condition": {
                "StringLike": {
                    "s3:prefix": "exampleprefix/*"
                },
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:machinelearning:us-east-1:123456789012:*"
                }
            }
        }
    ]
}
```

------

要将此策略应用到您的数据，您必须编辑与存储数据的 S3 存储桶关联的策略语句。

**为 S3 存储桶编辑权限策略（使用旧控制台）**

1. 登录 AWS 管理控制台 并打开 Amazon S3 控制台，网址为[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 选择数据所在的存储桶的名称。

1. 选择**属性**。

1. 选择**编辑存储桶策略**。

1. 如上所示输入策略，进行自定义以符合您的需求，然后选择**保存**。

1. 选择**保存**。



**为 S3 存储桶编辑权限策略（使用新控制台）**

1. 登录 AWS 管理控制台 并打开 Amazon S3 控制台，网址为[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 选择存储桶名称，然后选择**权限**。

1. 请选择**存储桶策略**。

1. 如上所示输入策略，进行自定义以符合您的需求。

1. 选择**保存**。

# 使用 IAM 控制对 Amazon ML 资源的访问
<a name="controlling-access-to-amazon-ml-resources-by-using-iam"></a>

AWS Identity and Access Management (IAM) 使您能够安全地控制用户对 AWS 服务和资源的访问权限。使用 IAM 可以创建和管理 AWS 用户、组和角色，您还可以使用权限来允许或拒绝对 AWS 资源的访问。借助 IAM 和 Amazon Machine Learning (Amazon ML)，可以控制组织中的用户是否可以使用特定 AWS 资源以及他们是否可以使用特定 Amazon ML API 操作来执行任务。

 IAM 让您能够：
+  在您的 AWS 账户下创建用户和组。
+  为您的 AWS 账户下的每个用户分配唯一的安全凭证 
+  控制每个用户使用 AWS 资源执行任务的权限 
+  轻松地在您 AWS 账户中与用户共享您的 AWS 资源 
+  创建 AWS 账户角色并管理其权限，以定义可以代入这些角色的用户或服务 
+ 在 IAM 中创建角色和管理权限，控制代入该角色的实体或 AWS 服务可执行的操作。您也可以定义由哪个实体承担该角色。



 如果您的组织已有 IAM 身份，您可以使用它们来授予使用 AWS 资源执行任务的权限。

有关 IAM 的更多信息，请参阅《IAM 用户指南》[https://docs.aws.amazon.com/IAM/latest/UserGuide/](https://docs.aws.amazon.com/IAM/latest/UserGuide/)。

## IAM 策略语法
<a name="policy-syntax"></a>

 IAM 策略是包含一个或多个语句的 JSON 文档。每个语句具有以下结构：

```
{
    "Statement":[{
        "Effect":"effect",
        "Action":"action",
        "Resource":"arn",
        "Condition":{
            "condition operator":{
                "key":"value"
            }
        }
    }]
}
```

 策略语句包含以下元素：
+  **Effect**：控制使用您在语句后面指定的资源和 API 操作的权限。有效值为 `Allow`和 `Deny`。在默认情况下，IAM 用户没有使用资源和 API 操作的许可，因此，所有请求均会被拒绝。显式 `Allow` 将覆盖默认值。显式 `Deny` 将覆盖任意 `Allows`。
+  **Action**：您对其授予或拒绝权限的特定 API 操作。
+  **Resource**：受操作影响的资源。要在语句中指定资源，您可使用其 Amazon 资源名称 (ARN)。
+  **条件（可选）**：控制您的策略何时生效。

 为简化 IAM 策略的创建和管理，您可以使用 AWS 策略生成器和 IAM 策略模拟器。

## 为 Amazon MLAmazon ML 指定 IAM 策略操作
<a name="actions-for-amazon-ml"></a>

 在 IAM 策略语句中，您可以为支持 IAM 的任何服务指定 API 操作。在您为 Amazon ML API 操作创建策略语句时，请附加 `machinelearning:` 到 API 操作的名称，如下例中所示：
+ `machinelearning:CreateDataSourceFromS3`
+ `machinelearning:DescribeDataSources`
+ `machinelearning:DeleteDataSource`
+ `machinelearning:GetDataSource`

 要在单个语句中指定多项操作，请使用逗号将它们隔开：

```
"Action": ["machinelearning:action1", "machinelearning:action2"]
```

您也可以使用通配符指定多项操作。例如，您可以指定名称以单词“Get”开头的所有操作：

```
"Action": "machinelearning:Get*"
```

要指定所有 Amazon ML 操作，请使用 \$1 通配符：

```
"Action": "machinelearning:*"
```

 有关 Amazon ML API 操作的完整列表，请参阅 [Amazon Machine Learning API 参考](https://docs.aws.amazon.com/machine-learning/latest/APIReference/)。

## 在 I ARNs AM 政策中指定 Amazon 机器学习资源
<a name="amazon-resource-names-arns-for-amazon-ml"></a>

 IAM 策略语句应用到一个或多个资源。您可以根据策略为其指定资源 ARNs。

 要为 Amazon 机器学习资源指定，请使用以下格式： ARNs 

 "资源": `arn:aws:machinelearning:region:account:resource-type/identifier `

 以下示例说明如何指定 common ARNs。

 数据源 ID：`my-s3-datasource-id `

```
"Resource":
arn:aws:machinelearning:<region>:<your-account-id>:datasource/my-s3-datasource-id
```

 ML 模型 ID：`my-ml-model-id `

```
"Resource":
arn:aws:machinelearning:<region>:<your-account-id>:mlmodel/my-ml-model-id
```

 批量预测 ID：`my-batchprediction-id `

```
"Resource":
arn:aws:machinelearning:<region>:<your-account-id>:batchprediction/my-batchprediction-id
```

 评估 ID：`my-evaluation-id `

```
"Resource": arn:aws:machinelearning:<region>:<your-account-id>:evaluation/my-evaluation-id
```

## 亚马逊政策示例 MLs
<a name="example-policies-for-amazon-ml"></a>

 **示例 1：允许用户读取机器学习资源元数据** 

以下策略允许用户或群组通过对指定资源执行、[描述](https://docs.aws.amazon.com/machine-learning/latest/APIReference/API_DescribeMLModels.html)、、、、、Ge [t](https://docs.aws.amazon.com/machine-learning/latest/APIReference/API_GetMLModel.html) 和[GetEvaluation](https://docs.aws.amazon.com/machine-learning/latest/APIReference/API_GetEvaluation.html)操作[DescribeDataSources](https://docs.aws.amazon.com/machine-learning/latest/APIReference/API_DescribeDataSources.html)来读取数据源MLModels[DescribeBatchPredictions[DescribeEvaluations[GetDataSource](https://docs.aws.amazon.com/machine-learning/latest/APIReference/API_GetDataSource.html)](https://docs.aws.amazon.com/machine-learning/latest/APIReference/API_DescribeEvaluations.html)](https://docs.aws.amazon.com/machine-learning/latest/APIReference/API_DescribeBatchPredictions.html)、机器学习模型MLModel[GetBatchPrediction](https://docs.aws.amazon.com/machine-learning/latest/APIReference/API_GetBatchPrediction.html)、批量预测和评估的元数据。Describe \$1 操作权限无法限定为特定资源。

------
#### [ JSON ]

****  

```
{ "Version":"2012-10-17",		 	 	  "Statement": [ { "Effect": "Allow", "Action": [
    "machinelearning:Get*" ], "Resource": [
        "arn:aws:machinelearning:us-east-1:123456789012:datasource/S3-DS-ID1",
        "arn:aws:machinelearning:us-east-1:123456789012:datasource/REDSHIFT-DS-ID1",
        "arn:aws:machinelearning:us-east-1:123456789012:mlmodel/ML-MODEL-ID1",
        "arn:aws:machinelearning:us-east-1:123456789012:batchprediction/BP-ID1",
        "arn:aws:machinelearning:us-east-1:123456789012:evaluation/EV-ID1"
    ] }, { "Effect": "Allow", "Action": [ "machinelearning:Describe*" ], "Resource": [ "*" ] } ]
    }
```

------

 **示例 2：允许用户创建机器学习资源** 

 以下策略允许用户或组通过 `CreateDataSourceFromS3`、`CreateDataSourceFromRedshift`、`CreateDataSourceFromRDS`、`CreateMLModel`、`CreateBatchPrediction` 和 `CreateEvaluation` 操作，创建机器学习数据源、ML 模型、批量预测和评估。您不能将这些操作的权限限制为特定资源。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "machinelearning:CreateDataSourceFrom*",
                "machinelearning:CreateMLModel",
                "machinelearning:CreateBatchPrediction",
                "machinelearning:CreateEvaluation"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

 **示例 3：允许用户创建和删除实时终端节点以及对 ML 模型执行实时预测** 

 以下策略允许用户或组对该模型执行 `CreateRealtimeEndpoint`、`DeleteRealtimeEndpoint` 和 `Predict` 操作，以创建和删除实时终端节点以及为特定 ML 模型执行实时预测。

------
#### [ JSON ]

****  

```
{ "Version":"2012-10-17",		 	 	  "Statement": [ { "Effect": "Allow", "Action": [
    "machinelearning:CreateRealtimeEndpoint", "machinelearning:DeleteRealtimeEndpoint",
    "machinelearning:Predict" ], "Resource": [
        "arn:aws:machinelearning:us-east-1:123456789012:mlmodel/ML-MODEL"
    ] } ] }
```

------

 **示例 4：允许用户更新和删除特定资源** 

 以下策略通过向用户或组授予执行 `UpdateDataSource`、`UpdateMLModel`、`UpdateBatchPrediction`、`UpdateEvaluation`、`DeleteDataSource`、`DeleteMLModel`、`DeleteBatchPrediction` 和 `DeleteEvaluation` 操作的权限，允许用户或组在您的 AWS 账户中更新和删除特定资源。

------
#### [ JSON ]

****  

```
{ "Version":"2012-10-17",		 	 	  "Statement": [ { "Effect": "Allow", "Action": [
    "machinelearning:Update*", "machinelearning:DeleteDataSource", "machinelearning:DeleteMLModel",
    "machinelearning:DeleteBatchPrediction", "machinelearning:DeleteEvaluation" ], "Resource": [
        "arn:aws:machinelearning:us-east-1:123456789012:datasource/S3-DS-ID1",
        "arn:aws:machinelearning:us-east-1:123456789012:datasource/REDSHIFT-DS-ID1",
        "arn:aws:machinelearning:us-east-1:123456789012:mlmodel/ML-MODEL-ID1",
        "arn:aws:machinelearning:us-east-1:123456789012:batchprediction/BP-ID1",
        "arn:aws:machinelearning:us-east-1:123456789012:evaluation/EV-ID1"
    ] } ] }
```

------

 **示例 5：允许任何亚马逊 MLaction** 

 以下策略允许用户或组使用任意 Amazon ML 操作。由于此策略会授予对您的机器学习资源的全部访问权限，您应该将其限制为仅对管理员可用。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "machinelearning:*"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

# 防止跨服务混淆座席
<a name="cross-service-confused-deputy-prevention"></a>

混淆代理问题是一个安全性问题，即不具有操作执行权限的实体可能会迫使具有更高权限的实体执行该操作。在中 AWS，跨服务模仿可能会导致混乱的副手问题。一个服务（*呼叫服务*）调用另一项服务（*所谓的服务*）时，可能会发生跨服务模拟。可以操纵调用服务，使用其权限以在其他情况下该服务不应有访问权限的方式对另一个客户的资源进行操作。为防止这种情况， AWS 提供可帮助您保护所有服务的数据的工具，而这些服务中的服务主体有权限访问账户中的资源。

我们建议在资源策略中使用 [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) 或 [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) 全局条件上下文键，以限制 Amazon Machine Learning 为其他服务提供的资源访问权限。如果 `aws:SourceArn` 值不包含账户 ID，例如 Amazon S3 存储桶 ARN，您必须使用两个全局条件上下文密钥来限制权限。如果同时使用全局条件上下文密钥和包含账户 ID 的 `aws:SourceArn` 值，则 `aws:SourceAccount` 值和 `aws:SourceArn` 值中的账户在同一策略语句中使用时，必须使用相同的账户 ID。如果您只希望将一个资源与跨服务访问相关联，请使用 `aws:SourceArn`。如果您想允许该账户中的任何资源与跨服务使用操作相关联，请使用。`aws:SourceAccount`

防范混淆代理问题最有效的方法是使用 `aws:SourceArn` 全局条件上下文键和资源的完整 ARN。如果不知道资源的完整 ARN，或者正在指定多个资源，请针对 ARN 未知部分使用带有通配符（`*`）的 `aws:SourceArn` 全局上下文条件键。例如 `arn:aws:servicename:*:123456789012:*`。

以下示例演示从 Amazon S3 存储桶读取数据时如何使用 Amazon ML 中的 `aws:SourceArn` 和 `aws:SourceAccount` 全局条件上下文键来防范混淆代理问题。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "machinelearning.amazonaws.com"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::examplebucket/exampleprefix/*",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:machinelearning:us-east-1:123456789012:*"
                }
            }
        },
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "machinelearning.amazonaws.com"
            },
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::examplebucket",
            "Condition": {
                "StringLike": {
                    "s3:prefix": "exampleprefix/*"
                },
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:machinelearning:us-east-1:123456789012:*"
                }
            }
        }
    ]
}
```

------

# 异步操作的依赖项管理
<a name="dependency-management-of-asynchronous-operations"></a>

 Amazon ML 中的批量操作需要依靠其他操作才能成功完成。为了管理这些依赖项，Amazon ML 会识别具有依赖项的请求，并确保这些操作已经完成。如果这些操作未完成，Amazon ML 将搁置初始请求，直到这些操作依赖的操作已完成。

 批量操作之间存在一些依赖关系。例如，您必须先创建可以训练 ML 模型的数据源，然后才能创建 ML 模型。如果没有可用的数据源，Amazon ML 无法训练 ML 模型。

 但是，Amazon ML 支持异步操作的依赖项管理。例如，您不必等到数据统计计算完成之后，即可发送对数据源训练 ML 模型的请求。相反，只要创建了数据源，您就可以发送使用数据源训练 ML 模型的请求。Amazon ML 会等到数据源统计计算完成之后，才实际开始执行训练操作。创建MLModel 请求会被放入队列中，直到统计数据计算完毕；完成后，Amazon ML 会立即尝试运行创建MLModel 操作。同样，您也可以为尚未完成训练的 ML 模型发送批量预测和评估请求。

 下表显示了继续执行其他 AmazonML 操作的要求 


|  **目的…**  |  **您必须具有……**  | 
| --- | --- | 
|  创建 ML 模型（创建MLModel）  |  包含已计算数据统计的数据源  | 
|  创建批量预测 (createBatchPrediction)  |   数据源   ML 模型   | 
|  创建批量评估 (createBatchEvaluation)  |   数据源   ML 模型   | 

# 检查请求状态
<a name="operation-request-status"></a>

提交请求后，您可以使用 Amazon Machine Learning (Amazon ML) API 检查其状态。例如，如果您提交 `createMLModel` 请求，可使用 `describeMLModel` 调用检查其状态。Amazon ML 将使用以下状态之一进行响应。


|  **状态**  |  **定义**  | 
| --- | --- | 
|  PENDING  |   Amazon ML 正在验证请求。  或   Amazon ML 正在等待计算资源变为可用，然后再运行请求。当您的账户已经超过并行运行的批量操作请求的最大数量时，可能会出现这种情况。在这种情况下，状态将转换为**InProgress**其他正在运行的请求完成或被取消的时间。  或   Amazon ML 正在等待批量操作，您的请求取决于此操作的完成状态。  | 
|  INPROGRESS  |  您的请求仍在运行。 | 
|  COMPLETED  |  请求已完成，您可以使用（ML 模型和数据源）或查看（批量预测和评估）对象。 | 
|  FAILED  |  您提供的数据存在问题，或者您已经取消该操作。例如，如果您尝试为未能完成的数据源计算数据统计，可能会收到 Invalid 或 Failed 状态消息。错误消息解释了操作未成功完成的原因。 | 
|  DELETED  |  对象已删除。 | 

Amazon ML 还提供了有关对象的信息，例如，当 Amazon ML 完成对象的创建时。有关更多信息，请参阅 [列出对象](listing-objects.md)。

# 系统限制
<a name="system-limits"></a>

 为了提供强大、可靠的服务，Amazon ML 为您对系统提出的请求实施了一些限制。大多数 ML 问题都轻松适应这些限制条件。但是，如果您在使用 Amazon ML 时发现这些限制条件让您受限，您可以联系 [AWS 客户服务](https://aws.amazon.com/contact-us/)，请求提高限制上限。例如，您可以同时运行的任务数量可能限制为五个。如果您发现这个限制导致经常有任务需要排队等待资源，则表明为您的账户提高限制上限很可能非常有意义。

 下表显示了 Amazon ML 中每个账户的默认限制。并非所有这些限制都能由 AWS 客户服务提高限制上限。


| **限制类型** | **系统限制** | 
| --- | --- | 
| 每个观察数据的大小 | 100KB | 
| 训练数据的大小 \$1 | 100 GB | 
| 批量预测输入的大小 | 1TB | 
| 批量预测输入的大小（记录数） | 1 亿 | 
| 数据文件（架构）中的变量数 | 1000 | 
| 配方复杂性（处理的输出变量数） | 10000 | 
| 各个实时预测终端节点的 TPS | 200 | 
| 所有实时预测终端节点的 TPS 总和 | 10000 | 
| 所有实时预测终端节点的 RAM 总和 | 10 GB | 
| 同时运行的作业数 | 25 | 
| 任何作业的最长运行时间 | 7 days | 
| 多类别 ML 模型的类别数 | 100 | 
| ML 模型大小 | 最小为 1 MB，最大为 2 GB | 
| 每个对象的标签数量 | 50 | 
+  您的数据文件大小受限，以确保作业能够及时完成。已运行七天以上的作业将自动终止，导致 FAILED 状态。

# 所有对象 IDs 的名称和名称
<a name="names-and-ids-for-all-objects"></a>

 Amazon ML 中的每个对象都必须有一个标识符，也就是 ID。Amazon ML 控制台会为您生成 ID 值，但如果您使用的是 API，您必须自行生成。在您的 AWS 账户中，在类型相同的所有 Amazon ML 对象中，每个 ID 都必须唯一。即，两个评估不能有同一 ID。评估和数据源可以有相同 ID，但不建议这样做。

 我们建议您为对象使用随机生成的标识符，使用短字符串作为前缀来标识其类型。例如，当 Amazon ML 控制台生成数据源时，它会为该数据源分配一个随机的唯一 ID，例如 “ds-zsc F”。WIu WiOx此 ID 随机度足够高，可以避免任何单个用户发生冲突，并且也紧凑易读。为方便起见，使用“ds-”前缀进行明确，但该前缀并不是必需的。如果您不确定使用什么 ID 字符串，我们建议您使用十六进制的 UUID 值（类似于 28b1e915-57e5-4e6c-a7bd-6fb4e729cb23），这在任何现代编程环境中都可以直接获取。

 ID 字符串可以包含 ASCII 字母、数字、连字符和下划线，最长可达 64 个字符。可以将元数据编码为 ID 字符串，这种做法可能会比较方便。但不建议这样做，因为对象在创建之后，其 ID 不能更改。

 对象名称为您提供了一种简单的方式，将用户友好的元数据与各个对象关联。您可在创建对象之后更新名称。这使得对象名称可以反映您的 ML 工作流的一些方面。例如，您可能最初将 ML 模型命名为“experiment \$13”，以后会将模型命名为“final production model”。名称可以是任何字符串，但不得超过 1024 个字符。

# 对象生命周期
<a name="object-lifetimes"></a>

 您使用 Amazon ML 创建的任何数据源、ML 模型、评估或批量预测对象，在创建之后至少两年内可供您使用。Amazon ML 可能会自动删除超过两年未访问或未使用的对象。