日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

從OSS獲取數據出錯

如果加工規則中涉及OSS資源的加載,則有可能會產生資源的加載或刷新錯誤。本文檔主要介紹從OSS獲取數據出錯的原因以及排查處理方法。

在成功讀取源Logstore數據后,加工引擎開始對源Logstore的日志事件進行加工。如果加工規則中涉及OSS、RDS、Logstore等外聯資源的加載,則也有可能會產生資源的加載或刷新錯誤。

錯誤影響

在日志事件加工階段,與加工規則沖突的日志事件會引發報錯,錯誤分成WARNING和ERROR級別(通過加工日志的logging.levelname體現)。

  • 對于ERROR級別的錯誤, 該日志事件會丟棄。加工后的輸出結果中將不包含這些日志事件,并繼續加工其他的日志事件,不會重試。

  • 對于WARNING級別的錯誤(例如某些事件與正則規則不匹配),會跳過當前DSL的這一步,進行下一步。

錯誤排查方法

  • 查看錯誤日志的logging.levelname字段,確定日志的錯誤級別。

  • 查看錯誤日志的message字段,定位是哪些日志事件報錯。具體請參見錯誤日志查看方式

  • 查看錯誤日志的reason字段,確定這些日志事件的報錯原因。

根據報錯原因,為這些異常日志事件增添邏輯,可使用e_ife_switch等流程控制函數,捕獲并處理這些錯誤。加工規則異常日志

OSS獲取數據常見出錯樣例

說明

下文中AK_ID和AK_KEY為AccessKeyId和AccessKeySecret的簡稱。

文件路徑錯誤或者文件格式錯誤

OSS中不存在data這個目錄或者文件格式寫錯,從而引發的404錯誤日志。

  • 加工規則樣例

    # 假設正確目錄是test
    e_set("oss_file",res_oss_file(endpoint, ak_id=res_local("AK_ID"),ak_key=res_local("AK_KEY"), bucket, 'data/test.txt', format='text', change_detect_interval=20))
    # 此格式在test中不存在
    e_set("oss_file",res_oss_file(endpoint, ak_id=res_local("AK_ID"),ak_key=res_local("AK_KEY"), bucket, 'test/test.dat', format='text', change_detect_interval=20))
  • 錯誤日志

    message:  Exception: {'status': 404, 'x-oss-request-id': '5D49****878', 'details': {'Code': 'NoSuchKey', 'Message': 'The specified key does not exist.', 'RequestId': '5D4***8878', 'HostId': 'lo***g.oss-cn-hangzhou.aliyuncs.com', 'Key': 'oss/test.txt'}}
  • 排查方法

    檢查報錯的日志事件,如果報錯信息中status404,并且Messages是關于文件的,首先要檢查自己的文件目錄是否寫錯。

  • 解決方案

    res_oss_file函數加工編排中的file參數改成正確的文件目錄即可。

    # 假如正確的目錄是test
    e_set("oss_file",res_oss_file(endpoint, ak_id=res_local("AK_ID"),ak_key=res_local("AK_KEY"), bucket, 'test/test.txt', format='text', change_detect_interval=20))

文件解碼錯誤

對從OSS上拉取的文件,解碼的時候執行錯誤或者使用了不存在的解碼方式。

  • 加工規則樣例

    e_set("oss_file",res_oss_file(endpoint, ak_id=res_local("AK_ID"),ak_key=res_local("AK_KEY"), bucket, 'test/test.txt', format='text', change_detect_interval=20, encoding='unicode'))
  • 錯誤日志

    {
      "reason": "LookupError: unknown encoding: unicode"
    }
  • 排查方法

    檢查報錯的日志事件,如果報錯信息是unknown encoding: unicode,檢查文件解碼參數encoding是否寫錯。

  • 解決方案

    res_oss_file函數加工編排中的encoding參數改成正確的解碼格式即可。

    # 假如正確的解碼格式是utf8
    e_set("oss_file",res_oss_file(endpoint, ak_id=res_local("AK_ID"),ak_key=res_local("AK_KEY"), bucket, 'test/test.txt', format='text', change_detect_interval=20,encoding='utf8'))

Endpoint出錯

使用res_oss_file函數的時候Endpoint填寫錯誤。

