OSS (Object Storage Service) で OSS オブジェクトが生成された後にのみ子孫ノードが実行できる場合、OSS オブジェクト検査機能を使用して OSS オブジェクトをモニタリングすることができます。 たとえば、OSS データファイルが生成された後にのみ、OSS データファイルを DataWorks に同期するためのノードを実行することができます。 この場合、OSS オブジェクト検査機能を使用して、OSS データファイルをモニタリングすることができます。

OSS オブジェクト検査機能は、すべてのテナントの OSS オブジェクトを監視できます。 OSS オブジェクト検査ノードを作成するには、次の手順に従います。
  1. DataWorks コンソールにログインします。 左側のナビゲーションペインで [ワークスペース] をクリックします。 [ワークスペース] ページでモニタリング対象のワークスペースを確認し、[操作] 列の[データ分析] をクリックします。
  2. ポインターを作成アイコンに移動して、[全般] > [OSS オブジェクト検査] をクリックします。

    モニタリング対象のワークフローを確認し、[全般] を右クリックして、[作成] > [OSS オブジェクト検査] をクリックすることもできます。

  3. 表示される[ノードの作成] ダイアログボックスでノード名を入力し、ターゲットフォルダを選択して、[コミット] をクリックします。
    ノード名の長さは最大 128 文字です。
  4. 表示される [OSS オブジェクト検査] ページで、パラメーターを設定します。
    No. パラメーター 説明 
    1 OSS Object OSS オブジェクトのストレージパスを設定します。 ストレージパスにスケジューリングパラメーターを追加することができます。 詳細については、「スケジューリングパラメーター」をご参照ください。
    2 Timeout DataWorks は、OSS に OSS オブジェクトが 存在するかどうかを 5 秒ごとにチェックします。 タイムアウト期間が終了する前に OSS オブジェクトが検出されない場合、OSS オブジェクト検査ノードは失敗します。
    3 Storage Address OSS ノードのストレージスペースを設定します。 設定可能な値:
    • 自身:現在のテナントのストレージスペースで OSS オブジェクトを検出します。
    • その他:別のテナントのストレージスペースで OSS オブジェクトを検出します。
    • OSS オブジェクト検査ノードが実行されている場合、MaxCompute を使用して OSS オブジェクトを監視します。 OSS バケットにアクセスするために必要な権限が MaxCompute に付与されていることをご確認ください。 詳細については、「OSS STS モードの許可」をご参照ください。
    • 開発環境または実稼働環境では、ノードは開発環境または実稼働環境のアクセス ID を使用して OSS オブジェクトを監視します。 OSS バケットにアクセスするために必要な権限がアクセス元に付与されていることをご確認ください。
    • OSS オブジェクトの指定に、ワイルドカード (*) を使用することはできません。また、cyctimebizdate のシステムパラメーターを使用することもできません。 ただし、カスタムパラメーターを使用することはできます。
  5. RAM コンソールで 、MaxCompute が OSS にアクセスするための権限を付与します。
    MaxCompute はアカウントのセキュリティ問題を解決するために、Alibaba Cloud の RAM と STS (セキュリティトークンサービス) を使用します。
    • MaxCompute と OSS の所有者が同じ Alibaba Cloud アカウントを使用している場合は、 RAMコンソールに移動して、[承認ポリシーの確認] をクリックして、MaxCompute が OSS にアクセスすることを承認します。
    • MaxCompute と OSS の所有者が異なる Alibaba Cloud アカウントを使用している場合は、次の手順に従って MaxCompute が OSS にアクセスすることを承認することができます。
      1. RAM コンソールでロールを作成します。

        AliyunODPSDefaultRole や AliyunODPSRoleForOtherUser などのロールを作成し、次のポリシーを設定します。

        --When MaxCompute and OSS are under different Alibaba Cloud accounts.
        {
        "Statement": [
        {
        "Action": "sts:AssumeRole",
        "Effect": "Allow",
        "Principal": {
        "Service": [
        "The ID of the Alibaba Cloud account used by the owner of MaxCompute@odps.aliyuncs.com"
        ]
        }
        }
        ],
        "Version": "1"
        }
      2. OSS へのアクセスに必要なアクセス権限を含む AliyunODPSRolePolicy アクセス権限ポリシーを作成します。
        {
        "Version": "1",
        "Statement": [
        {
        "Action": [
         "oss:ListBuckets",
         "oss:GetObject",
         "oss:ListObjects",
         "oss:PutObject",
         "oss:DeleteObject",
         "oss:AbortMultipartUpload",
         "oss:ListParts"
        ],
        "Resource": "*",
        "Effect": "Allow"
        }
        ]
        }
        --You can also add other permissions as required.
      3. AliyunODPSRolePolicy アクセス権限ポリシーをロールに付与します。
  6. オペレーションセンターに移動して、実行時ログを表示します。
    次のエラー情報が表示される場合、OSS オブジェクトは検出されていません。
    <Error>
     <Code>NoSuchKey</Code>
     <Message>The specified key does not exist. </Message>
     <RequestId> </RequestId>
     <HostId>OSS object</HostId>
     <Key>xc/111.txt</Key>
    </Error>