

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon DataZone でカスタムアセットタイプを作成する
<a name="create-asset-types"></a>

Amazon DataZone では、アセットはデータベーステーブル、ダッシュボード、機械学習モデルなどの特定のタイプのデータリソースを表します。カタログアセットを記述する際に一貫性と標準化を実現するには、Amazon DataZone ドメインに、カタログでアセットをどのように表すか定義するアセットタイプのセットが必要です。アセットタイプで特定のタイプのアセットのスキーマを定義します。アセットタイプには、必須およびオプションの名前付け可能なメタデータフォームタイプのセットがあります (govForm や GovernanceFormType など)。Amazon DataZone のアセットタイプはバージョニングされます。アセットが作成されると、アセットタイプ (通常は最新バージョン) で定義されたスキーマが検証され、無効な構造が指定されている場合、アセットの作成は失敗します。

**システムアセットタイプ** - Amazon DataZone は、サービス所有のシステムアセットタイプ (GlueTableAssetType、GlueViewAssetType、RedshiftTableAssetType、RedshiftViewAssetType、S3ObjectCollectionAssetType を含む) とシステムフォームタイプ (DataSourceReferenceFormType、AssetCommonDetailsFormType、SubscriptionTermsFormType を含む) をプロビジョニングします。システムアセットタイプは編集できません。

**カスタムアセットタイプ** - カスタムアセットタイプを作成する場合、最初にフォームタイプで使用するメタデータフォームタイプと用語集を作成します。次に、名前、説明、および関連付けられたメタデータフォーム (必須またはオプション) を指定することで、カスタムアセットタイプを作成できます。

構造化データを持つアセットタイプの場合、データポータルで列スキーマを表すために、`RelationalTableFormType` を使用して、列名、説明、データ型など、技術的なメタデータを列に追加し、` ColumnBusinessMetadataForm`を使用して、ビジネス名、用語集の用語、カスタムキー値のペアなど、列のビジネス説明を追加できます。

データポータルを使用してカスタムアセットタイプを作成するには、次の手順を実行します。

1. Amazon DataZone データポータル URL に移動し、シングルサインオン (SSO) または AWS 認証情報を使用してサインインします。Amazon DataZone 管理者の場合は、[https://console.aws.amazon.com/datazone](https://console.aws.amazon.com/datazone) で Amazon DataZone コンソールに移動し、ドメインが作成された AWS アカウント でサインインすると、**[データポータルを開く]** を選択できます。

1. 上部のナビゲーションペインから **[プロジェクトを選択]** を選択し、カスタムアセットタイプを作成するプロジェクトを選択します。

1. プロジェクトの **[データ]** タブに移動します。

1. 左側のナビゲーションペインから **[アセットタイプ]** を選択し、**[アセットタイプを作成]** を選択します。

1. 次のフィールドを指定して **[作成]** を選択します。
   + **名前** - カスタムアセットタイプの名前 
   + **説明** - カスタムアセットタイプの説明。
   + **メタデータフォームを追加** を選択して、メタデータフォームをこのカスタムアセットタイプに追加します。

1. カスタムアセットタイプを作成したら、それを使用してアセットを作成できます。

API を使用してカスタムアセットタイプを作成するには、次の手順を実行します。

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 アクションを呼び出すことで、アセットタイプを作成できます。アセットタイプは、利用可能なシステムフォームタイプ (下の例の `SubscriptionTermsFormType`) またはカスタムフォームタイプを使用して、Amazon DataZone API 経由でのみ作成できます。システムフォームタイプの場合、タイプ名は `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": "..."
           }, 
           .....
           ]
   )
   ```