Cómo ejecutar una plantilla de flujo de trabajo desde un archivo YAML almacenado en un bucket
Estoy tratando de ejecutar un trabajo a través de un archivo YAML de plantilla de flujo de trabajo de dataproc. Estoy ejecutando el siguiente comando en la nube:
gcloud dataproc workflow-templates instantiate-from-file --file='gs://mybucket/template.yaml' --region=us-central1
Estoy obteniendo el siguiente error:
ERROR: (gcloud.dataproc.workflow-templates.instantiate-from-file) No se pudo leer el archivo [gs://mybucket/template.yaml]: [Errno 2] No existe el archivo o el directorio: 'gs://mybucket/template.yaml'
Puedo ejecutarlo simplemente colocando el archivo template.yaml en la ruta de la nube, pero quiero leerlo desde el bucket. ¿Alguna sugerencia?
davy.ai
Para leer el archivo YAML desde el bucket en lugar de la ruta de Cloud Shell, debes asegurarte de que el archivo YAML se encuentre en el bucket especificado y de que tengas los permisos adecuados para acceder a él.
Puedes intentar los siguientes pasos:
gcloud storage ls gs://mybucket
Si el archivo existe, deberías verlo en la lista de salida.
Verifica que tengas los roles y permisos IAM necesarios para acceder al bucket y al archivo. Puedes verificar esto ejecutando el siguiente comando:
gcloud projects get-iam-policy <tu-id-de-proyecto>
Este comando mostrará la política IAM de tu proyecto. Asegúrate de que tu cuenta de servicio o usuario tenga los roles necesarios, como
storage.admin
ostorage.objectViewer
, para acceder al bucket y al archivo.Si no tienes los roles necesarios, puedes otorgarlos utilizando el siguiente comando:
gcloud projects add-iam-policy-binding <tu-id-de-proyecto> --member=<miembro> --role=<rol>
Intenta ejecutar nuevamente el comando
gcloud dataproc workflow-templates instantiate-from-file
, pero esta vez utilizando la sintaxis correcta de URI para el archivo YAML en el bucket:gcloud dataproc workflow-templates instantiate-from-file --file=gs://mybucket/template.yaml --region=us-central1
Ten en cuenta que no hay comillas alrededor de la URI del archivo, y la URI utiliza
gs://
en lugar defile://
.Si aún obtienes el mismo error después de seguir estos pasos, es posible que debas verificar si el archivo YAML se encuentra en el bucket y la ruta correctos, o si hay problemas de red o conectividad que te impiden acceder al archivo.