Storage configs

aggiornato

La risorsa di configurazione della memoria descrive dove l'API può memorizzare i dati appartenenti ai risultati dei sondaggi. Tutte le posizioni specificate nelle configurazioni di archiviazione devono essere un bucket di archiviazione nel cloud in Google Cloud Storage o Amazon S3 (AWS) .

attributi

nome genere descrizione
id ID di configurazione di archiviazione Identificatore di risorse
resource stringa, sempre storage_config Specificatore del tipo di risorsa.
organisation ID dell'organizzazione L'organizzazione a cui appartiene la risorsa.
type stringa Uno di: gs , s3 . Questo è un attributo di sola lettura generato url .
url stringa Un URL che rappresenta il target a cui verranno pubblicati i risultati.
credentials dizionario Un dizionario contenente le informazioni sulle credenziali utilizzate dall'API per l'autenticazione con il servizio di archiviazione.
state stringa Uno di: 'new' , 'valid' , 'invalid' , 'deactivated' .
date_created appuntamento Quando la risorsa è stata creata.

tipi

gs
il tipo di configurazione di archiviazione di Google Cloud Storage . Richiede credenziali dell'account di servizio.
s3
il tipo di configurazione di archiviazione Amazon S3 (AWS) . Richiede credenziali utente AWS.

URL

L'attributo url segue il formato:

<type>://<bucket name>/<path within bucket>

Ad esempio, dato che abbiamo un bucket in Google Cloud Storage con il nome "my-bucket" e vogliamo che l'API pubblichi in una cartella all'interno di questo bucket denominata "results", l' url sarà simile a:

gs://my-bucket/results

Credenziali

Credenziali di Google Cloud Storage

L'API prevede che l'attributo delle credentials sia un dizionario con il formato:

{
    "type": "service_account",
    "auth_uri": "https://accounts.google.com/o/oauth2/auth",
    "client_id": "<Google Cloud Platform client ID>",
    "token_uri": "https://oauth2.googleapis.com/token",
    "project_id": "<Google Cloud Platform project ID>",
    "private_key": "<Service Account private key>",
    "client_email": "<Service Account ID>.iam.gserviceaccount.com",
    "private_key_id": "<Service Account private key ID>",
    "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/<Service Account ID>.iam.gserviceaccount.com",
    "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs"
}

Questo corrisponde esattamente al file JSON di uscita quando si crea un codice di account di servizio tramite la console di Google Cloud Platform.

Per semplificare l'impostazione di una configurazione di archiviazione utilizzando le credenziali del file JSON esportate, ricloud-py include un semplice comando cli:

ricloud storage-config create --url "gs://<bucket name>" --credentials <path to JSON file>

Credenziali Amazon S3

L'API prevedeva che l'attributo delle credentials fosse un dizionario con il formato:

{
    "user_name": "<aws user name>",
    "access_key_id": "<aws user access key ID>",
    "secret_access_key": "<aws user secret access key>",
}

Questo può essere costruito manualmente dai dettagli mostrati nella console AWS o dal file CSV esportabile tramite il comando cli di ricloud-py :

ricloud storage-config create --url "s3://<bucket name>" --credentials <path to CSV file>

stati

new
è appena stato creato o aggiornato di recente ma non ancora testato.
valid
ha superato la validazione ed è pronto per essere utilizzato. Un'organizzazione deve avere almeno una configurazione di archiviazione in questo stato per poter essere utilizzata.
invalid
ha fallito il test di validazione. Deve essere aggiornato o ritestato.
deactivated
è stato disattivato dall'organizzazione proprietaria.

Crea POST /configs/storage

Quando viene creata una nuova configurazione di archiviazione, l'API tenterà di testarla creando un'attività storage_config.test . Questo compito pubblicherà semplicemente un payload di prova di piccole dimensioni utilizzando la configurazione, che può essere successivamente cancellata. Se l'operazione ha esito positivo, lo stato della configurazione è impostato su valid e diventa utilizzabile con i sondaggi. In caso di errore, lo stato della configurazione sarà impostato su invalid , ma questo può essere riesaminato facilmente utilizzando l' azione di test .

La prima configurazione di archiviazione valida all'interno di un'organizzazione verrà automaticamente impostata come predefinita dell'organizzazione.

Si noti che la creazione delle configurazioni di archiviazione è deduplicata sull'attributo url . Pertanto, non è possibile creare due configurazioni di archiviazione con lo stesso url ma credentials diverse.

parametri

nome genere descrizione
url necessario L'URL di configurazione della memoria per il tuo bucket.
credentials necessario Le credenziali di configurazione dello storage per il bucket.

Utilizzando cURL

Qui, il contenuto del dizionario delle credenziali deriva dalla copia dei contenuti del file delle credenziali JSON generato durante l'impostazione dell'account del servizio Google Cloud.

