Configurez des champs personnalisés dans l'élément user_defined_log_fields des journaux en temps réel du bucket afin de capturer des en-têtes de requête et des paramètres de requête spécifiques pour analyse.
Notes d'utilisation
Pour appeler l'opération PutUserDefinedLogFieldsConfig, vous devez disposer de l'autorisation
oss:PutUserDefinedLogFieldsConfig. Pour plus d'informations, consultez la rubrique Accorder une stratégie personnalisée.Les données journalisées sont stockées au format JSON encodé en Base64 dans le champ
user_defined_log_fields. Le JSON contient trois clés : « truncated » (indiquant si les données ont été tronquées), « headers » (en-têtes de requête) et « querys » (paramètres de requête).Une configuration de journalisation prend en charge un maximum de six en-têtes de requête et paramètres de requête personnalisés au total.
La longueur combinée des clés et des valeurs de tous les champs d'en-tête de requête et de paramètre de requête personnalisés dans une configuration de journalisation ne peut pas dépasser 1 024 octets. Les caractères dépassant cette limite sont tronqués.
Les clés d'en-tête de requête autorisent les traits d'union (-) mais pas les traits de soulignement (_). Les clés de paramètre de requête autorisent les traits de soulignement (_).
Les clés d'en-tête de requête doivent contenir uniquement des caractères ASCII imprimables (33–126), à l'exclusion des traits de soulignement (_) et des deux-points (:).
Syntaxe de la requête
PUT /?userDefinedLogFieldsConfig HTTP/1.1
Date: GMT Date
Content-Length: ContentLength
Content-Type: application/xml
Host: BucketName.oss.aliyuncs.com
Authorization: SignatureValue
<?xml version="1.0" encoding="UTF-8"?>
<UserDefinedLogFieldsConfiguration>
<HeaderSet>
<header>header1</header>
<header>header2</header>
<header>header3</header>
</HeaderSet>
<ParamSet>
<parameter>param1</parameter>
<parameter>param2</parameter>
</ParamSet>
</UserDefinedLogFieldsConfiguration>
En-têtes de requête
Une requête PutUserDefinedLogFieldsConfig utilise uniquement des en-têtes de requête communs. Pour plus d'informations, consultez la rubrique En-têtes de requête communs.
Éléments de la requête
|
Élément |
Type |
Obligatoire |
Exemple |
Description |
|
UserDefinedLogFieldsConfiguration |
Container |
Oui |
N/A |
Conteneur pour la configuration de journalisation définie par l'utilisateur. Éléments enfants : HeaderSet et ParamSet Éléments parents : aucun |
|
HeaderSet |
Container |
Non |
N/A |
Conteneur pour les en-têtes de requête personnalisés. Éléments enfants : header Éléments parents : UserDefinedLogFieldsConfiguration |
|
header |
String |
Non |
header1 |
En-tête de requête personnalisé. Éléments enfants : aucun Éléments parents : HeaderSet |
|
ParamSet |
Container |
Non |
N/A |
Conteneur pour les paramètres de requête personnalisés. Éléments enfants : parameter Éléments parents : UserDefinedLogFieldsConfiguration |
|
parameter |
String |
Non |
param1 |
Paramètre de requête personnalisé. Éléments enfants : aucun Éléments parents : ParamSet |
En-têtes de réponse
La réponse à une requête PutUserDefinedLogFieldsConfig utilise uniquement des en-têtes de réponse communs. Pour plus d'informations, consultez la rubrique En-têtes de réponse communs.
Exemples
Exemple de requête
PUT /?userDefinedLogFieldsConfig HTTP/1.1
Date: GMT Date
Content-Length: ContentLength
Content-Type: application/xml
Host: BucketName.oss.aliyuncs.com
Authorization: SignatureValue
<?xml version="1.0" encoding="UTF-8"?>
<UserDefinedLogFieldsConfiguration>
<HeaderSet>
<header>header1</header>
<header>header2</header>
<header>header3</header>
</HeaderSet>
<ParamSet>
<parameter>param1</parameter>
<parameter>param2</parameter>
</ParamSet>
</UserDefinedLogFieldsConfiguration>
Exemple de réponse
HTTP/1.1 200 OK
x-oss-request-id: 534B371674125A4D8906008B
Date: Date
Content-Length: 0
Connection: keep-alive
Server: AliyunOSS
SDK OSS
Utilisez les SDK OSS pour les langages de programmation suivants afin d'appeler l'opération PutUserDefinedLogFieldsConfig :