ストレージの設定
これらの命令の一部では、セットアップを簡単にするためにオプションでricloud-pyを使用しています。これを利用するには、 ricloud-pyの インストールと設定のドキュメントをチェックしてください。
ストレージ構成は、タスクの結果を返す場所をAPIに指示します。現在、Google Cloud Storage(GS)とAmazon S3(S3)の両方のストレージバケットをサポートしています。
Google Cloud Storageでストレージを設定する
Google Cloud Platformプロジェクトの作成
Google Cloud Platform(GCP)アカウントをお持ちでない場合は、 サインアップする必要があります。 「無料で試す」(または「無料で試す」)をクリックして、申し込み手続きを進めてください。
次に、あなたはあなたのストレージバケツを収容するためのプロジェクトが必要になります。サインアップ時に自動的に作成されたものもあれば、この目的のためだけに別の新しいプロジェクトが必要な場合もあります。プロジェクトの管理方法に関する追加の説明は、 Google Cloudのドキュメントにあります。
Google Cloud Storageバケットの作成
GCPプロジェクトの準備ができたので、先に進んで新しいストレージバケットを作成できます 。少なくとも 'Regional'ストレージクラスと 'us-east1'ロケーションを使用することをお勧めします(これが、ほとんどのリソースが配置されている場所です)。このガイドでは、バケットの名前をricloud-storage
としますが、バケット名はホストサービス全体で一意であるため、別の名前を選択する必要があります。
APIのサービスアカウントを作成する
バケットが初期化されたら、APIにアクセスするためのサービスアカウントを作成する必要があります。サービスアカウントは基本的にあなたのプロジェクトのロボットユーザーであり、私たちは私たちの新しいバケットにのみアクセスするための許可を与えます。先に進み、 Google Cloud IAMのドキュメントに記載されている手順に従ってサービスアカウントを設定します。名前の選択はあなた次第ですが、このガイドではricloud-sa
と呼びます。サービスアカウントを作成するときにすべてのオプションフィールドを無視します。後の手順でアクセス許可を設定します。
プロセスの最終ステップでキーを作成することを選択した場合は、これが後でAPIに提供するファイルであるため、安全に保管してください。それ以外の場合は、次の手順に従って今すぐキーを作成してください 。
バケットレベルの権限を設定する
GCPプロジェクトの[ストレージ]セクションに戻り、 Google Cloud Storageのドキュメントの 「バケットレベルのポリシーへのメンバーの追加」の手順の概要に従って、 ricloud-sa
サービスアカウントを追加します。 「Storage Object Creator」と「Storage Legacy Bucket Reader」の役割を与えます。
構成を作成する
この時点で、サービスアカウントは完全にセットアップされており、APIで使用できるようになっています。
ricloud-pyを使って設定を作成する
ricloud-pyを使用して、次のコマンドで新しいストレージ構成リソースを作成できます。
> ricloud storage-config create --url "<storage bucket url>" --credentials-path <path to credentials file>
私たちの場合のstorage bucket url
はgs://ricloud-storage
なりpath to credentials file
へのパスは、先ほど作成したサービスアカウントキーファイルへのパスにすぎません。
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> }'
Amazon S3でストレージを設定する
Amazon AWSアカウントを作成する
Amazon AWSアカウントをお持ちでない場合は、 サインアップする必要があります。 [Amazon S3をはじめよう]をクリックしてセットアッププロセスを進めます。
S3ストレージバケットの作成
S3でバケット設定を取得するには、AWSのドキュメントからこれらの手順に従ってください。あなたが好きな名前を選んでください、このガイドのために我々はricloud-storage
を選びricloud-storage
。 APIのリソースに近いため、 'US East(N. Virginia)'に配置することをお勧めします。
API用のユーザーを作成する
バケットの使用準備が整ったら、APIで使用するために、新しいバケットに対する制限付きのアクセス許可を持つ新しいユーザーを設定する必要があります。これは、 これらの手順を通じてIAMコンソールを介して行われます 。ユーザーにricloud-user
ような思い出に残る名前を付け、それらが 'Programmatic access'に設定されていることを確認してください。
カスタムポリシーを作成する必要があります。これは、ユーザーにアクセス許可を与えるように求められたときに、ニーズに合ったデフォルトのポリシーがないためです。標準の結果公開の場合、APIにはs3:PutObject
権限が必要です。
AWSポリシーエディターで、[既存のポリシーを直接アタッチする]を選択し、[ポリシーを作成]をクリックします(これにより、新しいタブが開きます)。次に、[JSON]タブを選択し(JSONポリシーエディターに切り替わります)、以下を貼り付けます。 :
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": ["arn:aws:s3:::ricloud-storage/*"] }] }
バケット名ricloud-storage
は、以前にバケットに付けた名前に置き換えてください。新しいポリシーを保存して、必要な名前を付けます。
ユーザー作成フローに戻り、ユーザーに新しいポリシーが添付されていることを確認します。
ユーザー作成プロセスの最後に、インターフェイスに「アクセスキーID」と「シークレットアクセスキー」が表示されます。これらを安全に保管してください。資格情報をCSV形式でダウンロードすることもできます。
構成を作成する
この時点で、ユーザーは完全にセットアップされており、APIで使用する準備ができているはずです。 ricloud-pyを使用して、次のコマンドで新しいストレージ構成リソースを作成できます。
> ricloud storage-config create --url "<storage bucket url>" --credentials-path <path to credentials file>
この場合のstorage bucket url
はs3://ricloud-storage
、 path to credentials file
へのパスは、ユーザー作成プロセスの最後にエクスポートされた認証情報CSVファイルへのパス、またはユーザー認証情報を含むJSONファイルへのパスです。 S3認証情報フォーマット
同等のcURL呼び出しは次のようになります。
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>", } }'