Uso la implementación de Google Cloud Dataflow en Python en Google Cloud Platform. Mi idea es usar la entrada de AWS S3.
Google Cloud Dataflow (que se basa en Apache Beam) admite la lectura de archivos de S3. Sin embargo, no puedo encontrar en la documentación la mejor posibilidad de pasar las credenciales a un trabajo. Intenté agregar AWS_ACCESS_KEY_ID y AWS_SECRET_ACCESS_KEY a las variables de entorno dentro del archivo setup.py . Sin embargo, funciona localmente, pero cuando empaqueto el trabajo de Cloud Dataflow como una plantilla y lo activo para que se ejecute en GCP, a veces funciona y a veces no, genera la excepción "NoCredentialsError" y hace que el trabajo falle.
¿Existe alguna solución coherente y de mejores prácticas para pasar las credenciales de AWS al trabajo Python Google Cloud Dataflow en GCP?
Las opciones para configurar esto se han agregado finalmente . Están disponibles en las versiones de Beam posteriores a la 2.26.0.
Las opciones de canalización son --s3_access_key_id y --s3_secret_access_key .
Desafortunadamente, la versión Beam 2.25.0 y anteriores no tienen una buena manera de hacer esto, aparte de la siguiente:
En este hilo , un usuario descubrió cómo hacerlo en el archivo setup.py que proporciona a Dataflow en su canalización.