すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:Logstoreデータ (ディメンションテーブル) をプルするときに発生するエラーを修正するにはどうすればよいですか?

最終更新日:Sep 06, 2024

変換ルールで別のLogstoreからデータをプルする必要がある場合、データのプルまたは更新時にエラーが発生する可能性があります。 このトピックでは、エラーと解決策について説明します。

データ変換エンジンがLogstoreからデータを読み取った後、エンジンはデータを変換します。 変換ルールでOSS (Object Storage Service) 、ApsaraDB RDS、その他のLogstoreなどの外部リソースからデータをプルする必要がある場合、データのプルまたは更新時にエラーが発生する可能性があります。

データのプルまたは更新エラーは、次の影響を与える可能性があります。

  • 変換ルールと競合するログイベントは、エラーの原因となるので削除されます。 これらのログイベントは変換結果に含まれません。

  • ドロップされたログイベントはそれ以上変換されません。 変換ジョブは、他のログイベントを変換し続けます。

  • ログイベントが複数に分割され、そのうちの 1 つが削除されると、関連する残りすべての分割ログイベントが削除されます。

    説明

    これらのログイベント分割は、エクスポートされる前にツリー構造で関連付けられます。

エラー 1: 必須なパラメーターがありません。

  • 変換ルール

    e_table_map(res_log_logstore_pull(endpoint="cn-shenzhen.log.aliyuncs.com",ak_id="xxx",
            ak_secret="xxx",project="etl-test-shenzhen",
            fields=["__source__"]),field="processid",output_fields=["__source__"])
  • エラーログ

    error when calling : res_log_logstore_pull\nDetail: res_log_logstore_pull() missing 1 required positional argument: 'logstore'", "requestId": "
  • 対処方法

    必須パラメーターlogstoreが欠落しているため、エラーメッセージmissing 1 required positional argumentが表示されます。

  • 解決策

    オーケストレーション構文を確認し、欠落しているパラメーターを設定します。

エラー2: delete_dataパラメーターが設定されていません

  • 変換ルール

    e_table_map(res_log_logstore_pull(endpoint="xx",ak_id="xxx",
            ak_secret="xxx",project="etl-test-shenzhen",logstore="rds-mysql-test",
            fields=["__source__"],primary_keys="cid"),field="processid",output_fields=["__source__"])
  • エラーログ

    when setting parameter primart_keys,need set delete_data\nDetail: None
  • 対処方法

    このエラーは、primary_keysパラメーターが設定されているときにdelete_dataパラメーターが設定されていないために発生します。 primary_keysパラメーターとdelete_dataパラメーターを同時に設定する必要があります。

  • 解決策

    primary_keysおよびdelete_dataパラメーターを設定し、データ変換ジョブを再起動します。

エラー 3: ターゲット Logstore が存在しません。

  • 変換ルール

    e_table_map(res_log_logstore_pull(endpoint="xx",ak_id="xxx",
            ak_secret="xxx",project="etl-test-shenzhen",logstore="pull_logstore_test9900881",
            fields=["__source__"],primary_keys="cid"),field="processid",output_fields=["__source__"])
  • エラーログ

    message:  fetch data get errors:{"errorCode": "LogStoreNotExist", "errorMessage": "logstore pull_logstore_test9900881 does not exist", "requestId": "5D7227AA269948500404B777"},retrytimes=2
  • 対処方法

    このエラーは、指定されたLogstoreが存在しない場合に発生します。

  • 解決策

    オーケストレーション構文を確認し、有効なLogstore名を入力します。

エラー4: 指定されたAccessKeyペアが無効です

  • 変換ルール

    e_table_map(res_log_logstore_pull(
            endpoint="cn-hangzhou.log.aliyuncs.com",
            ak_id="xx",
            ak_secret="xx",
            project="sls-test",
            logstore="pull_logstore_test",
            fields=[("id", "new_id"), "name", "status"],
            from_time="begin"), "name", "new_id")
  • エラーログ

    message:  fetch data get errors:{"errorCode": "SignatureNotMatch", "errorMessage": "signature gdaL/nWSRtve5FOB+QqHO/sBdnA= not match", "requestId": "5D760261ED35D40AA4AB1953"},retrytimes=1
    message:  fetch data get errors:{"errorCode": "Unauthorized", "errorMessage": "AccessKeyId not found: xx", "requestId": "5D7602A01808F9EAA6EB0E2B"},retrytimes=3
  • 対処方法

    このエラーは、オーケストレーション構文の ak_secret パラメーターと ak_id パラメーターが一致しないか、ak_id が存在しないために発生します。

  • 解決策

    ak_secretパラメーターとak_idパラメーターに有効な値を指定して、データ変換ジョブを再起動します。

エラー 5: 現在の RAM ユーザーには十分な権限がありません。

  • 変換ルール

    e_table_map(res_log_logstore_pull(
            endpoint="cn-hangzhou.log.aliyuncs.com",
            ak_id="xx",
            ak_secret="xx",
            project="sls-test",
            logstore="pull_logstore_test",
            fields=[("id", "new_id"), "name", "status"],
            from_time="begin"), "name", "new_id")
  • エラーログ

    message:  fetch data get errors:{"errorCode": "Unauthorized", "errorMessage": "denied by sts or ram, action: log:ListShards, resource: acs:log:cn-hangzhou:1654218965343050:...}
  • 対処方法

    現在のRAMユーザーに指定されたLogstoreに対する十分な読み取りおよび書き込み権限がないため、Unauthorizedエラーメッセージが表示されます。

  • 解決策

    RAM ユーザーへ十分な権限を付与します。

エラー6: 指定されたエンドポイントが無効です

  • 変換ルール

    e_table_map(res_log_logstore_pull(
            endpoint="xxx",
            ak_id="xx",
            ak_secret="xx",
            project="sls-test",
            logstore="pull_logstore_test",
            fields=[("id", "new_id"), "name", "status"],
            from_time="begin"), "name", "new_id")
  • エラーログ

    message:  fetch data get errors:{"errorCode": "ProjectNotExist", "errorMessage": "The Project does not exist : ali-sls-etl-regression-test", "requestId": "5D760AB12ECD0722AA1DD681"}
    message:  fetch data get errors:{"errorCode": "LogRequestError", "errorMessage": "HTTPConnectionPool(host='ali-sls-etl-regression-test.xx', port=80): Max retries exceeded with url: /logstores/pull_logstore_test/shards (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f968a298ef0>: Failed to establish a new connection: [Errno -2] Name or service not known))
  • 対処方法

    指定されたエンドポイントが無効であるか、指定されたエンドポイントに必要なプロジェクトが存在しない場合に、ProjectNotExistまたはLogRequestErrorエラーメッセージが表示されます。

  • 解決策

    エンドポイント設定を修正します。 詳細については、「エンドポイント」をご参照ください。