curl https://ricloud-api.reincubate.com/configs/storage \
  -X POST \
  -H 'Authorization: Token <your key_token>' \
  -H 'Content-Type: application/json' \
  -d '{
  "url": "gs://my-storage-bucket",
  "credentials": {
      "type": "service_account",
      "auth_uri": "https://accounts.google.com/o/oauth2/auth",
      "client_id": "<Google Cloud Platform client ID>",
      "token_uri": "https://oauth2.googleapis.com/token",
      "project_id": "<Google Cloud Platform project ID>",
      "private_key": "<Service Account private key>",
      "client_email": "<Service Account ID>.iam.gserviceaccount.com",
      "private_key_id": "<Service Account private key ID>",
      "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/<Service Account ID>.iam.gserviceaccount.com",
      "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs"
  }
}'

Usando ricloud-py

import json
import ricloud

with open("<path to JSON file>", 'r') as credentials_file:
    credentials = json.load(credentials_file)

storage_config = ricloud.StorageConfig.create(
    url='gs://my-storage-bucket',
    credentials=credentials
)

Recupera GET /configs/storage/{storage_config ID}

Utilizzando cURL

curl https://ricloud-api.reincubate.com/configs/storage/<storage_config ID> \
  -H 'Authorization: Token <your key_token>'

Usando ricloud-py

import ricloud

storage_config = ricloud.StorageConfig.retrieve(<storage_config ID>)

Elenco GET /configs/storage

Le configurazioni di archiviazione nello stato deactivated sono nascoste per impostazione predefinita e possono essere elencate solo mediante filtraggio esplicito.

parametri

nome genere descrizione
type stringa Filtra per tipo di bucket di backing.
state stringa Filtra per stato di configurazione.
date_created filtro datetime Filtra per rendere la data di creazione.

Utilizzando cURL

curl https://ricloud-api.reincubate.com/configs/storage \
  -H 'Authorization: Token <your key_token>'

Usando ricloud-py

import ricloud

storage_configs = ricloud.StorageConfig.list()

Aggiorna POST /configs/storage/{storage_config ID}

Questa azione crea un'attività di storage_config.test per verificare la validità di eventuali modifiche apportate alla configurazione.

parametri

nome genere descrizione
url stringa Aggiorna l'URL in modo che faccia riferimento a un diverso bucket o posizione all'interno del bucket. Si noti che il tipo di bucket non può essere modificato tramite questa operazione.
credentials dizionario Aggiorna le credenziali.
state stringa Solo su new o deactivated .

Utilizzando cURL

curl https://ricloud-api.reincubate.com/configs/storage/<storage_config ID> \
  -X POST \
  -H 'Authorization: Token <your key_token>' \
  -H 'Content-Type: application/json' \
  -d '{
    "url": "gs://my-storage-bucket/subfolder"
}'

Usando ricloud-py

import ricloud

storage_config = ricloud.StorageConfig.update_with_id(
  <storage_config ID>, url="gs://my-storage-bucket/subfolder"
)

# OR

storage_config = ricloud.StorageConfig.retrieve(<storage_config ID>)

storage_config.update(url='gs://my-storage-bucket/subfolder')

Elimina DELETE /configs/storage/{storage_config ID}

Elimina completamente la configurazione di archiviazione dall'API. Ciò rimuove qualsiasi informazione relativa alle credenziali memorizzata nell'API.

Utilizzando cURL

curl https://ricloud-api.reincubate.com/configs/storage/<storage_config ID> \
  -X DELETE \
  -H 'Authorization: Token <your key_token>'

Usando ricloud-py

Dal momento che ricloud-py v3.0.0 .

import ricloud

ricloud.StorageConfig.delete_with_id(<storage_config ID>)

# OR

storage_config = ricloud.StorageConfig.retrieve(<storage_config ID>)

storage_config.delete()

Test POST /configs/storage/{storage_config ID}/test

Questa azione consente di verificare nuovamente la validità di una configurazione di archiviazione. Lo stato della configurazione sarà impostato su valid o invalid base all'esito del test.

Si noti che questa azione restituisce una risorsa di attività.

Utilizzando cURL

curl https://ricloud-api.reincubate.com/configs/storage/<storage_config ID>/test \
  -H 'Authorization: Token <your key_token>'

Usando ricloud-py

import ricloud

test_task = ricloud.StorageConfig.test_with_id(<storage_config ID>)

# OR

storage_config = ricloud.StorageConfig.retrieve(<storage_config ID>)

test_task = storage_config.test()

Come possiamo aiutare?

Il nostro team di supporto è qui per aiutarti!

I nostri orari di ufficio sono dal lunedì al venerdì, dalle 9:00 alle 17:00 GMT. L'ora è attualmente 1:16 AM GMT.

Miriamo a rispondere a tutti i messaggi entro un giorno lavorativo.

Vai alla sezione di supporto › Contatta il team aziendale ›
Il nostro fantastico team di supporto

Possiamo migliorare questo articolo?

Ci piace ascoltare gli utenti: perché non mandarci un'email, lasciare un commento o twittare @reincubate?

© 2008 - 2019 Reincubate Ltd. Tutti i diritti riservati. Registrato in Inghilterra e Galles #5189175, VAT GB151788978. Reincubate® è un marchio registrato. Termini e Condizioni. Raccomandiamo 2FA. Costruito con a Londra.