Configuration du stockage
Certaines parties de ces instructions utilisent éventuellement ricloud-py pour simplifier la configuration. Pour utiliser cela, consultez les docs d’ installation et de configuration de ricloud-py .
La configuration de stockage indique à l'API où renvoyer les résultats de vos tâches. Nous prenons actuellement en charge les compartiments de stockage Google Cloud Storage (GS) et Amazon S3 (S3).
Configuration du stockage avec Google Cloud Storage
Création d'un projet Google Cloud Platform
Si vous ne possédez pas de compte Google Cloud Platform (GCP), vous devrez vous inscrire . Cliquez simplement sur «Essayer gratuitement» (ou «Essayer gratuitement») pour suivre le processus d'inscription.
Ensuite, vous aurez besoin d'un projet pour héberger votre seau de stockage. L'un d'entre eux peut avoir été créé automatiquement lors de l'inscription ou vous souhaitez peut-être créer un nouveau projet distinct uniquement à cette fin. Vous pouvez trouver des instructions supplémentaires sur la gestion des projets dans les documents Google Cloud .
Création d'un compartiment Google Cloud Storage
Maintenant que le projet GCP est prêt, vous pouvez créer un nouveau compartiment de stockage . Nous vous recommandons d'utiliser au moins la classe de stockage "Regional" et l'emplacement "us-east1" (c'est ici que se trouvent la plupart de nos ressources). Pour ce guide, nous allons nommer notre ricloud-storage
, mais vous devrez probablement choisir un nom différent, car les noms de compartiment sont uniques dans leur service hôte.
Création d'un compte de service pour l'API
Une fois le compartiment initialisé, vous devez créer un compte de service pour permettre à l'API d'y accéder. Un compte de service est essentiellement un utilisateur de robot de votre projet auquel nous pouvons donner des autorisations pour accéder uniquement à notre nouveau compartiment. Continuez et suivez les étapes décrites dans la documentation Google Cloud IAM pour configurer un compte de service. Le choix du nom dépend de vous, mais dans ce guide, nous l'appelons ricloud-sa
. Ignorer tous les champs facultatifs lors de la création du compte de service, nous définirons les autorisations lors d'une étape ultérieure.
Si vous choisissez de créer une clé lors de la dernière étape du processus, protégez-la car il s'agit du fichier que nous allons transmettre à l'API ultérieurement. Sinon, créez une clé maintenant en suivant ces étapes .
Définition d'autorisations au niveau du compartiment
Retournez à la section Stockage de votre projet GCP et suivez les étapes décrites dans la section "Ajout d'un membre à une stratégie au niveau du ricloud-sa
" dans les documents Google Cloud Storage pour ajouter le compte de service ricloud-sa
. Donnez-lui les rôles «Storage Object Creator» et «Storage Legacy Bucket Reader».
Création de la configuration
À ce stade, le compte de service doit être entièrement configuré et prêt à être utilisé avec l'API.
Utiliser ricloud-py pour créer la configuration
À l'aide de ricloud-py , vous pouvez créer une nouvelle ressource de configuration de stockage à l'aide de la commande suivante:
> ricloud storage-config create --url "<storage bucket url>" --credentials-path <path to credentials file>
Dans notre cas, l' storage bucket url
du gs://ricloud-storage
serait gs://ricloud-storage
et le path to credentials file
est simplement le chemin du fichier de clé de compte de service que nous avons créé précédemment.
Utiliser cURL pour créer la configuration
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> }'
Configuration du stockage avec Amazon S3
Création d'un compte Amazon AWS
Si vous ne possédez pas de compte Amazon AWS, vous devrez vous inscrire . Cliquez sur 'Démarrer avec Amazon S3' pour suivre le processus de configuration.
Création d'un compartiment de stockage S3
Suivez ces instructions de la documentation AWS pour obtenir une configuration de compartiment dans S3. Choisissez le nom de votre choix, pour ce guide, nous ricloud-storage
. Nous vous recommandons de le situer dans 'US East (N. Virginie)', à proximité des ressources de l'API.
Création d'un utilisateur pour l'API
Une fois que le compartiment est prêt à être utilisé, vous devez configurer un nouvel utilisateur doté d'autorisations limitées sur le nouveau compartiment à utiliser par l'API. Cette opération est effectuée via la console IAM via ces étapes . Donnez à l'utilisateur un nom mémorable, comme ricloud-user
et assurez-vous qu'il est configuré pour un «accès programmatique».
Nous devons créer une politique personnalisée, car lorsqu'on lui demande d'accorder des autorisations à l'utilisateur, aucune politique par défaut ne correspond à nos besoins. Pour la publication de résultats standard, l'API nécessite l'autorisation s3:PutObject
.
Dans l'éditeur de stratégie AWS, sélectionnez 'Attacher directement les stratégies existantes', cliquez sur 'Créer une stratégie' (cela devrait ouvrir un nouvel onglet), puis sélectionnez l'onglet 'JSON' (qui basculera vers l'éditeur de stratégie JSON) et collez ce qui suit dans :
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": ["arn:aws:s3:::ricloud-storage/*"] }] }
Assurez-vous de remplacer le nom du ricloud-storage
par celui que vous avez appelé précédemment. Parcourez pour enregistrer la nouvelle stratégie, nommez-la comme vous le souhaitez.
Revenez au processus de création de l'utilisateur et assurez-vous qu'il est associé à notre nouvelle stratégie.
À la fin du processus de création de l'utilisateur, l'interface affichera l'ID de la clé d'accès et la clé d'accès secrète. Vous devez les garder en sécurité. Vous pouvez également télécharger les informations d'identification au format CSV.
Création de la configuration
À ce stade, l'utilisateur doit être entièrement configuré et prêt à être utilisé avec l'API. À l'aide de ricloud-py , vous pouvez créer une nouvelle ressource de configuration de stockage à l'aide de la commande suivante:
> ricloud storage-config create --url "<storage bucket url>" --credentials-path <path to credentials file>
s3://ricloud-storage
et le path to credentials file
sont simplement l' storage bucket url
du s3://ricloud-storage
path to credentials file
s'agit uniquement du chemin d'accès au fichier CSV d'informations d'identification exporté à la fin du processus de création de l'utilisateur ou à un fichier JSON contenant les informations d'identification de l'utilisateur dans le fichier. Format des identifiants S3 .
L’appel cURL équivalent ressemblerait à ceci:
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>", } }'