Cette page explique comment exporter des traces à l'aide de l'API Cloud Trace et
la Google Cloud CLI. Vous devez utiliser la version 274.0.0 ou ultérieure de la Google Cloud CLI.
Pour savoir comment mettre à jour la Google Cloud CLI, consultez gcloud components update
.
Certains exemples de cette page ont été générés à l'aide de curl
. Pour en savoir plus sur la configuration de cet outil, consultez la page Utiliser curl
.
Pour obtenir un exemple illustrant l'utilisation des commandes Google Cloud CLI pour lister, créer, décrire, mettre à jour et supprimer un récepteur, consultez l'exemple de bout en bout.
Terminologie
Pour simplifier les exemples de cette page, des variables d'environnement ont été utilisées.
Les exemples de Google Cloud CLI utilisent les variables d'environnement suivantes:
SINK_ID
: le nom ou l'identifiant du récepteur. Exemple :my-sink
. Il n'est pas nécessaire de fournir la commande complète à la Google Cloud CLI, car elle peut déterminer votre projet Google Cloud.DESTINATION
: stocke le nom complet de la destination. Il doit s'agir d'un ensemble de données BigQuery. Par exemple, une destination valide est :bigquery.googleapis.com/projects/DESTINATION_PROJECT_NUMBER/datasets/DATASET_ID
où
DESTINATION_PROJECT_NUMBER
est le numéro du projet Google Cloud de la destination etDATASET_ID
l'identifiant de l'ensemble de données BigQuery.
Les exemples curl
utilisent les variables d'environnement suivantes :
ACCESS_TOKEN
: stocke le jeton d'autorisation. Pour en savoir plus, consultez la section Utilisercurl
.PROJECT_ID
: stocke l'identifiant ou le numéro du projet Google Cloud.PROJECT_NUMBER
: stocke le numéro du projet Google Cloud.SINK_ID
: le nom ou l'identifiant du récepteur. Exemple :my-sink
.SINK_BODY
: stocke la description d'une ressourceTraceSink
. La ressource TraceSink inclut un nom et la destination du récepteur. Le nom doit spécifier le numéro du projet Google Cloud.DESTINATION
: stocke le nom complet de la destination. Il doit s'agir d'un ensemble de données BigQuery.
Configurer la destination
Pour exporter des traces vers BigQuery, procédez comme suit :
Créez l'ensemble de données de destination.
Créez le récepteur à l'aide de l'API Cloud Trace ou de Google Cloud CLI. Pour en savoir plus, consultez Créer un récepteur.
Attribuez au récepteur le rôle
dataEditor
pour votre ensemble de données BigQuery :Obtenez l'identité du rédacteur à partir du récepteur. Pour plus d'informations sur l'identité du rédacteur, consultez la section Propriétés et terminologie des récepteurs.
L'identité du rédacteur pour un récepteur est incluse dans les données de réponse à la commande de création. Elle est également incluse dans les données de réponse de la commande list.
Ajoutez l'identité du rédacteur du récepteur en tant que compte de service à votre ensemble de données BigQuery et attribuez-lui le rôle d'éditeur de données BigQuery.
Pour ajouter les autorisations à l'aide de la console Google Cloud, consultez la section Contrôler l'accès à un ensemble de données.
Pour ajouter les autorisations à l'aide de Google Cloud CLI, utilisez la commande
add-iam-policy-binding
et indiquez l'identifiant de votre projet Google Cloud et l'identité du rédacteur du récepteur :gcloud projects add-iam-policy-binding ${DESTINATION_PROJECT_ID} \ --member serviceAccount:${WRITER_IDENTITY} \ --role roles/bigquery.dataEditor
Dans la commande précédente,
WRITER_IDENTITY
est une variable d'environnement qui stocke l'identité du rédacteur du récepteur etDESTINATION_PROJECT_ID
est l'identifiant du projet Google Cloud de l'ensemble de données BigQuery.
Répertorier les récepteurs
Pour répertorier tous les récepteurs dans votre projet Google Cloud, y compris leurs identités de rédacteur, appelez la méthode traceSinks.list
.
gcloud
Pour répertorier les récepteurs définis avec le projet par défaut à l'aide de la Google Cloud CLI, exécutez la commande suivante :
gcloud alpha trace sinks list
Protocole
Pour répertorier les récepteurs à l'aide de curl
, envoyez une requête GET
à :
https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks
Par exemple, la requête suivante récupère tous les récepteurs :
curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}" https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks
Afficher les détails d'un récepteur spécifique
Pour afficher les détails d'un récepteur spécifique dans votre projet Google Cloud, appelez la méthode traceSinks.get
.
gcloud
Afficher les détails du récepteur dont l'identifiant est stocké dans SINK_ID
à l'aide de la Google Cloud CLI, exécutez la commande suivante:
gcloud alpha trace sinks describe ${SINK_ID}
Protocole
Pour afficher les détails du récepteur dont l'identifiant est stocké dans SINK_ID
à l'aide de curl
, envoyez une requête GET
à :
https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/%{SINK_ID}
Par exemple, la requête suivante récupère les détails du récepteur spécifié :
curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}" https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}
Créer un récepteur
Pour créer un récepteur dans votre projet Google Cloud, appelez la méthode traceSinks.create
.
La destination d'un récepteur doit être un ensemble de données BigQuery.
Cet ensemble de données doit exister avant la création du récepteur. Trace ne vérifie pas l'existence de la destination. Consultez la section Créer des ensembles de données pour en savoir plus sur la création d'ensembles de données BigQuery.
gcloud
Pour créer un récepteur à l'aide de la Google Cloud CLI, exécutez la commande suivante:
gcloud alpha trace sinks create ${SINK_ID} ${DESTINATION}
Protocole
Pour créer un récepteur à l'aide de curl, envoyez une requête POST
à :
https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks
Par exemple, pour créer un récepteur nommé test_sink
afin d'exporter les délais de trace vers test_dataset
dans le projet avec ${PROJECT_NUMBER}
, définissez la variable d'environnement SINK_BODY
comme indiqué :
SINK_BODY='{"name":"projects/12345/traceSinks/test_sink","output_config":{"destination":"bigquery.googleapis.com/projects/12345/datasets/test_dataset"}}'
Pour créer le récepteur, exécutez la commande suivante :
curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}" --header "Content-Type: application/json" -X POST -d ${SINK_BODY} https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks
La création d'un récepteur peut prendre plusieurs minutes avant que les délais de trace ne soient exportés vers la destination.
Supprimer un récepteur
Pour supprimer un récepteur qui se trouve dans votre projet Google Cloud, appelez la commande traceSinks.delete
.
gcloud
Pour supprimer le récepteur dont l'identifiant est stocké dans SINK_ID
à l'aide de la Google Cloud CLI, exécutez la commande suivante :
gcloud alpha trace sinks delete ${SINK_ID}
Protocole
Pour supprimer le récepteur dont l'identifiant est stocké dans SINK_ID
à l'aide de curl
, envoyez une requête DELETE
à :
https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}
Par exemple, la requête suivante supprime un récepteur :
curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}" -X DELETE https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}
Mettre à jour un récepteur
Pour mettre à jour un récepteur qui se trouve dans votre projet Google Cloud, appelez la commande traceSinks.patch
.
Cet ensemble de données doit exister avant la création du récepteur. Trace ne vérifie pas l'existence de la destination.
gcloud
Pour mettre à jour le récepteur dont l'identifiant est stocké dans SINK_ID
à l'aide de Google Cloud CLI, exécutez la commande suivante :
gcloud alpha trace sinks update ${SINK_ID} ${DESTINATION}
La variable d'environnement DESTINATION
stocke la nouvelle destination
sur un récepteur Google Cloud.
Protocole
Pour mettre à jour la destination du récepteur dont l'identifiant est stocké dans SINK_ID
à l'aide de curl
, envoyez une requête PATCH
à :
https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}
Par exemple, la requête suivante met à jour la destination d'un récepteur :
curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}" --header "Content-Type: application/json" -X PATCH -d ${SINK_BODY} https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}?update_mask=output_config.destination
Pour obtenir un exemple de SINK_BODY
, consultez l'exemple de création d'un récepteur.
Plusieurs minutes peuvent s'écouler après la mise à jour d'un récepteur avant que les délais de trace ne soient exportés vers la nouvelle destination.
Exemple de bout en bout
Cette section explique comment utiliser les commandes de la Google Cloud CLI pour répertorier, créer,
décrire, mettre à jour et supprimer un récepteur. Les commandes ont été exécutées pour un projet portant l'identifiant de projet a-sample-project
. Ce projet a été préconfiguré pour contenir deux ensembles de données BigQuery. Enfin, dans ces exemples, le récepteur et la destination se trouvent dans le même projet. Ce n'est pas une obligation. Le récepteur et la destination peuvent se trouver dans différents projets Google Cloud.
Étapes de configuration
Vérifiez le paramètre de projet par défaut :
$ gcloud config list
Exemple de réponse :
[compute] zone = us-east1-b [core] account = user@example.com disable_usage_reporting = True project = a-sample-project Your active configuration is: [default]
Vérifiez que la Google Cloud CLI est au minimum de la version 274.0.0:
$ gcloud --version
Exemple de réponse :
Google Cloud SDK 275.0.0 alpha 2020.01.03 beta 2020.01.03 bq 2.0.51 core 2020.01.03 gsutil 4.46 kubectl 2020.01.03
Identifiez les ensembles de données disponibles dans le projet par défaut :
$ bq ls
Exemple de réponse :
datasetId --------------- dataset_1 dataset_other
Notez que la première fois que vous utilisez les commandes
bq
, vous devrez peut-être sélectionner le projet.
Configurer les variables d'environnement
Définissez les variables d'environnement utilisées par la commande Google Cloud CLI :
$ PROJECT_ID=a-sample-project $ PROJECT_NUMBER=123456789000 $ SINK_ID=a-sample-sink $ DATA_SET_NAME=dataset_1 $ DESTINATION=bigquery.googleapis.com/projects/${PROJECT_NUMBER}/datasets/${DATA_SET_NAME}
Dans cet exemple, la destination et le récepteur se trouvent dans le même projet. Ce n'est pas une obligation. Le récepteur et la destination peuvent se trouver dans différents projets Google Cloud.
Vérifiez les paramètres :
$ echo $SINK_ID a-sample-sink $ echo $DATA_SET_NAME dataset_1 $ echo $DESTINATION bigquery.googleapis.com/projects/123456789000/datasets/dataset_1
Répertorier les récepteurs
Pour répertorier tous les récepteurs, exécutez la commande suivante :
$ gcloud alpha trace sinks list
Ce projet n'ayant pas de récepteur, la réponse est :
Listed 0 items.
Créer un récepteur
Pour créer un récepteur, exécutez la commande suivante :
$ gcloud alpha trace sinks create ${SINK_ID} ${DESTINATION}
Exemple de réponse :
You can give permission to the service account by running the following command. gcloud projects add-iam-policy-binding bigquery-project \ --member serviceAccount:export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com \ --role roles/bigquery.dataEditor
Notez que le nom du compte de service inclut
export-0000001cbe991a08-3434
. Le nombre 0000001cbe991a08 est la représentation hexadécimale dePROJECT_NUMBER
. La valeur3434
est une valeur aléatoire.Avant d'exécuter la Google Cloud CLI dans la réponse précédente, vous devez remplacer
bigquery-project
par votre identifiant de projet.Vérifiez que le récepteur a bien été créé :
$ gcloud alpha trace sinks list
Exemple de réponse :
NAME DESTINATION WRITER_IDENTITY a-sample-sink bigquery.googleapis.com/projects/123456789000/datasets/dataset_1 export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com
Décrivez le récepteur en détail :
$ gcloud alpha trace sinks describe ${SINK_ID}
Exemple de réponse :
destination: bigquery.googleapis.com/projects/123456789000/datasets/dataset_1 name: a-sample-sink writer_identity: export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com
Accordez l'autorisation
bigquery.dataEditor
à l'identité de rédacteur du récepteur. La commande de création de récepteur renvoie une commande Google Cloud CLI que vous pouvez utiliser pour mettre à jour l'autorisation.Pour que cette commande fonctionne, procédez comme suit :
- Vérifiez que vous disposez des autorisations nécessaires pour modifier les autorisations de destination.
- Remplacez
bigquery-project
par l'identifiant de votre projet :
gcloud projects add-iam-policy-binding ${PROJECT_ID} --member serviceAccount:export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com --role roles/bigquery.dataEditor
Notez que la première entrée de cet exemple de réponse est l'identité de rédacteur du récepteur :
Updated IAM policy for project [a-sample-project]. bindings: - members: - serviceAccount:export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com role: roles/bigquery.dataEditor - members: - user:user@example.com role: roles/cloudtrace.admin - members: - serviceAccount:service-123456789000@compute-system.iam.gserviceaccount.com role: roles/compute.serviceAgent - members: - serviceAccount:service-123456789000@container-engine-robot.iam.gserviceaccount.com role: roles/container.serviceAgent - members: - serviceAccount:service-123456789000@container-analysis.iam.gserviceaccount.com role: roles/containeranalysis.ServiceAgent - members: - serviceAccount:service-123456789000@containerregistry.iam.gserviceaccount.com role: roles/containerregistry.ServiceAgent - members: - serviceAccount:123456789000-compute@developer.gserviceaccount.com - serviceAccount:123456789000@cloudservices.gserviceaccount.com role: roles/editor - members: - user:user@example.com role: roles/owner etag: BwWbqGVnShQ= version: 1
Modifier la destination du récepteur
Dans cet exemple, la destination passe de dataset_1
à dataset_other
:
Mettez à jour les variables d'environnement
DATA_SET_NAME
etDESTINATION
:$ DATA_SET_NAME=dataset_other $ DESTINATION=bigquery.googleapis.com/projects/${PROJECT_NUMBER}/datasets/${DATA_SET_NAME} $ echo ${DESTINATION} bigquery.googleapis.com/projects/123456789000/datasets/dataset_other
Veillez à actualiser la valeur de
DESTINATION
après avoir modifiéDATA_SET_NAME
ouPROJECT_NUMBER
.Changez la destination du récepteur :
$ gcloud alpha trace sinks update ${SINK_ID} ${DESTINATION}
Voici un exemple de sortie :
Updated [https://cloudtrace.googleapis.com/v2beta1/projects/123456789000/traceSinks/a-sample-sink]. destination: bigquery.googleapis.com/projects/123456789000/datasets/dataset_other name: a-sample-sink writer_identity: export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com
Exécutez la commande describe pour afficher les détails du récepteur :
$ gcloud alpha trace sinks describe ${SINK_ID} destination: bigquery.googleapis.com/projects/123456789000/datasets/dataset_other name: a-sample-sink writer_identity: export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com
Lorsque vous mettez à jour la destination d'un récepteur, vous ne modifiez pas l'identité de rédacteur du récepteur et n'avez donc pas besoin de mettre à jour les autorisations du récepteur.
Supprimer un récepteur
Pour supprimer un récepteur, exécutez la commande suivante :
$ gcloud alpha trace sinks delete ${SINK_ID}
Exemple de sortie :
Really delete sink [a-sample-sink]? Do you want to continue (y/N)? y Deleted [https://cloudtrace.googleapis.com/v2beta1/projects/123456789000/traceSinks/a-sample-sink].
Vous pouvez vérifier le résultat en exécutant la commande list
:
$ gcloud alpha trace sinks list Listed 0 items.
Validation
Vous pouvez utiliser la métrique Cloud Monitoring exported_span_count
comme base d'un graphique qui affiche les erreurs lorsque les données Trace sont exportées vers BigQuery. Vous pouvez également créer une règle d'alerte pour vous avertir en cas d'erreurs d'exportation.
Créer un graphique
Pour afficher les métriques d'une ressource surveillée à l'aide de l'explorateur de métriques, procédez comme suit :
-
Dans la console Google Cloud, accédez à la page leaderboardExplorateur de métriques :
Accéder à l'explorateur de métriques
Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Monitoring.
- Dans l'élément Métrique, développez le menu Sélectionner une métrique, saisissez
Spans Exported to BigQuery
dans la barre de filtre, puis utilisez les sous-menus pour sélectionner un type de ressource et des métriques spécifiques :- Dans le menu Ressources actives, sélectionnez Cloud Trace.
- Dans le menu Catégories de métriques actives, sélectionnez Bigquery_explort.
- Dans le menu Métriques actives, sélectionnez Délais exportés vers BigQuery.
- Cliquez sur Appliquer.
- Configurez le mode d'affichage des données.
- Laissez l'élément Filtre vide. Si vous choisissez cette option, le graphique affiche toutes les données d'état.
Dans l'élément Agrégation, définissez le premier menu sur Moyenne et le second menu sur status.
Ces sélections génèrent une seule série temporelle pour chaque valeur d'état unique. Le tableau suivant affiche les valeurs d'état possibles :
Valeur État Signification et action corrective ok
Le transfert de données a été effectué avec succès. bigquery_permission_denied
Échec de l'exportation des données vers la destination. L'exportation peut échouer pour l'une des raisons suivantes :
- Le compte de service du récepteur de trace n'est pas autorisé à écrire dans l'ensemble de données de destination. Voir Autorisation refusée.
- La destination de l'ensemble de données dans le récepteur n'existe pas. Voir Destination incorrecte.
- Erreurs internes BigQuery. Il s'agit d'une erreur temporaire et inattendue.
bigquery_quota_exceeded
Le projet BigQuery a dépassé son quota de streaming BigQuery. Voir Quota épuisé. invalid_span
internal_errors
invalid_destination
Erreur inconnue empêchant l'exportation de données vers BigQuery. Pour résoudre ce problème, veuillez contacter l'assistance technique ou poser une question sur Stack Overflow. Pour en savoir plus, consultez la page Assistance.
Pour plus d'informations sur la configuration d'un graphique, consultez la page Sélectionner des métriques lors de l'utilisation de l'explorateur de métriques.
Si votre récepteur de trace parvient à exporter des données, le graphique créé avec les paramètres précédents affiche une seule série temporelle avec la valeur d'état ok
. Si des erreurs se produisent lors de l'exportation, des séries temporelles supplémentaires apparaissent dans le graphique.
Créer une règle d'alerte
Pour créer une règle d'alerte qui se déclenche en cas d'erreur l'exportation des données Cloud Trace vers BigQuery ; utilisez les paramètres suivants.
ChampNouvelle condition |
Valeur |
---|---|
Ressource et métrique | Dans le menu Ressources, sélectionnez Cloud Trace. Dans le menu Catégories de métriques, sélectionnez BigQuery_export. Dans le menu Métriques, sélectionnez Délais exportés vers BigQuery. |
Filter | status != ok |
Dans toutes les séries temporelles Regrouper les séries temporelles par |
status |
Dans toutes les séries temporelles Agrégation de séries temporelles |
sum |
Fenêtre glissante | 1 m |
Fenêtrage glissant | rate |
Champ Configurer le déclencheur d'alerte |
Valeur |
---|---|
Type de condition | Threshold |
Déclencheur d'alerte | Any time series violates |
Position du seuil | Above threshold |
Valeur du seuil | 0 |
Fenêtre du nouveau test | 1 minute |
Utiliser curl
Cette section décrit les conventions et la configuration utilisées pour appeler l'API Cloud Trace à l'aide de l'outil curl
:
Authentication
Créez une variable d'environnement destinée à contenir l'identifiant de votre projet Google Cloud :
PROJECT_ID=my-project
Créez une variable d'environnement destinée à contenir le numéro de votre projet Google Cloud :
PROJECT_NUMBER=12345
Authentifiez Google Cloud CLI :
gcloud auth login
Définissez l'identifiant de projet Google Cloud par défaut :
gcloud config set project ${PROJECT_ID}
Créez un jeton d'autorisation et enregistrez-le dans une variable d'environnement :
ACCESS_TOKEN=`gcloud auth print-access-token`
Vérifiez le jeton d'accès :
echo ${ACCESS_TOKEN}
La réponse à la commande doit être une longue chaîne de caractères. Par exemple, sur un système, la réponse commence par :
y29.GluiBjo....
Appeler curl
Chaque commande curl
inclut un ensemble d'arguments, suivi de l'URL d'une ressource d'API Cloud Trace. Les valeurs spécifiées par les variables d'environnement PROJECT_ID
et ACCESS_TOKEN
constituent des arguments courants.
Chaque appel curl
se présente sous la forme générale suivante :
curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}" [OTHER_ARGS] https://cloudtrace.googleapis.com/[API_VERSION]/projects/${PROJECT_ID}/[RESOURCE]
où :
[OTHER_ARGS]
(Facultatif) : omettez ce champ si vous envoyez une requêteGET
. Pour les autres types de requêtes HTTP, remplacez cet espace réservé par le type de requête et toute donnée supplémentaire nécessaire pour répondre à la requête.[API_VERSION]
: spécifiez la version de l'API.[RESOURCE]
: spécifiez le nom de ressource de l'API Cloud Trace.
Par exemple, pour répertorier les 1 000 dernières traces de votre projet, exécutez la commande suivante :
curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}" https://cloudtrace.googleapis.com/v1/projects/${PROJECT_ID}/traces
Dépannage
Cette section contient des informations de dépannage qui peuvent vous aider à résoudre les échecs lors de la configuration d'une exportation.
Erreur d'argument incorrecte pour l'ensemble de données
Le message d'erreur suivant indique que le nom de l'ensemble de données n'est pas valide :
ERROR: (gcloud.alpha.trace.sinks.create) INVALID_ARGUMENT: Request contains an invalid argument. - '@type': type.googleapis.com/google.rpc.DebugInfo detail: '[ORIGINAL ERROR] generic::invalid_argument: sink destination is malformed: bigquery.googleapis.com/projects/123456789000/datasets/a-sample-project:dataset_1.
L'erreur est due à la destination qui comprend l'identifiant du projet Google Cloud, a-sample-project
, servant de qualificatif à l'ensemble de données.
Pour résoudre cette erreur, remplacez a-sample-project:dataset_1
par dataset_1
, puis exécutez la commande create.
Notez que vous pouvez répertorier vos ensembles de données à l'aide de la commande bq ls
.
Aucune donnée de trace n'est reçue
Plusieurs raisons peuvent expliquer pourquoi vous ne recevez pas de données de trace dans BigQuery.
Destination incorrecte
Vérifiez que le nom de l'ensemble de données et le numéro du projet sont corrects.
Vérifiez que le nom de l'ensemble de données est correct. Pour répertorier les ensembles de données de votre projet actuel, exécutez
bq ls
.Si vous avez choisi d'utiliser des variables d'environnement, vérifiez que la valeur de chaque variable est correcte en exécutant une commande "echo". Par exemple, vérifiez que votre destination est correcte :
$ echo ${DESTINATION} bigquery.googleapis.com/projects/123456789000/datasets/dataset_other
Comme
DESTINATION
dépend de la valeur dePROJECT_NUMBER
et deDATA_SET_NAME
, ces deux variables doivent être définies en premier. De plus, si vous modifiez l'une de ces deux variables, vous devez actualiser la valeur stockée dansDESTINATION
.Pour déterminer le nombre de projets en cours, exécutez la commande suivante :
gcloud projects list --filter="${PROJECT_ID}"
Vous pouvez définir le paramètre
PROJECT_NUMBER
de manière automatisée à l'aide de la commande suivante :$ PROJECT_NUMBER=`gcloud projects list --filter="${PROJECT_ID}" --format="value(PROJECT_NUMBER)"`
Autorisations non valides
Vérifiez que le compte de service a reçu le rôle DataEditor
pour BigQuery. Vous pouvez vérifier les autorisations en exécutant la commande suivante :
$ gcloud projects get-iam-policy ${PROJECT_ID}
La réponse de cette commande décrit toutes les liaisons IAM. Dans le cas présent, le résultat est le suivant (Notez que l'identité du rédacteur du récepteur a le rôle dataEditor
) :
bindings: - members: - serviceAccount:export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com role: roles/bigquery.dataEditor - members: [Note, content truncated]
Quota épuisé
Si vous recevez des données et que celles-ci s'arrêtent soudainement ou sont incomplètes, vous avez peut-être épuisé votre quota de streaming BigQuery. Pour afficher votre quota, accédez à la page IAM et administration, puis sélectionnez Quotas. Recherchez l'API BigQuery. Deux entrées sont pertinentes : les flux de lignes par minute par ressource, et les flux d'octets par minute par ressource.
Étape suivante
Pour en savoir plus sur le schéma BigQuery, consultez Exporter vers BigQuery