Cette rubrique décrit l'objet de contexte disponible lorsque vous écrivez du code dans l'environnement d'exécution PHP de Function Compute.
Lorsque Function Compute exécute votre fonction, l'environnement d'exécution transmet un paramètre $context à votre gestionnaire. Ce tableau contient des métadonnées relatives à l'appel en cours, à la configuration de votre fonction ainsi que des identifiants temporaires vous permettant d'appeler d'autres services Alibaba Cloud.
Structure de l'objet de contexte
L'exemple suivant illustre la structure du tableau $context dans l'environnement d'exécution PHP :
[
'requestId' => 'b1c5100f-819d-c421-3a5e-7782a27d8a33',
'credentials' => [
'accessKeyId' => 'STS.access_key_id',
'accessKeySecret' => 'access_key_secret',
'securityToken' => 'security_token',
],
'function' => [
'name' => 'my-func',
'handler' => 'index.handler',
'memory' => 128,
'timeout' => 10,
'initializer' => 'index.initializer',
'initializationTimeout' => 10,
],
'service' =>[
'logProject' => 'my-log-project',
'logStore' => 'my-log-store',
'qualifier' => 'qualifier',
'versionId' => '1'
],
'region' => 'cn-shanghai',
'accountId' => '123456',
'tracing': {
'openTracingSpanContext': 'xxxxxxxxxxxx',
'jaegerEndpoint': 'xxxxxxxx',
'openTracingSpanBaggages': []
}
]
Champs du contexte
Champs de premier niveau
| Champ | Type | Description |
|---|---|---|
requestId |
String | Identifiant unique de l'appel actuel. Enregistrez cet ID pour tracer les problèmes en cas d'erreur. |
credentials |
Array | Paire AccessKey temporaire obtenue par Function Compute via l'assomption de votre rôle lié au service. Valide pendant 36 heures. Utilisez ces identifiants pour appeler d'autres services Alibaba Cloud, tels qu'Object Storage Service (OSS), sans intégrer en dur votre paire AccessKey dans le code de la fonction. Pour plus de détails, consultez la page Grant Function Compute permissions to access other Alibaba Cloud services. |
function |
Array | Configuration de la fonction appelée. |
service |
Array | Informations sur le service auquel appartient la fonction. |
region |
String | ID de la région dans laquelle s'exécute la fonction. Par exemple, cn-shanghai pour la région Chine (Shanghai). Pour obtenir la liste complète des ID de région, consultez la page Service endpoints. |
accountId |
String | ID du compte Alibaba Cloud propriétaire de la fonction. |
tracing |
Object | Contexte de traçage distribué basé sur la norme OpenTracing, renseigné lorsque le traçage est activé. |
Champs credentials
| Champ | Type | Description |
|---|---|---|
accessKeyId |
String | ID AccessKey de l'identifiant temporaire. |
accessKeySecret |
String | Clé secrète AccessKey de l'identifiant temporaire. |
securityToken |
String | Jeton de sécurité associé à l'identifiant temporaire. |
Champs function
| Champ | Type | Description |
|---|---|---|
name |
String | Nom de la fonction. |
handler |
String | Gestionnaire de la fonction, au format <file>.<method>. |
memory |
Integer | Taille de la mémoire configurée pour la fonction, en Mo. |
timeout |
Integer | Durée maximale d'exécution configurée pour la fonction, en secondes. |
initializer |
String | Initialiseur de la fonction, au format <file>.<method>. |
initializationTimeout |
Integer | Durée maximale d'initialisation configurée pour la fonction, en secondes. |
Champs service
| Champ | Type | Description |
|---|---|---|
logProject |
String | Projet Log dans Simple Log Service associé à ce service. |
logStore |
String | Logstore dans Simple Log Service associé à ce service. |
qualifier |
String | Version ou alias spécifié lors de l'appel de la fonction. |
versionId |
String | Version du service qui a été effectivement appelée. |
Champs tracing
| Champ | Type | Description |
|---|---|---|
openTracingSpanContext |
String | Contexte de span OpenTracing pour l'appel actuel, utilisé pour la propagation du traçage distribué. |
jaegerEndpoint |
String | Endpoint du collecteur Jaeger pour l'envoi des données de traçage. |
openTracingSpanBaggages |
Array | Éléments de bagage OpenTracing attachés à la span actuelle. |
Accéder aux champs du contexte dans votre fonction
L'exemple suivant montre comment accéder aux champs de contexte courants dans un gestionnaire PHP :
<?php
function handler($event, $context) {
// Use requestId to correlate logs with a specific invocation
$requestId = $context['requestId'];
error_log("Request ID: " . $requestId);
// Use temporary credentials to call other Alibaba Cloud services
$accessKeyId = $context['credentials']['accessKeyId'];
$accessKeySecret = $context['credentials']['accessKeySecret'];
$securityToken = $context['credentials']['securityToken'];
// Read function configuration
$functionName = $context['function']['name'];
$memoryLimit = $context['function']['memory']; // in MB
$timeoutLimit = $context['function']['timeout']; // in seconds
// Identify which version or alias was invoked
$qualifier = $context['service']['qualifier'];
$versionId = $context['service']['versionId'];
return "OK";
}
Les identifiants (credentials) du contexte sont temporaires et expirent après 36 heures. Ne les mettez pas en cache au-delà de l'invocation de la fonction.