Cloud SQL for SQL Server
Cloud SQL for SQL Server コネクタを使用すると、行を SQL Server データベースに、挿入、読み取り、更新、削除できます。
サポート対象のバージョン
SQL Server のバージョン: 2008、2012、2014、2016、2017、2019、2022
準備
Cloud SQL for SQL Server コネクタを使用する前に、次の作業を行います。
- Google Cloud プロジェクトで次の操作を行います。
- ネットワーク接続が設定されていることを確認します。ネットワーク パターンの詳細については、Network Connectivity をご覧ください。
- コネクタを構成するユーザーに roles/connectors.admin IAM ロールを付与します。
- コネクタに使用するサービス アカウントに、次の IAM ロールを付与します。
roles/secretmanager.viewerroles/secretmanager.secretAccessorroles/cloudsql.editor
サービス アカウントは特別なタイプの Google アカウントで、Google API のデータにアクセスするのに認証を受ける必要がある人間以外のユーザーを表します。サービス アカウントがない場合は、サービス アカウントを作成する必要があります。コネクタとサービス アカウントは同じプロジェクトに属している必要があります。詳細については、サービス アカウントを作成するをご覧ください。
- 次のサービスを有効にします。
secretmanager.googleapis.com(Secret Manager API)connectors.googleapis.com(Connectors API)
サービスを有効にする方法については、サービスを有効にするをご覧ください。
以前にプロジェクトでこうしたサービスを有効にしていない場合は、コネクタを構成するときにそれを有効にすることを求められます。
sqladmin.googleapis.com(Cloud SQL Admin API) を有効にします。
- Google Cloud で Cloud SQL for SQL Server インスタンスを作成する方法については、Google Cloud でインスタンスを作成するをご覧ください。
- SOCKS5 プロキシを使用した PSC 接続については、SOCKS5 プロキシを使用した PSC 接続をご覧ください。
コネクタを構成する
接続はデータソースに特有です。つまり、多数のデータソースがある場合は、データソースごとに別々の接続を作成する必要があります。接続を作成する手順は次のとおりです。
- Cloud コンソールで、[Integration Connectors] > [接続] ページに移動し、Google Cloud プロジェクトを選択または作成します。
- [+ 新規作成] をクリックして [接続の作成] ページを開きます。
- [ロケーション] セクションで、接続のロケーションを選択します。
- リージョン: プルダウン リストからロケーションを選択します
サポートされているすべてのリージョンの一覧については、ロケーションをご覧ください。
- [NEXT] をクリックします。
- リージョン: プルダウン リストからロケーションを選択します
- [接続の詳細] セクションで、次の操作を行います。
- コネクタ: 使用可能なコネクタのプルダウン リストから、[Cloud SQL for SQL Server] を選択します。
- コネクタのバージョン: 使用可能なバージョンのプルダウン リストからコネクタのバージョンを選択します。
- [接続名] フィールドに、接続インスタンスの名前を入力します。
接続名は次の条件を満たす必要があります。
- 接続名には英字、数字、ハイフンを使用できます。
- 文字は小文字のみを使用できます。
- 接続名の先頭には英字を設定し、末尾には英字または数字を設定する必要があります。
- 接続名は 49 文字以内で指定してください。
- 必要に応じて、接続インスタンスの [説明] を入力します。
- 必要に応じて、Cloud Logging を有効にして、ログレベルを選択します。デフォルトのログレベルは
Errorに設定されています。 - サービス アカウント: 必要なロールを持つサービス アカウントを選択します。
- 必要に応じて、接続ノードの設定を構成します。
- ノードの最小数: 接続ノードの最小数を入力します。
- ノードの最大数: 接続ノードの最大数を入力します。
ノードは、トランザクションを処理する接続の単位(またはレプリカ)です。1 つの接続でより多くのトランザクションを処理するには、より多くのノードが必要になります。逆に、より少ないトランザクションを処理するには、より少ないノードが必要になります。ノードがコネクタの料金に与える影響については、接続ノードの料金をご覧ください。値を入力しない場合は、デフォルトで最小ノード数は 2 に設定され(可用性を高めるため)、最大ノード数は 50 に設定されます。
- プロジェクト ID: CloudSQL インスタンスが存在する Google Cloud プロジェクトの ID。
- データベース リージョン: CloudSQL インスタンスが存在するリージョンの名前。
- インスタンス ID: 接続先の CloudSQL インスタンスの ID。
- データベース名: 接続先の SQL Server データベースの名前。
- 必要に応じて、[+ ラベルを追加] をクリックして Key-Value ペアの形式でラベルを接続に追加します。
- [NEXT] をクリックします。
- [宛先] セクションに、接続するリモートホスト(バックエンド システム)の詳細を入力します。
- 宛先の種類: 宛先の種類を選択します。
- 宛先のホスト名または IP アドレスを指定するには、[ホストアドレス] を選択し、[ホスト 1] フィールドにアドレスを入力します。
- プライベート接続を確立するには、[エンドポイント アタッチメント] を選択し、[エンドポイント アタッチメント] リストから必要なアタッチメントを選択します。
セキュリティをさらに強化してバックエンドシステムへのパブリック接続を確立する場合は、接続用の静的アウトバウンド IP アドレスの構成を検討してから、特定の静的 IP アドレスのみを許可リストに登録するようファイアウォール ルールを構成します。
他の宛先を入力するには、[+ 宛先を追加] をクリックします。
- [NEXT] をクリックします。
- 宛先の種類: 宛先の種類を選択します。
-
[認証] セクションで、認証の詳細を入力します。
- [認証タイプ] を選択し、関連する詳細を入力します。
SQL Server 接続の Cloud SQL でサポートされる認証タイプは次のとおりです。
- ユーザー名とパスワードを指定する
- [NEXT] をクリックします。
これらの認証タイプを構成する方法については、認証を構成するをご覧ください。
- [認証タイプ] を選択し、関連する詳細を入力します。
- Review: 接続と認証の詳細を確認します。
- [作成] をクリックします。
認証を構成する
使用する認証に基づいて詳細を入力します。
- ユーザー名とパスワード
- Username: 接続に使用する SQL Server のユーザー名。
- パスワード: SQL Server のユーザー名に関連付けられたパスワードを含む Secret Manager の Secret。
接続構成のサンプル
基本認証接続タイプ
| フィールド名 | 詳細 |
|---|---|
| ロケーション | us-central1 |
| コネクタ | CloudSQL SQL Server |
| コネクタのバージョン | 1 |
| 接続名 | cloudsql-server-private |
| Cloud Logging を有効にする | ○ |
| サービス アカウント | SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com |
| プロジェクト ID | connectors-prod-test |
| Database Region | us-central1 |
| インスタンス ID | google-cloud-bcone-sql-instance1 |
| データベース名 | sqlcloudprivate_DB |
| ノードの最小数 | 2 |
| ノードの最大数 | 2 |
| 宛先の種類 | ホストアドレス |
| ホスト | HOST |
| ポート | ポート |
| ユーザー名 | ユーザー名 |
| パスワード | パスワード |
| シークレットのバージョン | 1 |
システムの上限
Cloud SQL コネクタは、ノードごとに 1 秒あたり最大 30 件のトランザクションを処理でき、この上限を超えるトランザクションをスロットルします。 デフォルトでは、Integration Connectors は、接続に 2 つのノードを割り当てます(可用性を高めるため)。
Integration Connectors に適用される上限の詳細については、上限をご覧ください。
インテグレーションで Cloud SQL for SQL Server 接続を使用する
接続を作成すると、Apigee Integration と Application Integration の両方で使用できるようになります。この接続は、コネクタタスクを介して統合で使用できます。
- Apigee Integration で Connectors タスクを作成して使用する方法については、Connectors タスクをご覧ください。
- Application Integration で Connectors タスクを作成して使用する方法については、Connectors タスクをご覧ください。
また、MySQL 接続を作成し、連携内でこの接続を使用して読み取り / 書き込みオペレーションを行う方法を説明している MySQL データベースで CRUD オペレーションを実行するのチュートリアルもご覧ください。
サポートされるデータタイプ
このコネクタでサポートされているデータ型は次のとおりです。
- BIGINT
- BINARY
- BIT
- BOOLEAN
- CHAR
- DATE
- DECIMAL
- DOUBLE
- FLOAT
- INTEGER
- LONGN VARCHAR
- LONG VARCHAR
- NCHAR
- NUMERIC
- NVARCHAR
- REAL
- SMALL INT
- TIME
- TIMESTAMP
- TINY INT
- VARBINARY
- VARCHAR
操作
このセクションでは、このコネクタで使用可能なアクションについて説明します。
Employee_Procedure アクション
このアクションにより、従業員のデータが取得されます。
Employee_Procedure アクションの入力パラメータ
| パラメータ名 | データ型 | 必須 | 説明 |
|---|---|---|---|
| ID | Int | 正しい | 従業員の ID。 |
Employee_Procedure アクションの構成方法の例については、アクションの例をご覧ください。
アクションの例
このセクションでは、このコネクタで使用可能なアクションの例を示します。
例 - 従業員のデータを取得する
- [
Configure connector task] ダイアログで、[Actions] をクリックします。 - [
Employee_Procedure] アクションを選択してから、[完了] をクリックします。 - [コネクタ] タスクの [タスク入力] セクションで、
connectorInputPayloadをクリックし、Default Valueフィールドに次のような値を入力します。{ "ID": 3 }
アクションが成功すると、コネクタタスクの connectorOutputPayload レスポンス パラメータの値は次のようになります。
[{
"ID": 3,
"Name": "Charlie",
"City": "Paris",
"SALARY": 6500.0,
"Department": "IT"
}]
エンティティ オペレーションの例
このセクションでは、このコネクタで使用可能なエンティティ オペレーションの例を示します。
例 - すべての人物を一覧表示する
- [
Configure connector task] ダイアログで、[Entities] をクリックします。 EntityからPersonsを選択します。- [
List] オペレーションを選択し、[完了] をクリックします。 - [コネクタ] タスクの [タスク入力] セクションで、フィルタリングのニーズに合わせて filterClause を設定できます。
filterClause の値を囲むには、単一引用符(')を使用する必要があります。filterClause を使用すると、列に基づいてレコードをフィルタできます。
例 - 人物の詳細を取得する
- [
Configure connector task] ダイアログで、[Entities] をクリックします。 EntityからPersonsを選択します。- [
Get] オペレーションを選択し、[完了] をクリックします。 - [コネクタ] タスクの [タスク入力] セクションで [entityId] をクリックし、[デフォルト値] フィールドに
1を入力します。この ID は、取得するレコードを指定します。
例 - 人物を削除する
- [
Configure connector task] ダイアログで、[Entities] をクリックします。 EntityからPersonsを選択します。- [
Delete] オペレーションを選択し、[完了] をクリックします。 - [コネクタ] タスクの [タスク入力] セクションで [entityId] をクリックし、[デフォルト値] フィールドに
9を入力します。この ID は、削除するレコードを指定します。
例 - 人物を作成する
- [
Configure connector task] ダイアログで、[Entities] をクリックします。 EntityからPersonsを選択します。- [
Create] オペレーションを選択してから、[完了] をクリックします。 - [コネクタ] タスクの [タスク入力] セクションで、
connectorInputPayloadをクリックし、Default Valueフィールドに次のような値を入力します。{ "LastName": "Charlie", "FirstName": "Cruz", "Address": "123 Main Street", "City": "Paris" }統合が成功すると、コネクタタスクの
connectorOutputPayloadレスポンス パラメータの値は次のようになります。{ "PersonID": 100.0, "LastName": "Charlie", "FirstName": "Cruz", "Address": "123 Main Street", "City": "Paris" }
例 - 従業員の詳細を作成する
- [
Configure connector task] ダイアログで、[Entities] をクリックします。 EntityからSQL_Performance_EmployeeDetailsを選択します。- [
Create] オペレーションを選択してから、[完了] をクリックします。 - [コネクタ] タスクの [タスク入力] セクションで、
connectorInputPayloadをクリックし、Default Valueフィールドに次のような値を入力します。{ "ID": 9.0, "FirstName": "Alex", "LastName": "Ariel", "MyDate": "2021-10-22", "MyTime": "13:54:19", "MySmallDateTime": "2021-10-22 13:54:00.0", "MyDateTime": "2021-10-22 13:54:19.057", "MyDateTime2": "2021-10-22 13:54:19.055", "MyDateTimeOffset": "2021-10-22 13:54:19.055", "MyDecimalColumn": 123.0, "MyNumericColumn": 12345.12, "salary": 4000.0, "Location": "Paris", "City": "Paris", "Designation": "Consultant", "Position": "Junior", "Experience": 5.0, "Emp_Father_Name": "Taylor", "Emp_Spouse": "Yuri", "Age": 29.0, "Celsius": 35.0, "Isregistered": "AA==", "Data": "{\"name\": \"Raj\",\"skills\": [\"SSIS\", \"SSRS\", \"JS\"],\"Age\": 30}", "Emp_Status": "Active", "Emp_Department": "IT", "Emp_Zip": 121212.0, "Sex": "Male", "Manager": "Dana", "ManagerId": 10.0, "Manager_Location": "Paris", "HR_Name": "Sasha", "Emp_Technology": "SQL", "Company_Name": "Altostrat", "Company_Location": "Paris", "Emp_Degree": "BE", "Emp_10TH": "Y", "Emp_12TH": "Y", "Emp_10Th_Marks": 70.0, "Emp_12TH_Marks": 80.0, "Emp_Degree_Marks": 90.0, "work": "WFH", "Emp_Language": "English", "Emp_System": "Laptop", "Daily_Hrs": 9.0, "Week_Days": 5.0, "Weekly_Off": 2.0, "Client_Name": "Google", "Client_Location": "Lisbon", "Team_Size": 15.0, "Reports_TO": "Manager" }統合が成功すると、コネクタタスクの
connectorOutputPayloadレスポンス パラメータの値は次のようになります。{ "ID": 9.0, "FirstName": "Alex", "LastName": "Ariel", "City": "Paris", "Salary": 4000.0 }
例 - 従業員を作成する
- [
Configure connector task] ダイアログで、[Entities] をクリックします。 EntityからEmployeeを選択します。- [
Create] オペレーションを選択してから、[完了] をクリックします。 - [コネクタ] タスクの [タスク入力] セクションで、
connectorInputPayloadをクリックし、Default Valueフィールドに次のような値を入力します。{ "NAME": "Dana", "AGE": 30, "City": "Lisbon", "SALARY": 10000.0 }統合が成功すると、コネクタタスクの
connectorOutputPayloadレスポンス パラメータの値は次のようになります。{ "ID": 88.0, "NAME": "Dana", "AGE": 30, "City": "Lisbon", "SALARY": 10000.0 }
例 - ユーザーの詳細を更新する
- [
Configure connector task] ダイアログで、[Entities] をクリックします。 EntityからPersonsを選択します。- [
Update] オペレーションを選択してから、[完了] をクリックします。 - [コネクタ] タスクの [タスク入力] セクションで、
connectorInputPayloadをクリックし、Default Valueフィールドに次のような値を入力します。{ "LastName": "Charlie", "FirstName": "Cruz", "Address": "8 Rue du Nom Fictif", "City": "Paris" }[コネクタ] タスクの [タスク入力] セクションで [entityId] をクリックし、[デフォルト値] フィールドに
10 を入力します。この ID は、更新するレコードを指定します。[entityId] を指定する代わりに、[filterClause] を '10' に設定することもできます。
統合が成功すると、コネクタタスクの connectorOutputPayload レスポンス パラメータの値は次のようになります。
{
"LastName": "Charlie",
"FirstName": "Cruz",
"Address": "8 Rue du Nom Fictif",
"City": "Paris"
}
例 - 従業員の詳細を更新する
- [
Configure connector task] ダイアログで、[Entities] をクリックします。 EntityからSQL_Performance_EmployeeDetailsを選択します。- [
Update] オペレーションを選択してから、[完了] をクリックします。 - [コネクタ] タスクの [タスク入力] セクションで、
connectorInputPayloadをクリックし、Default Valueフィールドに次のような値を入力します。{ "Age": 30 }[コネクタ] タスクの [タスク入力] セクションで [entityId] をクリックし、[デフォルト値] フィールドに
5 を入力します。この ID は、更新するレコードを指定します。[entityId] を指定する代わりに、[filterClause] を '5' に設定することもできます。
統合が成功すると、コネクタタスクの connectorOutputPayload レスポンス パラメータの値は次のようになります。
{
"Age": 30
}
例 - 従業員を更新する
- [
Configure connector task] ダイアログで、[Entities] をクリックします。 EntityからEmployeeを選択します。- [
Update] オペレーションを選択してから、[完了] をクリックします。 - [コネクタ] タスクの [タスク入力] セクションで、
connectorInputPayloadをクリックし、Default Valueフィールドに次のような値を入力します。{ "AGE": 41, "City": "Paris", "SALARY": 10000.0 } - [コネクタ] タスクの [タスク入力] セクションで [entityId] をクリックし、[デフォルト値] フィールドに
2を入力します。この ID は、更新するレコードを指定します。[entityId] を指定する代わりに、[filterClause] を
'2'に設定することもできます。統合が成功すると、コネクタタスクの
connectorOutputPayloadレスポンス パラメータの値は次のようになります。{ "AGE": 41, "City": "Paris", "SALARY": 10000.0 }
Terraform を使用して接続を作成する
Terraform リソースを使用して、新しい接続を作成できます。
Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。
接続作成用の Terraform テンプレートのサンプルを表示するには、サンプル テンプレートをご覧ください。
Terraform を使用してこの接続を作成する場合は、Terraform 構成ファイルで次の変数を設定する必要があります。
| パラメータ名 | データ型 | 必須 | 説明 |
|---|---|---|---|
| project_id | STRING | True | Cloud SQL インスタンスを含むプロジェクトのプロジェクト ID。 例: myproject |
| database_region | STRING | True | インスタンスのクラウド リージョン(例: us-central1)。 |
| instance_id | STRING | True | データベース インスタンス ID。プロジェクト ID は含みません。例: myinstance |
| database_name | STRING | True | インスタンス内のデータベースの名前(例: mydatabase)。 |
Google Cloud コミュニティの助けを借りる
Google Cloud コミュニティの Cloud フォーラムで質問を投稿したり、このコネクタについてディスカッションしたりできます。次のステップ
- 接続を一時停止して再開する方法を確認する。
- コネクタの使用状況をモニタリングする方法を確認する。
- コネクタログを表示する方法を確認する。