Configurando el almacenamiento
Algunas partes de estas instrucciones usan opcionalmente ricloud-py para simplificar la configuración. Para hacer uso de esto, revisa los documentos de instalación y configuración de ricloud-py .
La configuración de almacenamiento le indica a la API dónde devolver los resultados de sus tareas. Actualmente, admitimos depósitos de almacenamiento de Google Cloud Storage (GS) y Amazon S3 (S3).
Configurando el almacenamiento con Google Cloud Storage
Creando un proyecto de Google Cloud Platform
Si no tiene una cuenta de Google Cloud Platform (GCP), deberá registrarse . Simplemente haga clic en "Probar gratis" (o "Pruébelo gratis") para pasar por el proceso de registro.
A continuación, necesitará un proyecto para alojar su cubo de almacenamiento. Es posible que se haya creado uno automáticamente al registrarse o es posible que desee un nuevo proyecto separado solo para este propósito. Puede encontrar instrucciones adicionales sobre cómo administrar proyectos en los documentos de Google Cloud .
Creando un cubo de almacenamiento de Google Cloud
Ahora que el proyecto GCP está listo, puede continuar y crear un nuevo grupo de almacenamiento . Recomendamos utilizar al menos la clase de almacenamiento 'Regional' y la ubicación 'us-east1' (aquí es donde se encuentran la mayoría de nuestros recursos). Para esta guía, le daremos un nombre a nuestro depósito ricloud-storage
, pero es probable que tenga que elegir un nombre diferente, ya que los nombres de los cubos son únicos a nivel mundial en su servicio de host.
Creando una cuenta de servicio para la API
Una vez que el grupo se haya inicializado, deberá crear una cuenta de servicio para darle acceso a la API. Una cuenta de servicio es esencialmente un usuario robot de su proyecto al que podemos otorgar permisos para acceder solo a nuestro nuevo grupo. Continúe y siga los pasos descritos en los documentos IAM de Google Cloud para configurar una cuenta de servicio. La elección del nombre depende de usted, pero en esta guía lo llamaremos ricloud-sa
. Ignore todos los campos opcionales al crear la cuenta de servicio, estableceremos los permisos en un paso posterior.
Si elige crear una clave en el paso final del proceso, manténgala segura ya que este es el archivo que le proporcionaremos a la API más adelante. De lo contrario, crea una clave ahora siguiendo estos pasos .
Configuración de permisos de nivel de cubo
Regrese a la sección de Almacenamiento de su proyecto de GCP y siga los pasos descritos en 'Agregar un miembro a una política de nivel de depósito' en la documentación de Google Cloud Storage para agregar la Cuenta de servicio de ricloud-sa
. Dale los roles de 'Storage Object Creator' y 'Storage Legacy Bucket Reader'.
Creando la configuracion
En este punto, la cuenta de servicio debe estar completamente configurada y lista para ser utilizada con la API.
Usando ricloud-py para crear la configuración
Usando ricloud-py , puede crear un nuevo recurso de configuración de almacenamiento con el comando:
> ricloud storage-config create --url "<storage bucket url>" --credentials-path <path to credentials file>
Donde storage bucket url
en nuestro caso sería gs://ricloud-storage
y la path to credentials file
es solo la ruta al archivo clave de la cuenta de servicio que creamos anteriormente.
Usando cURL para crear la configuración
curl -X POST \ https://ricloud-api.reincubate.com/configs/storage \ -H 'Authorization: Token <your key_token>' \ -H 'Content-Type: application/json' \ -d '{ "url": "gs://ricloud-storage", "credentials": <all contents of the Service Account JSON key file> }'
Configurando el almacenamiento con Amazon S3
Creando una cuenta de Amazon AWS
Si no tiene una cuenta de Amazon AWS, deberá registrarse . Haga clic en 'Comenzar con Amazon S3' para pasar por el proceso de configuración.
Creando un cubo de almacenamiento S3
Siga estas instrucciones de la documentación de AWS para obtener una configuración de depósito en S3. Elija el nombre que desee, para esta guía seleccionaremos ricloud-storage
. Recomendamos ubicarlo en 'US East (N. Virginia)' por su proximidad a los recursos de la API.
Creando un usuario para la API
Una vez que el contenedor esté listo para su uso, deberá configurar un nuevo usuario con permisos limitados para que el API lo use. Esto se hace a través de la consola IAM a través de estos pasos . Asígnele un nombre memorable, como ricloud-user
y asegúrese de que esté configurado para el "Acceso programático".
Necesitamos crear una política personalizada, ya que cuando se le pide que otorgue permisos al usuario, no existe una política predeterminada que se ajuste a nuestras necesidades. Para la publicación de resultados estándar, la API requiere el permiso s3:PutObject
.
En el editor de políticas de AWS, seleccione 'Adjuntar políticas existentes directamente', haga clic en 'Crear política' (esto debería abrir una nueva pestaña), luego seleccione la pestaña 'JSON' (que cambiará al editor de políticas JSON) y pegue lo siguiente en :
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": ["arn:aws:s3:::ricloud-storage/*"] }] }
Asegúrese de reemplazar el nombre del depósito ricloud-storage
con lo que haya nombrado anteriormente en el depósito. Ir a guardar la nueva política, nombre lo que quieras.
Vuelva al flujo de creación de usuarios y asegúrese de que el usuario tenga nuestra nueva política adjunta.
Al final del proceso de creación del usuario, la interfaz mostrará la 'ID de la clave de acceso' y la 'clave de acceso secreta', debe mantenerlos a salvo. También puede descargar las credenciales en formato CSV.
Creando la configuracion
En este punto, el usuario debe estar completamente configurado y listo para ser utilizado con la API. Usando ricloud-py , puede crear un nuevo recurso de configuración de almacenamiento con el comando:
> ricloud storage-config create --url "<storage bucket url>" --credentials-path <path to credentials file>
Donde storage bucket url
en este caso sería s3://ricloud-storage
y la path to credentials file
es solo la ruta al archivo CSV de credenciales exportado al final del proceso de creación del usuario o un archivo JSON con la información de la credencial del usuario en el Formato de credenciales S3 .
La llamada cURL equivalente se vería así:
curl -X POST \ https://ricloud-api.reincubate.com/configs/storage \ -H 'Authorization: Token <your key_token>' \ -H 'Content-Type: application/json' \ -d '{ "url": "s3://ricloud-storage", "credentials": { "user_name": "ricloud-user", "access_key_id": "<user access key ID>", "secret_access_key": "<user secret access key>", } }'