設定を更新します。 設定がマシングループに適用されると、対応するマシンも更新されます。

例:

PUT /configs/{configName}

リクエスト構文

PUT /configs/<configName> HTTP/1.1
Authorization: <AuthorizationString> 
Content-Type:application/json
Content-Length:<Content Length>
Content-MD5<:<Content MD5>
Date: <GMT Date>
Host: <Project Endpoint>
x-log-apiversion: 0.6.0
x-log-signaturemethod: hmac-sha1
{
    "configName": "testcategory1",
    "inputType": "file",
    "inputDetail": {
        "logType": "common_reg_log",
        "logPath": "/var/log/httpd/",
        "filePattern": "access*.log",
        "localStorage": true,
        "timeFormat": "%Y/%m/%d %H:%M:%S",
        "logBeginRegex": ".*",
        "regex": "(\w+)(\s+)",
        "key" :["key1", "key2"],
        "filterKey":["key1"],
        "filterRegex":["regex1"],
        "topicFormat": "none"
    },
    "outputType": "LogService",
    "outputDetail": 
    {
        "logstoreName": "perfcounter"
    }
}

リクエストパラメーター

属性名 データ型 必須/省略可能 説明
configName string 必須 同じプロジェクト内で一意の Logtail 設定名
inputType string 必須 入力タイプ (現時点でファイルのみサポート)
inputDetail json 必須 出力タイプ 現在、サポートされているのは LogService のみです。
outputType string 必須 出力タイプ 現在、LogService のみサポートされています。
outputDetail JSON 必須 次の表の説明を参照してください。

inputDetail の内容

属性名 データ型 必須/省略可能 説明
Logtype String 必須 ログタイプ (現時点で common_reg_log のみをサポート)
logPath string 必須 ログが存在する親ディレクトリ (例:/var/logs/)
filePattern string 必須 ログ ファイルのパターン (例:access*.log)
localStorage boolean 必須 ローカル キャッシュをアクティブにするかどうかを設定します。 Log Service へのリンクが切断されると、1 GB のログをローカルにキャッシュできます。
timeFormat string 必須 ログ時刻の形式 (例:%Y/%m/%d %H:%M:%S)
logBeginRegex string 必須 最初のログ行の特性 (正規表現) 。複数の行で構成されるログと一致させるために使用します。
regex string 必須 ログの抽出に使用される正規表現。
key array 必須 ログの抽出後に生成されたキー
filterKey array 必須 ログのフィルター処理に使用されるキー。 ログは、対応する filterRegex 列で指定された正規表現とキー値が一致する場合のみ、要件を満たします。
filterRegex array 必須 各 filterKey に対応する正規表現。 フィルターの長さは、filterKey の長さと同じでなければなりません。
topicFormat string 省略可能 ログファイルパスの一部をトピックとして使用します (例:/var/log/(. *).log) デフォルト値は none (トピックが空であることを示します)
preserve boolean 省略可能 true は、監視対象のディレクトリがタイムアウトしないことを示します。false は、監視対象ディレクトリのタイムアウトが 30 分であることを示します (デフォルトは 0)。
preserveDepth integer 省略可能 preserve が false に設定されている場合は、監視タイムアウトなしでディレクトリの深さを指定します。 最大深度は 3 です。
fileEncoding string 省略可能 utf8 と gbk の 2 種類がサポートされています。 (デフォルトは utf8)。

outputDetail の内容

属性名 データ型 必須/省略可能 説明
logstoreName string 必須 Logstore 名
リクエストヘッダー

UpdateConfig API には特別なリクエストヘッダーはありません。 UpdateConfig API には特別なリクエストヘッダーはありません。

レスポンスヘッダー

UpdateConfig API には特別なレスポンスヘッダーはありません。 Log Service API のパブリックレスポンスヘッダーの詳細については、「パブリックレスポンスヘッダー」をご参照ください。

レスポンス要素

返される HTTP ステータス コードは 200 です。

エラーコード

また、 一般的なエラー コード の他に、UpdateConfig API から次の特殊なエラー コードが返される場合があります。

HTTP ステータスコード エラーコード エラー メッセージ
404 ConfigNotExist config {Configname} が存在しません
400 InvalidParameter config resource json が無効です
400 BadRequest config resource configname がリクエストと一致しません
500 InternalServerError 内部サーバーエラー
詳細な説明

作成中にエラーが発生した場合 (たとえば、設定が既に存在する、形式が正しくない、必要なパラメーターが見つからない、クォータを超えているなど) 、設定の作成は失敗します。

リクエスト例:
PUT /configs/logtail-config-sample
Header : 
{
    "Content-Length": 737,
    "Host": "ali-test-project.cn-hangzhou-devcommon-intranet.sls.aliyuncs.com",
    "x-log-bodyrawsize": 737,
    "Content-MD5": "431263EB105D584A5555762A81E869C0",
    "x-log-signaturemethod": "hmac-sha1",
    "Date": "Mon, 09 Nov 2015 09:14:32 GMT",
    "x-log-apiversion": "0.6.0",
    "User-Agent": "log-python-sdk-v-0.6.0",
    "Content-Type": "application/json", 
    "Authorization": "LOG <yourAccessKeyId>:<yourSignature>"
}
Body :
{
    "outputDetail": {
        "logstoreName": "sls-test-logstore"
    }, 
    "inputType": "file", 
    "inputDetail": {
        "regex": "([\\d\\.] +) \\S+ \\S+ \\[(\\S+) \\S+\\] \"(\\w+) ([^\"]*)\" ([\\d\\.]+) (\\d+) (\\d+) (\\d+|-) \"([^\"]*)\" \"([^\"]*)\".*", 
        "filterKey": [], 
        "logPath": "/var/log/nginx/", 
        "logBeginRegex": "\\d+\\.\\d+\\.\\d+\\.\\d+ - .*", 
        "logType": "common_reg_log", 
        "topicFormat": "none", 
        "localStorage": true, 
        "key": [
            "ip", 
            "time", 
            "method", 
            "url", 
            "request_time", 
            "request_length", 
            "status", 
            "length", 
            "ref_url", 
            "browser"
        ], 
        "filePattern": "access*.log", 
        "timeFormat": "%d/%b/%Y:%H:%M:%S",
        "filterRegex": []
    },
    "outputType": "LogService",
    "configName": "logtail-config-sample"
}
レスポンス例
{
    "date": "Mon, 09 Nov 2015 09:14:32 GMT",
    "connection": "close",
    "x-log-requestid": "564063F899248CAA2300B778",
    "content-length": "0",
    "server": "nginx/1.6.1"
}