このページでは、Spanner のバックアップ スケジュール オペレーションと、データベースのバックアップ スケジュールを設定する方法について説明します。
始める前に
-
バックアップ スケジュールの作成と管理に必要な権限を取得するには、インスタンスに対する次の IAM ロールの付与を管理者に依頼してください。
-
バックアップ スケジュールの作成、表示、更新、削除:
Cloud Spanner バックアップ管理者(
roles/spanner.backupAdmin
) -
バックアップ スケジュールの作成、表示:
Cloud Spanner バックアップ書き込み(
roles/spanner.backupWriter
)
-
バックアップ スケジュールの作成、表示、更新、削除:
Cloud Spanner バックアップ管理者(
バックアップ スケジュールを作成する
Google Cloud コンソールで、Spanner の [インスタンス] ページに移動します。
データベースが含まれているインスタンスをクリックします。
データベースをクリックします。
ナビゲーション メニューで [バックアップ/復元] をクリックします。
[バックアップ スケジュールを作成] をクリックします。
フォームに記入し、[作成] をクリックします。
後述のコマンドデータを使用する前に、次のように置き換えます。
-
SCHEDULE_ID : バックアップ スケジュール ID。 PROJECT_ID : プロジェクト ID。-
INSTANCE_ID : バックアップ スケジュールを作成するインスタンスの ID。 -
DATABASE_ID : バックアップ スケジュールを作成するデータベースの ID。 -
RETENTION_DURATION : スケジュールによって作成されたバックアップの保持期間。たとえば、保持期間を 1 日にする場合は、86400s
を使用します。 -
CRONTAB_EXPRESSION : バックアップ スケジュールの頻度を表す crontab 式。たとえば、バックアップ スケジュールの頻度を 12 時間ごとに設定する場合は、0 12 * * *
を使用します。 -
BACKUP_TYPE : フル バックアップ スケジュールか増分バックアップ スケジュールか。指定可能な値はfull-backup
またはincremental-backup
です。 -
ENCRYPTION_TYPE : バックアップ スケジュールによって作成されたバックアップの暗号化タイプ。有効な値はUSE_DATABASE_ENCRYPTION
、GOOGLE_DEFAULT_ENCRYPTION
、CUSTOMER_MANAGED_ENCRYPTION
です。CUSTOMER_MANAGED_ENCRYPTION
を使用する場合は、kmsKeyName
を指定する必要があります。バックアップ タイプがincremental-backup
の場合は、暗号化タイプがGOOGLE_DEFAULT_ENCRYPTION
である必要があります。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud spanner backup-schedules createSCHEDULE_ID \ --project=PROJECT_ID \ --instance=INSTANCE_ID \ --database=DATABASE_ID \ --retention-duration=RETENTION_DURATION \ --cron="CRONTAB_EXPRESSION " \ --backup-type=BACKUP_TYPE \ --encryption-type=ENCRYPTION_TYPE
Windows(PowerShell)
gcloud spanner backup-schedules createSCHEDULE_ID ` --project=PROJECT_ID ` --instance=INSTANCE_ID ` --database=DATABASE_ID ` --retention-duration=RETENTION_DURATION ` --cron="CRONTAB_EXPRESSION " ` --backup-type=BACKUP_TYPE ` --encryption-type=ENCRYPTION_TYPE
Windows(cmd.exe)
gcloud spanner backup-schedules createSCHEDULE_ID ^ --project=PROJECT_ID ^ --instance=INSTANCE_ID ^ --database=DATABASE_ID ^ --retention-duration=RETENTION_DURATION ^ --cron="CRONTAB_EXPRESSION " ^ --backup-type=BACKUP_TYPE ^ --encryption-type=ENCRYPTION_TYPE
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID : プロジェクト ID。-
INSTANCE_ID : バックアップ スケジュールを作成するインスタンスの ID。 -
DATABASE_ID : バックアップ スケジュールを作成するデータベースの ID。 SCHEDULE_ID : バックアップ スケジュール ID。-
BACKUP_TYPE : フル バックアップ スケジュールか増分バックアップ スケジュールか。 指定可能な値はfullBackupSpec
、incrementalBackupSpec
です。 -
ENCRYPTION_TYPE : バックアップ スケジュールによって作成されたバックアップの暗号化タイプ。指定可能な値はUSE_DATABASE_ENCRYPTION
、GOOGLE_DEFAULT_ENCRYPTION
、CUSTOMER_MANAGED_ENCRYPTION
です。CUSTOMER_MANAGED_ENCRYPTION
を使用する場合は、kmsKeyName
を指定する必要があります。バックアップ タイプがincremental-backup
の場合は、暗号化タイプがGOOGLE_DEFAULT_ENCRYPTION
である必要があります。 -
RETENTION_DURATION : スケジュールによって作成されたバックアップの保持期間。
HTTP メソッドと URL:
POST https://spanner.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules?backup_schedule_id=SCHEDULE_ID
リクエストの本文(JSON):
{ "retentionDuration": "RETENTION_DURATION ", "spec": { "cronSpec": { "text": "0 2 * * *" } }, "encryptionConfig": { "encryptionType": "ENCRYPTION_TYPE " }, "BACKUP_TYPE ": {} }
リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://spanner.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules?backup_schedule_id=SCHEDULE_ID "
PowerShell(Windows)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://spanner.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules?backup_schedule_id=SCHEDULE_ID " | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules/SCHEDULE_ID ", "retentionDuration": "86400s", "encryptionConfig": { "encryptionType": "USE_DATABASE_ENCRYPTION" }, "spec": { "cronSpec": { "text": "0 2 * * *", "timeZone": "UTC", "creationWindow": "14400s" } }, "BACKUP_TYPE ": {}, "updateTime": "2024-05-22T11:13:51.835590Z" }
フル バックアップ スケジュールを作成するには、次のサンプルコードをご覧ください。
増分バックアップ スケジュールを作成するには、次のサンプルコードをご覧ください。フル バックアップ スケジュールを作成するには、次のサンプルコードをご覧ください。
増分バックアップ スケジュールを作成するには、次のサンプルコードをご覧ください。フル バックアップ スケジュールを作成するには、次のサンプルコードをご覧ください。
増分バックアップ スケジュールを作成するには、次のサンプルコードをご覧ください。フル バックアップ スケジュールを作成するには、次のサンプルコードをご覧ください。
増分バックアップ スケジュールを作成するには、次のサンプルコードをご覧ください。フル バックアップ スケジュールを作成するには、次のサンプルコードをご覧ください。
増分バックアップ スケジュールを作成するには、次のサンプルコードをご覧ください。フル バックアップ スケジュールを作成するには、次のサンプルコードをご覧ください。
増分バックアップ スケジュールを作成するには、次のサンプルコードをご覧ください。バックアップ スケジュールを取得する
Google Cloud コンソールで、Spanner の [インスタンス] ページに移動します。
データベースが含まれているインスタンスをクリックします。
データベースをクリックします。
ナビゲーション メニューで [バックアップ/復元] をクリックします。
[スケジュール] タブをクリックして、すべてのバックアップ スケジュールとその情報を表示します。
後述のコマンドデータを使用する前に、次のように置き換えます。
PROJECT_ID : プロジェクト ID。INSTANCE_ID : インスタンス ID。DATABASE_ID : データベース ID。SCHEDULE_ID : バックアップ スケジュール ID。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud spanner backup-schedules describeSCHEDULE_ID \ --project=PROJECT_ID \ --instance=INSTANCE_ID \ --database=DATABASE_ID
Windows(PowerShell)
gcloud spanner backup-schedules describeSCHEDULE_ID ` --project=PROJECT_ID ` --instance=INSTANCE_ID ` --database=DATABASE_ID
Windows(cmd.exe)
gcloud spanner backup-schedules describeSCHEDULE_ID ^ --project=PROJECT_ID ^ --instance=INSTANCE_ID ^ --database=DATABASE_ID
次のようなレスポンスが返されます。
{ encryptionConfig: encryptionType: USE_DATABASE_ENCRYPTION incrementalBackupSpec: {} name: projects/my-project/instances/my-instance/databases/my-database/backupSchedules/my-schedule retentionDuration: 2592000s spec: cronSpec: creationWindow: 14400s text: 0 */4 * * * timeZone: UTC updateTime: '2024-09-13T10:24:18.754839Z' }
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID : プロジェクト ID。INSTANCE_ID : インスタンス ID。DATABASE_ID : データベース ID。SCHEDULE_ID : バックアップ スケジュール ID。
HTTP メソッドと URL:
GET https://spanner.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules/SCHEDULE_ID
リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
次のコマンドを実行します。
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://spanner.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules/SCHEDULE_ID "
PowerShell(Windows)
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://spanner.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules/SCHEDULE_ID " | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules/SCHEDULE_ID ", "retentionDuration": "100000s", "encryptionConfig": { "encryptionType": "USE_DATABASE_ENCRYPTION" }, "spec": { "cronSpec": { "text": "0 2 * * *", "timeZone": "UTC", "creationWindow": "14400s" } }, "fullBackupSpec": {}, "updateTime": "2024-05-22T11:13:51.835590Z" }
バックアップ スケジュールを一覧表示する
Google Cloud コンソールで、Spanner の [インスタンス] ページに移動します。
データベースが含まれているインスタンスをクリックします。
データベースをクリックします。
ナビゲーション メニューで [バックアップ/復元] をクリックします。
[スケジュール] タブをクリックして、すべてのバックアップ スケジュールとその情報を表示します。
後述のコマンドデータを使用する前に、次のように置き換えます。
PROJECT_ID : プロジェクト ID。INSTANCE_ID : インスタンス ID。DATABASE_ID : データベース ID。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud spanner backup-schedules list \ --project=PROJECT_ID \ --instance=INSTANCE_ID \ --database=DATABASE_ID
Windows(PowerShell)
gcloud spanner backup-schedules list ` --project=PROJECT_ID ` --instance=INSTANCE_ID ` --database=DATABASE_ID
Windows(cmd.exe)
gcloud spanner backup-schedules list ^ --project=PROJECT_ID ^ --instance=INSTANCE_ID ^ --database=DATABASE_ID
次のようなレスポンスが返されます。
Name Backup type Cron Retention duration Encryption type my-full-schedule FULL 30 12 * * * 2592000s USE_DATABASE_ENCRYPTION my-incr-schedule INCREMENTAL 0 */4 * * * 2592000s USE_DATABASE_ENCRYPTION
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID : プロジェクト ID。INSTANCE_ID : インスタンス ID。DATABASE_ID : データベース ID。
HTTP メソッドと URL:
GET https://spanner.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules
リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
次のコマンドを実行します。
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://spanner.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules"
PowerShell(Windows)
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://spanner.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ "backupSchedules": [ { "name": "projects/PROJECT_ID/instances/INSTANCE_ID/databases/DATABASE_ID/backupSchedules/SCHEDULE_ID", "retentionDuration": "172800s", "encryptionConfig": { "encryptionType": "USE_DATABASE_ENCRYPTION" }, "spec": { "cronSpec": { "text": "0 */12 * * *", "timeZone": "UTC", "creationWindow": "14400s" } }, "fullBackupSpec": {}, "updateTime": "2024-09-09T07:21:43.946180Z" }, { "name": "projects/PROJECT_ID/instances/INSTANCE_ID/databases/DATABASE_ID/backupSchedules/SCHEDULE_ID", "retentionDuration": "2592000s", "encryptionConfig": { "encryptionType": "CUSTOMER_MANAGED_ENCRYPTION", "kmsKeyName": "projects/PROJECT_ID/locations/us-central1/keyRings/cmek-demo/cryptoKeys/test-key" }, "spec": { "cronSpec": { "text": "30 12 * * *", "timeZone": "UTC", "creationWindow": "14400s" } }, "fullBackupSpec": {}, "updateTime": "2024-09-17T18:27:53.868741Z" } ] }
バックアップ スケジュールを更新する
Google Cloud コンソールで、Spanner の [インスタンス] ページに移動します。
データベースが含まれているインスタンスをクリックします。
データベースをクリックします。
ナビゲーション メニューで [バックアップ/復元] をクリックします。
[スケジュール] タブをクリックします。
バックアップ スケジュールの [その他の操作] を選択し、[更新] をクリックします。
バックアップ スケジュールの頻度と保持時間を更新できます。フル バックアップ スケジュールの場合は、暗号化の種類を更新することもできます。
[保存] をクリックします。
後述のコマンドデータを使用する前に、次のように置き換えます。
SCHEDULE_ID : バックアップ スケジュール ID。PROJECT_ID : プロジェクト ID。-
INSTANCE_ID : バックアップ スケジュールを変更するインスタンスの ID。 -
DATABASE_ID : バックアップ スケジュールを変更するデータベースの ID。 -
RETENTION_DURATION : スケジュールによって作成されたバックアップの保持期間。 -
CRONTAB_EXPRESSION : バックアップ スケジュールの頻度を表す crontab 式。たとえば、バックアップ スケジュールの頻度を 12 時間ごとに設定する場合は、0 12 * * *
を使用します。 -
ENCRYPTION_TYPE : バックアップ スケジュールによって作成されたバックアップの暗号化タイプ。有効な値はUSE_DATABASE_ENCRYPTION
、GOOGLE_DEFAULT_ENCRYPTION
、CUSTOMER_MANAGED_ENCRYPTION
です。CUSTOMER_MANAGED_ENCRYPTION
を使用する場合は、kmsKeyName
を指定する必要があります。バックアップ タイプがincremental-backup
の場合は、暗号化タイプがGOOGLE_DEFAULT_ENCRYPTION
である必要があります。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud spanner backup-schedules updateSCHEDULE_ID \ --project=PROJECT_ID \ --instance=INSTANCE_ID \ --database=DATABASE_ID \ --retention-duration=RETENTION_DURATION \ --cron="CRONTAB_EXPRESSION " \ --encryption-type=ENCRYPTION_TYPE
Windows(PowerShell)
gcloud spanner backup-schedules updateSCHEDULE_ID ` --project=PROJECT_ID ` --instance=INSTANCE_ID ` --database=DATABASE_ID ` --retention-duration=RETENTION_DURATION ` --cron="CRONTAB_EXPRESSION " ` --encryption-type=ENCRYPTION_TYPE
Windows(cmd.exe)
gcloud spanner backup-schedules updateSCHEDULE_ID ^ --project=PROJECT_ID ^ --instance=INSTANCE_ID ^ --database=DATABASE_ID ^ --retention-duration=RETENTION_DURATION ^ --cron="CRONTAB_EXPRESSION " ^ --encryption-type=ENCRYPTION_TYPE
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID : プロジェクト ID。-
INSTANCE_ID : バックアップ スケジュールを変更するインスタンスの ID。 -
DATABASE_ID : バックアップ スケジュールを変更するデータベースの ID。 SCHEDULE_ID : バックアップ スケジュール ID。-
RETENTION_DURATION : スケジュールによって作成されたバックアップの保持期間。たとえば、保持期間を 1 日にするには、86400s
を指定します。 -
ENCRYPTION_TYPE : バックアップ スケジュールによって作成されたバックアップの暗号化タイプ。指定可能な値はUSE_DATABASE_ENCRYPTION
、GOOGLE_DEFAULT_ENCRYPTION
、CUSTOMER_MANAGED_ENCRYPTION
です。CUSTOMER_MANAGED_ENCRYPTION
を使用する場合は、kmsKeyName
を指定する必要があります。バックアップ タイプがincremental-backup
の場合は、暗号化タイプがGOOGLE_DEFAULT_ENCRYPTION
である必要があります。
HTTP メソッドと URL:
PATCH https://spanner.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules/SCHEDULE_ID ?updateMask=retention_duration,encryption_config,spec.cron_spec.text
リクエストの本文(JSON):
{ "retentionDuration": "RETENTION_DURATION ", "spec": { "cronSpec": { "text": "0 2 * * *" } "encryptionConfig": { "encryptionType": "ENCRYPTION_TYPE " }, }, }
リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://spanner.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules/SCHEDULE_ID ?updateMask=retention_duration,encryption_config,spec.cron_spec.text"
PowerShell(Windows)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://spanner.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules/SCHEDULE_ID ?updateMask=retention_duration,encryption_config,spec.cron_spec.text" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules/SCHEDULE_ID ", "retentionDuration": "86400s", "encryptionConfig": { "encryptionType": "USE_DATABASE_ENCRYPTION" }, "spec": { "cronSpec": { "text": "0 2 * * *", "timeZone": "UTC", "creationWindow": "14400s" } }, "fullBackupSpec": {}, "updateTime": "2024-05-22T11:13:51.835590Z" }
バックアップ スケジュールを削除する
Google Cloud コンソールで、Spanner の [インスタンス] ページに移動します。
データベースが含まれているインスタンスをクリックします。
データベースをクリックします。
ナビゲーション メニューで [バックアップ/復元] をクリックします。
バックアップ スケジュールの [その他の操作] を選択し、[削除] をクリックします。
バックアップ スケジュールの名前を入力します。
[確認] をクリックします。
後述のコマンドデータを使用する前に、次のように置き換えます。
SCHEDULE_ID : バックアップ スケジュール ID。PROJECT_ID : プロジェクト ID。-
INSTANCE_ID : バックアップ スケジュールを削除するインスタンスの ID。 -
DATABASE_ID : バックアップ スケジュールを削除するデータベースの ID。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud spanner backup-schedules deleteSCHEDULE_ID \ --project=PROJECT_ID \ --instance=INSTANCE_ID \ --database=DATABASE_ID
Windows(PowerShell)
gcloud spanner backup-schedules deleteSCHEDULE_ID ` --project=PROJECT_ID ` --instance=INSTANCE_ID ` --database=DATABASE_ID
Windows(cmd.exe)
gcloud spanner backup-schedules deleteSCHEDULE_ID ^ --project=PROJECT_ID ^ --instance=INSTANCE_ID ^ --database=DATABASE_ID
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID : プロジェクト ID。-
INSTANCE_ID : バックアップ スケジュールを削除するインスタンスの ID。 -
DATABASE_ID : バックアップ スケジュールを削除するデータベースの ID。 -
SCHEDULE_ID : バックアップ スケジュール ID。
HTTP メソッドと URL:
DELETE https://spanner.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules/SCHEDULE_ID
リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
次のコマンドを実行します。
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://spanner.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules/SCHEDULE_ID "
PowerShell(Windows)
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://spanner.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules/SCHEDULE_ID " | Select-Object -Expand Content
成功したことを示すステータス コード(2xx)と空のレスポンスが返されます。
IAM アクセス制御ポリシーを設定する
IAM アクセス ポリシーを設定して、バックアップ スケジュールにアクセスできるユーザーを指定できます。
後述のコマンドデータを使用する前に、次のように置き換えます。
SCHEDULE_ID : バックアップ スケジュール ID。PROJECT_ID : プロジェクト ID。INSTANCE_ID : インスタンス ID。DATABASE_ID : データベース ID。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud spanner backup-schedules set-iam-policySCHEDULE_ID \ --project=PROJECT_ID \ --instance=INSTANCE_ID \ --database=DATABASE_ID \ policy.json
Windows(PowerShell)
gcloud spanner backup-schedules set-iam-policySCHEDULE_ID ` --project=PROJECT_ID ` --instance=INSTANCE_ID ` --database=DATABASE_ID ` policy.json
Windows(cmd.exe)
gcloud spanner backup-schedules set-iam-policySCHEDULE_ID ^ --project=PROJECT_ID ^ --instance=INSTANCE_ID ^ --database=DATABASE_ID ^ policy.json
次のようなレスポンスが返されます。
Updated IAM policy for backupSchedule [SCHEDULE_ID ]. bindings: - members: - user:test@google.com role: roles/editor etag: BwYi82k-fho= version: 1
policy.json
ファイルの例を次に示します。{ "version": 1, "etag": "BwYi8ypICC0=", "bindings": [ { "role": "roles/editor", "members": [ "user:test@gmail.com" ] } ] }
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID : プロジェクト ID。INSTANCE_ID : インスタンス ID。DATABASE_ID : データベース ID。SCHEDULE_ID : バックアップ スケジュール ID。
HTTP メソッドと URL:
POST https://spanner.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules/SCHEDULE_ID :setIamPolicy?alt=json
リクエストの本文(JSON):
{ "policy": { "version": 1, "etag": "BwYi8ypICC0=", "bindings": [ { "role": "roles/editor", "members": [ "user:test@gmail.com" ] } ] } }
リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://spanner.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules/SCHEDULE_ID :setIamPolicy?alt=json"
PowerShell(Windows)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://spanner.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules/SCHEDULE_ID :setIamPolicy?alt=json" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ { "version": 1, "etag": "etag", "bindings": [ { "role": "roles/non-primitive", "members": [ "user:test@gmail.com" ] } ] } }
IAM アクセス制御ポリシーを取得する
後述のコマンドデータを使用する前に、次のように置き換えます。
SCHEDULE_ID : バックアップ スケジュール ID。PROJECT_ID : プロジェクト ID。INSTANCE_ID : インスタンス ID。DATABASE_ID : データベース ID。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud spanner backup-schedules get-iam-policySCHEDULE_ID \ --project=PROJECT_ID \ --instance=INSTANCE_ID \ --database=DATABASE_ID
Windows(PowerShell)
gcloud spanner backup-schedules get-iam-policySCHEDULE_ID ` --project=PROJECT_ID ` --instance=INSTANCE_ID ` --database=DATABASE_ID
Windows(cmd.exe)
gcloud spanner backup-schedules get-iam-policySCHEDULE_ID ^ --project=PROJECT_ID ^ --instance=INSTANCE_ID ^ --database=DATABASE_ID
次のようなレスポンスが返されます。
bindings: - members: - user:test@gmail.com role: roles/editor etag: BwYi82k-fho= version: 1
リクエストのデータを使用する前に、次のように置き換えます。
INSTANCE_ID : インスタンス ID。DATABASE_ID : データベース ID。SCHEDULE_ID : バックアップ スケジュール ID。PROJECT_ID : プロジェクト ID。
HTTP メソッドと URL:
POST https://spanner.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules/SCHEDULE_ID :getIamPolicy?alt=json
リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://spanner.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules/SCHEDULE_ID :getIamPolicy?alt=json"
PowerShell(Windows)
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://spanner.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /databases/DATABASE_ID /backupSchedules/SCHEDULE_ID :getIamPolicy?alt=json" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ { "version": 1, "etag": "BwYbyZ9pc4o=", "bindings": [ { "role": "roles/editor", "members": [ "user:test@gmail.com" ] } ] } }