En esta página se explica cómo exportar trazas mediante la API Cloud Trace y la CLI de Google Cloud. Debes usar la versión 274.0.0 de Google Cloud CLI o una posterior.
Para obtener información sobre cómo actualizar la CLI de Google Cloud, consulta gcloud components update
.
Algunas muestras de esta página se han generado con curl
. Para obtener información sobre cómo configurar esta herramienta, consulta Usar curl
.
Para ver un ejemplo de cómo usar los comandos de la CLI de Google Cloud para enumerar, crear, describir, actualizar y eliminar un receptor, consulta el ejemplo integral.
Terminología
Para simplificar los ejemplos de esta página, se han usado variables de entorno.
En los ejemplos de Google Cloud CLI se usan las siguientes variables de entorno:
SINK_ID
: el nombre o el identificador del receptor. Por ejemplo,my-sink
. No es necesario que proporciones el comando completo a la CLI de Google Cloud, ya que puede determinar tu Google Cloud proyecto.DESTINATION
: almacena el nombre completo del destino. Debe ser un conjunto de datos de BigQuery. Por ejemplo, un destino válido es:bigquery.googleapis.com/projects/DESTINATION_PROJECT_NUMBER/datasets/DATASET_ID
donde
DESTINATION_PROJECT_NUMBER
es el Google Cloud número de proyecto del destino yDATASET_ID
es el identificador del conjunto de datos de BigQuery.
En los ejemplos de curl
se usan las siguientes variables de entorno:
ACCESS_TOKEN
: almacena el token de autorización. Para obtener más información, consulta Usarcurl
.PROJECT_ID
: almacena el identificador o el número del proyecto. Google CloudPROJECT_NUMBER
: almacena el Google Cloud número de proyecto.SINK_ID
: el nombre o el identificador del receptor. Por ejemplo,my-sink
.SINK_BODY
: almacena la descripción de un recursoTraceSink
. El recurso TraceSink incluye un nombre y el destino del receptor. El nombre debe especificar el Google Cloud número del proyecto.DESTINATION
: almacena el nombre completo del destino. Debe ser un conjunto de datos de BigQuery.
Configurar el destino
Para exportar trazas a BigQuery, haz lo siguiente:
Crea el conjunto de datos de destino.
Crea el receptor con la API Cloud Trace o Google Cloud CLI. Para obtener más información, consulta el artículo Crear un receptor.
Asigna al receptor el rol
dataEditor
en tu conjunto de datos de BigQuery:Obtiene la identidad del escritor del receptor. Para obtener información sobre la identidad del escritor, consulta Propiedades y terminología de los receptores.
La identidad de escritura de un receptor se incluye en los datos de respuesta del comando de creación. También se incluye en los datos de respuesta del comando list.
Añade la identidad de escritura del receptor como cuenta de servicio a tu conjunto de datos de BigQuery y asígnale el rol Editor de datos de BigQuery.
Para añadir los permisos con la consola de Google Cloud , consulta el artículo sobre cómo controlar el acceso a un conjunto de datos.
Para añadir los permisos con la CLI de Google Cloud, usa el comando
add-iam-policy-binding
y proporciona el identificador de tu proyecto Google Cloudy la identidad de escritura del receptor:gcloud projects add-iam-policy-binding ${DESTINATION_PROJECT_ID} \ --member serviceAccount:${WRITER_IDENTITY} \ --role roles/bigquery.dataEditor
En el comando anterior,
WRITER_IDENTITY
es una variable de entorno que almacena la identidad de escritura del receptor yDESTINATION_PROJECT_ID
es el identificador de proyecto del conjunto de datos de BigQuery. Google Cloud
Mostrar sumideros
Para enumerar todos los receptores de tu proyecto Google Cloud , incluidas sus identidades de escritor, invoca el método traceSinks.list
.
gcloud
Para enumerar los receptores definidos con el proyecto predeterminado mediante la CLI de Google Cloud, ejecuta el siguiente comando:
gcloud alpha trace sinks list
Protocolo
Para enumerar los receptores mediante curl
, envía una solicitud GET
a:
https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks
Por ejemplo, la siguiente solicitud obtiene todos los receptores:
curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}" https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks
Mostrar los detalles de un sumidero específico
Para mostrar los detalles de un receptor específico de tu proyecto Google Cloud, invoca el método traceSinks.get
.
gcloud
Para mostrar los detalles del receptor cuyo identificador se almacena en SINK_ID
con la CLI de Google Cloud, ejecuta el siguiente comando:
gcloud alpha trace sinks describe ${SINK_ID}
Protocolo
Para mostrar los detalles del receptor cuyo identificador se almacena en SINK_ID
mediante curl
, envía una solicitud GET
a:
https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/%{SINK_ID}
Por ejemplo, la siguiente solicitud obtiene los detalles del receptor especificado:
curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}" https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}
Crear un sumidero
Para crear un receptor en tu proyecto Google Cloud , invoca el método traceSinks.create
.
El destino de un receptor debe ser un conjunto de datos de BigQuery.
Este conjunto de datos debe existir antes de crear el receptor. Trace no verifica la existencia del destino. Consulta Crear conjuntos de datos para obtener información sobre cómo crear conjuntos de datos de BigQuery.
gcloud
Para crear un receptor con la CLI de Google Cloud, ejecuta el siguiente comando:
gcloud alpha trace sinks create ${SINK_ID} ${DESTINATION}
Protocolo
Para crear un receptor con curl, envía una solicitud POST
a:
https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks
Por ejemplo, para crear un receptor llamado test_sink
para exportar intervalos de traza a test_dataset
en el proyecto con ${PROJECT_NUMBER}
, define la variable de entorno SINK_BODY
como se muestra a continuación:
SINK_BODY='{"name":"projects/12345/traceSinks/test_sink","output_config":{"destination":"bigquery.googleapis.com/projects/12345/datasets/test_dataset"}}'
Para crear el receptor, ejecuta el siguiente comando:
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
Puede que transcurran varios minutos después de crear un receptor antes de que los intervalos de traza se exporten al destino.
Eliminar un receptor
Para eliminar un receptor que esté en tu Google Cloud proyecto,
invoca el comando traceSinks.delete
.
gcloud
Para eliminar el receptor cuyo identificador se almacena en SINK_ID
con la CLI de Google Cloud, ejecuta el siguiente comando:
gcloud alpha trace sinks delete ${SINK_ID}
Protocolo
Para eliminar el receptor cuyo identificador se almacena en SINK_ID
con curl
, envía una solicitud DELETE
a:
https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}
Por ejemplo, la siguiente solicitud elimina un receptor:
curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}" -X DELETE https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}
Actualizar un sumidero
Para actualizar un receptor que esté en tu Google Cloud proyecto,
invoca el comando traceSinks.patch
.
Este conjunto de datos debe existir antes de crear el receptor. Trace no verifica la existencia del destino.
gcloud
Para actualizar el receptor cuyo identificador se almacena en SINK_ID
con la CLI de Google Cloud, ejecuta el siguiente comando:
gcloud alpha trace sinks update ${SINK_ID} ${DESTINATION}
La variable de entorno DESTINATION
almacena el nuevo destino del sumidero.
Protocolo
Para actualizar el destino del receptor cuyo identificador se almacena en SINK_ID
mediante curl
, envía una solicitud PATCH
a:
https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}
Por ejemplo, la siguiente solicitud actualiza el destino de un receptor:
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
Para ver un ejemplo de SINK_BODY
, consulta el ejemplo para crear un receptor.
Puede que tarden varios minutos en exportarse los intervalos de traza a la nueva ubicación después de actualizar un receptor.
Ejemplo completo
En esta sección se muestra cómo usar los comandos de la CLI de Google Cloud para enumerar, crear, describir, actualizar y eliminar un receptor. Los comandos se han ejecutado en un proyecto con el identificador a-sample-project
. Este proyecto se ha preconfigurado para que contenga dos conjuntos de datos de BigQuery. Por último, en estos ejemplos, el receptor y el destino están en el mismo proyecto. No es obligatorio. El receptor y el destino pueden estar enGoogle Cloud proyectos diferentes.
Pasos de la configuración
Verifica la configuración del proyecto predeterminado:
$ gcloud config list
Respuesta de ejemplo:
[compute] zone = us-east1-b [core] account = user@example.com disable_usage_reporting = True project = a-sample-project Your active configuration is: [default]
Verifica que Google Cloud CLI sea al menos la versión 274.0.0:
$ gcloud --version
Respuesta de ejemplo:
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
Identifica los conjuntos de datos disponibles en el proyecto predeterminado:
$ bq ls
Respuesta de ejemplo:
datasetId --------------- dataset_1 dataset_other
Ten en cuenta que la primera vez que uses los comandos
bq
, es posible que tengas que seleccionar el proyecto.
Configurar las variables de entorno
Define las variables de entorno que usa el comando de 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}
En este ejemplo, el destino y el receptor están en el mismo proyecto. No es obligatorio. El receptor y el destino pueden estar enGoogle Cloud proyectos diferentes.
Verifica los ajustes:
$ echo $SINK_ID a-sample-sink $ echo $DATA_SET_NAME dataset_1 $ echo $DESTINATION bigquery.googleapis.com/projects/123456789000/datasets/dataset_1
Mostrar receptores
Para enumerar todos los receptores, ejecuta el siguiente comando:
$ gcloud alpha trace sinks list
Como este proyecto no tiene ningún receptor, la respuesta es la siguiente:
Listed 0 items.
Crear un sumidero
Para crear un receptor, ejecuta el siguiente comando:
$ gcloud alpha trace sinks create ${SINK_ID} ${DESTINATION}
Respuesta de ejemplo:
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
Ten en cuenta que el nombre de la cuenta de servicio incluye
export-0000001cbe991a08-3434
. El número 0000001cbe991a08 es la representación hexadecimal dePROJECT_NUMBER
. El valor3434
es un valor aleatorio.Antes de ejecutar la CLI de Google Cloud en la respuesta anterior, debes sustituir
bigquery-project
por el identificador de tu proyecto.Comprueba que se ha creado el sumidero:
$ gcloud alpha trace sinks list
Respuesta de ejemplo:
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
Describe el sumidero detalladamente:
$ gcloud alpha trace sinks describe ${SINK_ID}
Respuesta de ejemplo:
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
Concede el permiso
bigquery.dataEditor
a la identidad de escritura del receptor. El comando sink create devuelve un comando de la CLI de Google Cloud que puedes usar para actualizar el permiso.Para que este comando se ejecute correctamente, haz lo siguiente:
- Asegúrate de que tienes permiso para modificar los permisos del destino.
- Sustituye
bigquery-project
por el identificador de tu proyecto:
gcloud projects add-iam-policy-binding ${PROJECT_ID} --member serviceAccount:export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com --role roles/bigquery.dataEditor
Ten en cuenta que la primera entrada de esta respuesta de ejemplo es la identidad del escritor del receptor:
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
Cambiar el destino del sumidero
En este ejemplo, el destino cambia de dataset_1
a dataset_other
:
Actualiza las variables de entorno
DATA_SET_NAME
yDESTINATION
:$ 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
No olvides actualizar el valor de
DESTINATION
después de modificarDATA_SET_NAME
oPROJECT_NUMBER
.Cambia el destino del sumidero:
$ gcloud alpha trace sinks update ${SINK_ID} ${DESTINATION}
Un ejemplo de salida es el siguiente:
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
Ejecuta el comando describe para ver los detalles del receptor:
$ 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
Cuando actualizas el destino de un receptor, no cambias la identidad del escritor del receptor y, por lo tanto, no tienes que actualizar los permisos del receptor.
Eliminar un sumidero
Para eliminar un receptor, ejecuta el siguiente comando:
$ gcloud alpha trace sinks delete ${SINK_ID}
El resultado de ejemplo es el siguiente:
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].
Para verificar el resultado, ejecuta el comando list
:
$ gcloud alpha trace sinks list Listed 0 items.
Validación
Puede usar la métrica exported_span_count
de Cloud Monitoring
como base para un gráfico que muestre los errores cuando se exportan datos de Trace a BigQuery. También puedes crear una política de alertas para recibir una notificación si se produce un error en una exportación.
Crear un gráfico
Para ver las métricas de un recurso monitorizado con el explorador de métricas, haz lo siguiente:
-
En la Google Cloud consola, ve a la página leaderboard Explorador de métricas:
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuya sección sea Monitorización.
- En la barra de herramientas de la Google Cloud consola, selecciona tu Google Cloud proyecto. En las configuraciones de App Hub, selecciona el proyecto host de App Hub o el proyecto de gestión de la carpeta habilitada para aplicaciones.
- En el elemento Métrica, despliega el menú Seleccionar una métrica,
introduce
Spans Exported to BigQuery
en la barra de filtros y, a continuación, usa los submenús para seleccionar un tipo de recurso y una métrica específicos:- En el menú Recursos activos, selecciona Cloud Trace.
- En el menú Categorías de métricas activas, seleccione Bigquery_explort.
- En el menú Métricas activas, selecciona Spans Exported to BigQuery (Spans exportados a BigQuery).
- Haz clic en Aplicar.
- Configura cómo se ven los datos.
- Deje vacío el elemento Filter. Si elige esta opción, el gráfico mostrará todos los datos de estado.
En el elemento Agregación, selecciona Media en el primer menú y status en el segundo.
Estas selecciones dan como resultado una sola serie temporal para cada valor de estado único. En la siguiente tabla se muestran los valores de estado posibles:
Valor de Estado Significado y acción correctiva ok
La transferencia de datos se ha realizado correctamente. bigquery_permission_denied
No se han podido exportar los datos al destino. La exportación puede fallar por alguno de los siguientes motivos:
- La cuenta de servicio del sumidero de trazas no tiene permiso para escribir en el conjunto de datos de destino. Consulta Permiso denegado.
- El destino del conjunto de datos del receptor no existe. Consulta Destino no válido.
- Errores internos de BigQuery. Se trata de un error inesperado y transitorio.
bigquery_quota_exceeded
El proyecto de BigQuery ha superado su cuota de streaming de BigQuery. Consulta Cuota agotada. invalid_span
internal_errors
invalid_destination
Error desconocido que impide la exportación de datos a BigQuery. Para resolver esta situación, póngase en contacto con el equipo de asistencia técnica o haga una pregunta en Stack Overflow. Para obtener más información, consulta el artículo Obtener asistencia.
Para obtener más información sobre cómo configurar un gráfico, consulta el artículo Seleccionar métricas al utilizar el explorador de métricas.
Si el receptor de trazas exporta datos correctamente, el gráfico creado con los ajustes anteriores mostrará una sola serie temporal con el valor de estado ok
. Si se producen errores durante la exportación,
se mostrarán series temporales adicionales en el gráfico.
Crear una política de alertas
Para crear una política de alertas que se active si hay errores al exportar datos de Cloud Trace a BigQuery, usa los siguientes ajustes.
Campo Nueva condición |
Valor |
---|---|
Recurso y métrica | En el menú Recursos, selecciona Cloud Trace. En el menú Categorías de métricas, selecciona Bigquery_export. En el menú Métricas, selecciona Spans Exported to BigQuery (Spans exportados a BigQuery). |
Filtro | status != ok |
En series temporales Agrupación por serie temporal |
status |
Entre series temporales Agregación de series temporales |
sum |
Ventana de tiempo | 1 m |
Función de ventana móvil | rate |
Configurar el activador de alertas Campo |
Valor |
---|---|
Tipo de condición | Threshold |
Activador de alerta | Any time series violates |
Posición del umbral | Above threshold |
Valor de umbral | 0 |
Ventana de repetición de la prueba | 1 minute |
Usar CURL
En esta sección se describen las convenciones y la configuración que se usan para invocar la API Cloud Trace con la herramienta curl
:
Autenticación
Crea una variable de entorno para almacenar el identificador de tu proyecto: Google Cloud
PROJECT_ID=my-project
Crea una variable de entorno para almacenar el Google Cloud número de proyecto:
PROJECT_NUMBER=12345
Autentica Google Cloud CLI:
gcloud auth login
Define el identificador de proyecto predeterminado: Google Cloud
gcloud config set project ${PROJECT_ID}
Crea un token de autorización y guárdalo en una variable de entorno:
ACCESS_TOKEN=`gcloud auth print-access-token`
Verifica el token de acceso:
echo ${ACCESS_TOKEN}
La respuesta al comando debe ser una cadena larga de caracteres. Por ejemplo, en un sistema, la respuesta empieza así:
y29.GluiBjo....
Invocando curl
Cada comando curl
incluye un conjunto de argumentos, seguido de la URL de un recurso de la API Cloud Trace. Entre los argumentos habituales se incluyen los valores especificados por las variables de entorno PROJECT_ID
y ACCESS_TOKEN
.
Cada invocación de curl
tiene la siguiente forma general:
curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}" [OTHER_ARGS] https://cloudtrace.googleapis.com/[API_VERSION]/projects/${PROJECT_ID}/[RESOURCE]
donde:
[OTHER_ARGS]
(Opcional): omite este campo si vas a enviar una solicitudGET
. Para otros tipos de solicitudes HTTP, sustituye este marcador de posición por el tipo de solicitud y los datos adicionales necesarios para satisfacer la solicitud.[API_VERSION]
: especifica la versión de la API.[RESOURCE]
: especifica el nombre del recurso de la API Cloud Trace.
Por ejemplo, para mostrar las 1000 trazas más recientes de tu proyecto, ejecuta lo siguiente:
curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}" https://cloudtrace.googleapis.com/v1/projects/${PROJECT_ID}/traces
Solución de problemas
En esta sección se incluye información para solucionar problemas que pueden surgir al configurar una exportación.
Error de argumento no válido en el conjunto de datos
El siguiente mensaje de error indica que el nombre del conjunto de datos no es válido:
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.
El error se debe a que el destino incluye el identificador del proyecto, Google Cloud, como calificador del nombre del conjunto de datos.a-sample-project
Para resolver este error, sustituya a-sample-project:dataset_1
por dataset_1
y, a continuación, ejecute el comando de creación.
Ten en cuenta que puedes enumerar tus conjuntos de datos con el comando bq ls
.
No se reciben datos de seguimiento
Hay varios motivos por los que es posible que no reciba datos de traza en BigQuery.
Destino no válido
Comprueba que el nombre del conjunto de datos y el número de proyecto sean correctos.
Para verificar que el nombre del conjunto de datos sea correcto. Para ver una lista de los conjuntos de datos de tu proyecto actual, ejecuta
bq ls
.Si has elegido usar variables de entorno, comprueba que el valor de cada variable sea correcto ejecutando un comando echo. Por ejemplo, comprueba que el destino sea correcto:
$ echo ${DESTINATION} bigquery.googleapis.com/projects/123456789000/datasets/dataset_other
Como
DESTINATION
depende del valor dePROJECT_NUMBER
yDATA_SET_NAME
, estas dos variables deben definirse primero. Además, si modificas cualquiera de estas dos variables, debes actualizar el valor almacenado enDESTINATION
.Para determinar el número de proyectos que tienes, ejecuta el siguiente comando:
gcloud projects list --filter="${PROJECT_ID}"
Puedes definir
PROJECT_NUMBER
de forma programática con el siguiente comando:$ PROJECT_NUMBER=`gcloud projects list --filter="${PROJECT_ID}" --format="value(PROJECT_NUMBER)"`
Permisos no válidos
Verifica que se haya concedido a la cuenta de servicio el rol de
DataEditor
en BigQuery. Para verificar los permisos, ejecuta el siguiente comando:
$ gcloud projects get-iam-policy ${PROJECT_ID}
La respuesta de este comando describe todos los enlaces de IAM. En este caso, el resultado es el que se muestra. Ten en cuenta que la identidad del escritor del receptor tiene el rol dataEditor
:
bindings: - members: - serviceAccount:export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com role: roles/bigquery.dataEditor - members: [Note, content truncated]
Cuota agotada
Si has estado recibiendo datos y, de repente, dejan de llegar o están incompletos, es posible que estés agotando tu cuota de streaming de BigQuery. Para consultar tu cuota, ve a la página IAM y administración y selecciona Cuotas. Busca la API de BigQuery. Hay dos entradas relevantes: Filas de streaming por minuto y por recurso, Bytes de streaming por minuto y por recurso.
Siguientes pasos
Para obtener información sobre el esquema de BigQuery, consulte Exportar a BigQuery.