Speicher konfigurieren
Einige Teile dieser Anleitung verwenden optional ricloud-py , um die Einrichtung zu vereinfachen. Lesen Sie dazu die Installations- und Konfigurationsdokumente für ricloud-py .
Die Speicherkonfiguration teilt der API mit, wo die Ergebnisse Ihrer Aufgaben zurückgegeben werden sollen. Derzeit unterstützen wir sowohl Google Cloud Storage (GS) als auch Amazon S3 (S3) -Speichereimer.
Einrichten des Speichers mit Google Cloud Storage
Erstellen eines Google Cloud Platform-Projekts
Wenn Sie kein Google Cloud Platform-Konto (GCP) haben, müssen Sie sich anmelden . Klicken Sie einfach auf "Kostenlos testen" (oder "Kostenlos testen"), um den Anmeldevorgang durchzuführen.
Als Nächstes benötigen Sie ein Projekt zur Unterbringung Ihres Speichereimers. Möglicherweise wurde eines bei der Anmeldung automatisch erstellt, oder Sie möchten ein neues, separates Projekt nur für diesen Zweck. Weitere Anweisungen zum Verwalten von Projekten finden Sie in den Google Cloud-Dokumenten .
Erstellen eines Google Cloud Storage-Buckets
Nachdem das GCP-Projekt fertig ist, können Sie einen neuen Speicherbucket erstellen . Wir empfehlen, mindestens die Speicherklasse "Regional" und den Speicherort "us-east1" zu verwenden (hier befinden sich die meisten unserer Ressourcen). In diesem Handbuch werden wir unseren Bucket- ricloud-storage
, aber Sie müssen wahrscheinlich einen anderen Namen auswählen, da die Bucket-Namen in ihrem Host-Service global eindeutig sind.
Erstellen eines Dienstkontos für die API
Nachdem der Bucket initialisiert wurde, müssen Sie ein Dienstkonto erstellen, um der API Zugriff darauf zu gewähren. Ein Dienstkonto ist im Wesentlichen ein Roboterbenutzer Ihres Projekts, dem wir die Berechtigung erteilen können, nur auf unseren neuen Bucket zuzugreifen. Führen Sie die in den Google Cloud IAM-Dokumenten beschriebenen Schritte aus, um ein Dienstkonto einzurichten. Die Wahl des Namens liegt bei Ihnen, aber in diesem Handbuch werden wir es ricloud-sa
. Ignorieren Sie beim Erstellen des Dienstkontos alle optionalen Felder. Die Berechtigungen werden in einem späteren Schritt festgelegt.
Wenn Sie im letzten Schritt des Vorgangs einen Schlüssel erstellen möchten, bewahren Sie diesen sicher auf, da dies die Datei ist, die wir später an die API übergeben werden. Andernfalls erstellen Sie jetzt einen Schlüssel, indem Sie die folgenden Schritte ausführen .
Festlegen von Berechtigungen auf Bucket-Ebene
Kehren Sie zum Speicherabschnitt Ihres GCP-Projekts zurück und folgen Sie den Anweisungen unter "Hinzufügen eines Mitglieds zu einer Richtlinie auf Bucket-Ebene" in den Google Cloud Storage-Dokumenten , um das ricloud-sa
hinzuzufügen. Geben Sie ihm die Rollen "Storage Object Creator" und "Storage Legacy Bucket Reader".
Konfiguration erstellen
Zu diesem Zeitpunkt sollte das Dienstkonto vollständig eingerichtet und für die Verwendung mit der API bereit sein.
Erstellen der Konfiguration mit ricloud-py
Mit ricloud-py können Sie mit dem folgenden Befehl eine neue Speicherkonfigurationsressource erstellen:
> ricloud storage-config create --url "<storage bucket url>" --credentials-path <path to credentials file>
Wo storage bucket url
in unserem Fall wäre gs://ricloud-storage
und path to credentials file
- path to credentials file
ist nur der Pfad zu dem Dienstkonto Schlüsseldatei wir zuvor erstellt hat .
Erstellen Sie die Konfiguration mit cURL
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> }'
Einrichten des Speichers mit Amazon S3
Erstellen eines Amazon AWS-Kontos
Wenn Sie kein Amazon AWS-Konto haben, müssen Sie sich anmelden . Klicken Sie auf "Erste Schritte mit Amazon S3", um den Installationsvorgang durchzuführen.
Erstellen eines S3-Speicherbuckets
Befolgen Sie diese Anweisungen in den AWS-Dokumenten, um ein Bucket-Setup in S3 zu erhalten. Wählen Sie einen beliebigen Namen, für diesen Leitfaden wählen wir ricloud-storage
. Wir empfehlen, es in 'US East (N. Virginia)' zu platzieren, um die Nähe zu den API-Ressourcen zu gewährleisten.
Erstellen eines Benutzers für die API
Sobald der Bucket einsatzbereit ist, müssen Sie einen neuen Benutzer mit eingeschränkten Berechtigungen für den neuen Bucket einrichten, damit die API verwendet werden kann. Dies erfolgt über die IAM-Konsole in diesen Schritten . Geben Sie dem Benutzer einen einprägsamen Namen, z. B. ricloud-user
und stellen Sie sicher, dass er für den programmatischen Zugriff eingerichtet ist.
Wir müssen eine benutzerdefinierte Richtlinie erstellen, da es keine Standardrichtlinie gibt, die unseren Anforderungen entspricht, wenn Sie aufgefordert werden, den Benutzern Berechtigungen zu erteilen. Für die Veröffentlichung von Standardergebnissen benötigt die API die Berechtigung s3:PutObject
.
Wählen Sie im AWS-Richtlinieneditor "Vorhandene Richtlinien direkt anhängen" aus, klicken Sie auf "Richtlinie erstellen" (dies sollte eine neue Registerkarte öffnen), wählen Sie dann die Registerkarte "JSON" (die zum JSON-Richtlinieneditor wechselt) und fügen Sie Folgendes ein ::
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": ["arn:aws:s3:::ricloud-storage/*"] }] }
ricloud-storage
Sie sicher, dass Sie den Bucket-Namen ricloud-storage
durch den Namen des Bucket ersetzen, den Sie zuvor angegeben haben. Speichern Sie die neue Richtlinie und benennen Sie sie nach Belieben.
Kehren Sie zum Ablauf der Benutzererstellung zurück und stellen Sie sicher, dass dem Benutzer unsere neue Richtlinie zugeordnet ist.
Am Ende des Benutzererstellungsprozesses werden auf der Benutzeroberfläche die Zugriffsschlüssel-ID und der geheime Zugriffsschlüssel angezeigt. Sie sollten diese Informationen aufbewahren. Sie können die Anmeldeinformationen auch im CSV-Format herunterladen.
Konfiguration erstellen
Zu diesem Zeitpunkt sollte der Benutzer vollständig eingerichtet und bereit sein, mit der API verwendet zu werden. Mit ricloud-py können Sie mit dem folgenden Befehl eine neue Speicherkonfigurationsressource erstellen:
> ricloud storage-config create --url "<storage bucket url>" --credentials-path <path to credentials file>
Wo storage bucket url
in diesem Fall wäre s3://ricloud-storage
und path to credentials file
- path to credentials file
ist nur der Pfad zur Anmeldeinformation CSV - Datei am Ende des Benutzererstellungsprozesses oder eine JSON - Datei mit dem Anmeldeinformation Benutzer exportierte in der S3-Berechtigungsnachweisformat .
Der entsprechende cURL-Aufruf würde folgendermaßen aussehen:
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>", } }'