

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

# 在 Amazon 中创建自定义资产类型 DataZone
<a name="create-asset-types"></a>

在 Amazon 中 DataZone，资产代表特定类型的数据资源，例如数据库表、控制面板或机器学习模型。为了在描述目录资产时保持一致性和标准化，Amazon DataZone 域必须有一组资产类型来定义资产在目录中的表示方式。资产类型定义特定类型的资产的架构。资产类型具有一组必填和可选的可命名元数据表单类型（例如 GovForm 或 GovernanceFormType）。Amazon 中的资产类型 DataZone 是版本化的。在创建资产时，将根据资产类型（通常是最新版本）定义的架构来验证资产，如果指定的结构无效，则将无法创建资产。

**系统资产类型**-Ama DataZone zon 预置服务拥有的系统资产类型（包括 GlueTableAssetType GlueViewAssetType RedshiftTableAssetType、 RedshiftViewAssetType、和 S3ObjectCollectionAssetType）和系统表单类型（包括 DataSourceReferenceFormType AssetCommonDetailsFormType、和 SubscriptionTermsFormType）。无法编辑系统资产类型。

**自定义资产类型** – 要创建自定义资产类型，首先创建要在表单类型中使用的所需的元数据表单类型和术语表。之后，您可以通过指定名称、描述和关联的元数据表单（必需或可选）来创建自定义资产类型。

对于具有结构化数据的资产类型，要表示数据门户中的列架构，您可以使用 `RelationalTableFormType` 向列添加技术元数据（包括列名、描述和数据类型），并使用 ` ColumnBusinessMetadataForm` 添加列的企业描述，包括企业名称、术语表术语和自定义键值对。

要通过数据门户创建自定义资产类型，请完成以下步骤：

1. 导航至 Amazon DataZone 数据门户 URL，然后使用单点登录 (SSO) 或凭证登录 AWS 。如果您是亚马逊 DataZone 管理员，则可以通过 [https://console.aws.amazon.com/datazon](https://console.aws.amazon.com/datazone) e 导航到亚马逊 DataZone 控制台，使用域名创建 AWS 账户 地登录，然后选择**打开**数据门户。

1. 从顶部导航窗格中选择**选择项目**，然后选择要在其中创建自定义资产类型的项目。

1. 导航到项目的**数据**选项卡。

1. 从左侧导航窗格中选择**资产类型**，然后选择**创建资产类型**。

1. 指定以下内容，然后选择**创建**。
   + **名称** – 自定义资产类型的名称 
   + **描述** – 自定义资产类型的描述。
   + **选择“添加元数据表单”**以将元数据表单添加到此自定义资产类型。

1. 创建自定义资产类型后，您可以使用它创建资产。

要通过创建自定义资产类型 APIs，请完成以下步骤：

1. 通过调用 `CreateFormType` API 操作来创建元数据表单类型。

   以下是 Amazon 的 SageMaker 示例：

   ```
   m_model = "
   
   structure SageMakerModelFormType {
      @required
      @amazon.datazone#searchable
      modelName: String
   
      @required
      modelArn: String
   
      @required
      creationTime: String
   }
   "
   
   CreateFormType(
       domainIdentifier="my-dz-domain",
       owningProjectIdentifier="d4bywm0cja1dbb",
       name="SageMakerModelFormType",
       model=m_model
       status="ENABLED"
       )
   ```

1. 接下来，您可以通过调用 `CreateAssetType` API 操作来创建资产类型。您只能 DataZone APIs 使用可用的系统表单类型（`SubscriptionTermsFormType`在以下示例中）或自定义表单类型通过 Amazon 创建资产类型。对于系统表单类型，类型名称必须以 `amazon.datazone` 开头。

   ```
   CreateAssetType(
       domainIdentifier="my-dz-domain",
       owningProjectIdentifier="d4bywm0cja1dbb",
       name="SageMakerModelAssetType",
       formsInput={
           "SageMakerModelForm": {
               "typeIdentifier": "SageMakerModelFormType",
               "typeRevision": 7,
               "required": True,
           },
           "SubscriptionTerms": {
               "typeIdentifier": "amazon.datazone.SubscriptionTermsFormType",
               "typeRevision": 1,
               "required": False,
           },
       },
   )
   ```

   以下是为结构化数据创建资产类型的示例：

   ```
   CreateAssetType(
       domainIdentifier="my-dz-domain",
       owningProjectIdentifier="d4bywm0cja1dbb",
       name="OnPremMySQLAssetType",
       formsInput={
           "OnpremMySQLForm": {
               "typeIdentifier": "OnpremMySQLFormType",
               "typeRevision": 5,
               "required": True,
           },
           "RelationalTableForm": {
               "typeIdentifier": "amazon.datazone.RelationalTableFormType",
               "typeRevision": 1,
               "required": True,
           },
           "ColumnBusinessMetadataForm": {
               "typeIdentifier": "amazon.datazone.ColumnBusinessMetadataFormType",
               "typeRevision": 1,
               "required": False,
           },
           "SubscriptionTerms": {
               "typeIdentifier": "amazon.datazone.SubscriptionTermsFormType",
               "typeRevision": 1,
               "required": False,
           },
       },
   )
   ```

1. 现在，您可以使用上述步骤中创建的自定义资产类型来创建资产。

   ```
   CreateAsset(
      domainIdentifier="my-dz-domain",
      owningProjectIdentifier="d4bywm0cja1dbb",
      typeIdentifier="SageMakerModelAssetType",
      name="MyModelAsset",
      glossaryTerms="xxx",
      formsInput=[{
           "formName": "SageMakerModelForm",
           "typeIdentifier": "SageMakerModelFormType",
           "content": "{\n \"ModelName\" : \"sample-ModelName\",\n \"ModelArn\" : \"999999911111\",\n \"CreationTime\" : \"2025-01-01 18:00:00.000\"}"
           }
           ]
   )
   ```

   在此示例中，您创建的是结构化数据资产：

   ```
   CreateAsset(
      domainIdentifier="my-dz-domain",
      owningProjectIdentifier="d4bywm0cja1dbb",
      typeIdentifier="OnPremMySQLAssetType",
      name="MyModelAsset",
      glossaryTerms="xxx",
      formsInput=[{
           "formName": "RelationalTableForm",
           "typeIdentifier": "amazon.datazone.RelationalTableFormType",
           "content": ".."
           },
           {
           "formName": "OnpremMySQLForm",
           "typeIdentifier": "OnpremMySQLFormType",
           "content": ".."
           },
           {
           "formName": "mySQLTableForm",
           "typeIdentifier": "MySQLTableFormType",
           "typeRevision": "1",
           "content": ".."
           },
           {
           "formName": "AssetCommonDetailsForm",
           "typeIdentifier": "amazon.datazone.AssetCommonDetailsFormType",
           "content": "..."
           }, 
           .....
           ]
   )
   ```