Endpoint不存在

  • 加工規則樣例

    e_set("oss_file",res_oss_file("https://oss-cn-asd.aliyuncs.com", ak_id=res_local("AK_ID"),ak_key=res_local("AK_KEY"), 'your bucket', 'test/test.txt', format='text', change_detect_interval=20))
  • 錯誤日志

    message:  get_oss_bytes get errors:{'status': -2, 'x-oss-request-id': '', 'details': "RequestError: HTTPSConnectionPool(host='log-etl-staging.oss-cn-asd.aliyuncs.com', port=443)
  • 排查方法

    檢查報錯的日志事件,如果報錯信息是-2,并且Message信息是關于RequestError的,檢查endpoint是否存在。

  • 解決方案

    res_oss_file函數加工編排中的endpoint參數值修改正確即可。

OSS Endpoint與bucket名字不匹配

授權的AccessKey擁有在杭州region的操作權限,而Endpoint寫成了上海。

  • 加工規則樣例

    e_set("oss_file",res_oss_file("https://oss-cn-shanghai.aliyuncs.com", ak_id=res_local("AK_ID"),ak_key=res_local("AK_KEY"), 'your bucket', 'test/test.txt', format='text', change_detect_interval=20))
  • 錯誤日志

    message:  get_oss_bytes get errors:{'status': 403, 'x-oss-request-id': '5D7219353A90A2852B234D14', 'details': {'Code': 'AccessDenied', 'Message': 'The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.', 'RequestId': '5D7**14', 'HostId': 'log-**.oss-cn-shanghai.aliyuncs.com', 'Bucket': 'log-**', 'Endpoint': 'oss-cn-hangzhou.aliyuncs.com'}}
  • 排查方法

    檢查報錯的日志事件,如果報錯信息是403,并且Message信息是關于bucket和endpoint的,檢查endpoint是否與AccessKey不屬于同一region。

  • 解決方案

    res_oss_file函數加工編排中的encoding參數改成正確的解碼格式即可。

權限錯誤

AccessKey出錯

使用res_oss_file函數的時候AccessKey填寫錯誤。

  • 加工規則樣例

    e_set("oss_file",res_oss_file(endpoint, ak_id=res_local("AK_ID"),ak_key=res_local("AK_KEY"), 'your bucket', 'test/test.txt', format='text', change_detect_interval=20))
  • 錯誤日志

    message: Exception: {'status': 403, 'x-oss-request-id': '5D***BEB6', 'details': {'Code': 'InvalidAccessKeyId', 'Message': 'The OSS Access Key Id you provided does not exist in our records.', 'RequestId': '5D4***BEB6', 'HostId': 'lo***g.oss-cn-hangzhou.aliyuncs.com', 'OSSAccessKeyId': 'LT***Ai'}}
  • 排查方法

    檢查報錯的日志事件,如果報錯信息是403,并且Message信息是關于AccessKey的,檢查AccessKey是否寫錯。

  • 解決方案

    res_oss_file函數加工編排中的AccessKey信息修改正確即可。

Bucket權限錯誤

使用res_oss_file函數的時候bucket出錯。

  • 加工規則樣例

    e_set("oss_file",res_oss_file(endpoint='http://oss-cn-hangzhou.aliyuncs.com',ak_id=os.getenv("SLS_ACCESS_KEY_ID"),
                         ak_key=os.getenv("SLS_ACCESS_KEY_SECRET"),
                         bucket='log', file='test.txt',
                         change_detect_interval=30, encoding='utf8'))
  • 錯誤日志

    message: Exception: {'status': 403, 'x-oss-request-id': '5D674CE8BE0EBC45166026C5', 'details': {'Code': 'AccessDenied', 'Message': 'You have no right to access this object because of bucket acl.', 'RequestId': '5D4***BEB6', 'HostId': 'log.oss-cn-hangzhou.aliyuncs.com'}}
  • 排查方法

    檢查報錯的日志事件,如果報錯信息是403,并且Message信息是關于bucket的,檢查bucket是否有權限操作。

  • 解決方案

    res_oss_file函數加工編排中的bucket信息修改正確即可。

Bucket不存在

使用res_oss_file函數的時候bucket出錯。示例中bucket在OSS上是不存在的。

  • 加工規則樣例

    e_set("oss_file",res_oss_file(endpoint='http://oss-cn-hangzhou.aliyuncs.com',ak_id=os.getenv("SLS_ACCESS_KEY_ID"),
                         ak_key=os.getenv("SLS_ACCESS_KEY_SECRET"),
                         bucket='twiss', file='test.txt',
                         change_detect_interval=30, encoding='utf8'))
  • 錯誤日志

    message: Exception: {'status': 404, 'x-oss-request-id': '5D75F6E9BB4097C678A381EF', 'details': {'Code': 'NoSuchBucket', 'Message': 'The specified bucket does not exist.', 'RequestId': '5D75F6E9BB4097C678A381EF', 'HostId': 'twiss.oss-cn-hangzhou.aliyuncs.com', 'BucketName': 'twiss'}}
  • 排查方法

    檢查報錯的日志事件,如果報錯信息是403,并且Message信息是關于bucket的,檢查bucket是否存在。

  • 解決方案

    res_oss_file函數加工編排中的bucket信息修改正確即可。

定時更新文件出錯日志說明

此類日志只會在后臺日志記錄中出現,以下介紹三種定時更新中出錯說明。

  • 如下日志表示第一次可能因為網絡問題獲取資源失敗,準備重試。

    {
      "reason":"Failed to pull data from oss for the first time and it is preparing to re-pull ..."
    }
  • 如下日志表示后臺每隔一段時間進行更新,新資源函數獲取數據失敗,準備重試。

    {
      "reason":"get_oss_byte get errors,begin retry ..."
    }
  • 如下日志表示重試失敗,準備再次重試,最多重試三次。

    {
      "reason":"get_oss_byte get errors,refresh_interval ..."
    }