このサンプルは、格納される infoType のソース用語リストを更新して、辞書を再構築する方法を示しています。
もっと見る
このコードサンプルを含む詳細なドキュメントについては、以下をご覧ください。
コードサンプル
C#
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
using System;
using Google.Cloud.Dlp.V2;
using Google.Protobuf.WellKnownTypes;
public class UpdateStoredInfoTypes
{
public static StoredInfoType Update(
string gcsFileUri,
string storedInfoTypePath,
string outputPath)
{
// Instantiate the client.
var dlp = DlpServiceClient.Create();
// Construct the stored infotype config. Here, we will change the source from bigquery table to GCS file.
var storedConfig = new StoredInfoTypeConfig
{
LargeCustomDictionary = new LargeCustomDictionaryConfig
{
CloudStorageFileSet = new CloudStorageFileSet
{
Url = gcsFileUri
},
OutputPath = new CloudStoragePath
{
Path = outputPath
}
}
};
// Construct the request using the stored config by specifying the update mask object
// which represent the path of field to be updated.
var request = new UpdateStoredInfoTypeRequest
{
Config = storedConfig,
Name = storedInfoTypePath,
UpdateMask = new FieldMask
{
Paths =
{
"large_custom_dictionary.cloud_storage_file_set.url"
}
}
};
// Call the API.
StoredInfoType response = dlp.UpdateStoredInfoType(request);
// Inspect the result.
Console.WriteLine(response);
return response;
}
}
Go
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
import (
"context"
"fmt"
"io"
dlp "cloud.google.com/go/dlp/apiv2"
"cloud.google.com/go/dlp/apiv2/dlppb"
"google.golang.org/protobuf/types/known/fieldmaskpb"
)
// updateStoredInfoType uses the Data Loss Prevention API to update stored infoType
// detector by changing the source term list from one stored in Bigquery
// to one stored in Cloud Storage.
func updateStoredInfoType(w io.Writer, projectID, gcsUri, fileSetUrl, infoTypeId string) error {
// projectId := "your-project-id"
// gcsUri := "gs://" + "your-bucket-name" + "/path/to/your/file.txt"
// fileSetUrl := "your-cloud-storage-file-set"
// infoTypeId := "your-stored-info-type-id"
ctx := context.Background()
// Initialize a client once and reuse it to send multiple requests. Clients
// are safe to use across goroutines. When the client is no longer needed,
// call the Close method to cleanup its resources.
client, err := dlp.NewClient(ctx)
if err != nil {
return err
}
// Closing the client safely cleans up background resources.
defer client.Close()
// Set path in Cloud Storage.
cloudStoragePath := &dlppb.CloudStoragePath{
Path: gcsUri,
}
cloudStorageFileSet := &dlppb.CloudStorageFileSet{
Url: fileSetUrl,
}
// Configuration for a custom dictionary created from a data source of any size
largeCustomDictionaryConfig := &dlppb.LargeCustomDictionaryConfig{
OutputPath: cloudStoragePath,
Source: &dlppb.LargeCustomDictionaryConfig_CloudStorageFileSet{
CloudStorageFileSet: cloudStorageFileSet,
},
}
// Set configuration for stored infoTypes.
storedInfoTypeConfig := &dlppb.StoredInfoTypeConfig{
Type: &dlppb.StoredInfoTypeConfig_LargeCustomDictionary{
LargeCustomDictionary: largeCustomDictionaryConfig,
},
}
// Set mask to control which fields get updated.
fieldMask := &fieldmaskpb.FieldMask{
Paths: []string{"large_custom_dictionary.cloud_storage_file_set.url"},
}
// Construct the job creation request to be sent by the client.
req := &dlppb.UpdateStoredInfoTypeRequest{
Name: fmt.Sprint("projects/" + projectID + "/storedInfoTypes/" + infoTypeId),
Config: storedInfoTypeConfig,
UpdateMask: fieldMask,
}
// Use the client to send the API request.
resp, err := client.UpdateStoredInfoType(ctx, req)
if err != nil {
return err
}
// Print the result.
fmt.Fprintf(w, "output: %v", resp.Name)
return nil
}
Java
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
import com.google.cloud.dlp.v2.DlpServiceClient;
import com.google.privacy.dlp.v2.CloudStorageFileSet;
import com.google.privacy.dlp.v2.CloudStoragePath;
import com.google.privacy.dlp.v2.LargeCustomDictionaryConfig;
import com.google.privacy.dlp.v2.StoredInfoType;
import com.google.privacy.dlp.v2.StoredInfoTypeConfig;
import com.google.privacy.dlp.v2.StoredInfoTypeName;
import com.google.privacy.dlp.v2.UpdateStoredInfoTypeRequest;
import com.google.protobuf.FieldMask;
import java.io.IOException;
public class UpdateStoredInfoType {
public static void main(String[] args) throws IOException {
// TODO(developer): Replace these variables before running the sample.
// The Google Cloud project id to use as a parent resource.
String projectId = "your-project-id";
// The path to file in GCS bucket that holds a collection of words and phrases to be searched by
// the new infoType detector.
String filePath = "gs://" + "your-bucket-name" + "/path/to/your/file.txt";
// The path to the location in a GCS bucket to store the created dictionary.
String outputPath = "your-cloud-storage-file-set";
// The name of the stored InfoType which is to be updated.
String infoTypeId = "your-stored-info-type-id";
updateStoredInfoType(projectId, filePath, outputPath, infoTypeId);
}
// Update the stored info type rebuilding the Custom dictionary.
public static void updateStoredInfoType(
String projectId, String filePath, String outputPath, String infoTypeId) throws IOException {
// Initialize client that will be used to send requests. This client only needs to be created
// once, and can be reused for multiple requests. After completing all of your requests, call
// the "close" method on the client to safely clean up any remaining background resources.
try (DlpServiceClient dlp = DlpServiceClient.create()) {
// Set path in Cloud Storage.
CloudStoragePath cloudStoragePath = CloudStoragePath.newBuilder().setPath(outputPath).build();
CloudStorageFileSet cloudStorageFileSet =
CloudStorageFileSet.newBuilder().setUrl(filePath).build();
// Configuration for a custom dictionary created from a data source of any size
LargeCustomDictionaryConfig largeCustomDictionaryConfig =
LargeCustomDictionaryConfig.newBuilder()
.setOutputPath(cloudStoragePath)
.setCloudStorageFileSet(cloudStorageFileSet)
.build();
// Set configuration for stored infoTypes.
StoredInfoTypeConfig storedInfoTypeConfig =
StoredInfoTypeConfig.newBuilder()
.setLargeCustomDictionary(largeCustomDictionaryConfig)
.build();
// Set mask to control which fields get updated.
// Refer https://protobuf.dev/reference/protobuf/google.protobuf/#field-mask for constructing the field mask paths.
FieldMask fieldMask =
FieldMask.newBuilder()
.addPaths("large_custom_dictionary.cloud_storage_file_set.url")
.build();
// Construct the job creation request to be sent by the client.
UpdateStoredInfoTypeRequest updateStoredInfoTypeRequest =
UpdateStoredInfoTypeRequest.newBuilder()
.setName(
StoredInfoTypeName.ofProjectStoredInfoTypeName(projectId, infoTypeId).toString())
.setConfig(storedInfoTypeConfig)
.setUpdateMask(fieldMask)
.build();
// Send the job creation request and process the response.
StoredInfoType response = dlp.updateStoredInfoType(updateStoredInfoTypeRequest);
// Print the results.
System.out.println("Updated stored InfoType successfully: " + response.getName());
}
}
}
Node.js
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
// Import the required libraries
const dlp = require('@google-cloud/dlp');
// Create a DLP client
const dlpClient = new dlp.DlpServiceClient();
// The project ID to run the API call under.
// const projectId = "your-project-id";
// The identifier for the stored infoType
// const infoTypeId = 'github-usernames';
// The path to the location in a Cloud Storage bucket to store the created dictionary
// const outputPath = 'cloud-bucket-path';
// Path of file containing term list
// const cloudStorageFileSet = 'gs://[PATH_TO_GS]';
async function updateStoredInfoType() {
// Specify configuration of the large custom dictionary including cloudStorageFileSet and outputPath
const largeCustomDictionaryConfig = {
outputPath: {
path: outputPath,
},
cloudStorageFileSet: {
url: fileSetUrl,
},
};
// Construct the job creation request to be sent by the client.
const updateStoredInfoTypeRequest = {
name: `projects/${projectId}/storedInfoTypes/${infoTypeId}`,
config: {
largeCustomDictionary: largeCustomDictionaryConfig,
},
updateMask: {
paths: ['large_custom_dictionary.cloud_storage_file_set.url'],
},
};
// Send the job creation request and process the response.
const [response] = await dlpClient.updateStoredInfoType(
updateStoredInfoTypeRequest
);
// Print the results.
console.log(`InfoType updated successfully: ${JSON.stringify(response)}`);
}
await updateStoredInfoType();
PHP
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
use Google\Cloud\Dlp\V2\DlpServiceClient;
use Google\Cloud\Dlp\V2\CloudStorageFileSet;
use Google\Cloud\Dlp\V2\CloudStoragePath;
use Google\Cloud\Dlp\V2\LargeCustomDictionaryConfig;
use Google\Cloud\Dlp\V2\StoredInfoTypeConfig;
use Google\Protobuf\FieldMask;
/**
* Rebuild/Update the stored infoType.
*
* @param string $callingProjectId The Google Cloud Project ID to run the API call under.
* @param string $gcsPath The path to file in GCS bucket that holds a collection of words and phrases to be searched by the new infoType detector.
* @param string $outputgcsPath The path to the location in a Cloud Storage bucket to store the created dictionary.
* @param string $storedInfoTypeId The name of the stored InfoType which is to be updated.
*
*/
function update_stored_infotype(
string $callingProjectId,
string $gcsPath,
string $outputgcsPath,
string $storedInfoTypeId
): void {
// Instantiate a client.
$dlp = new DlpServiceClient();
// Set path in Cloud Storage.
$cloudStorageFileSet = (new CloudStorageFileSet())
->setUrl($gcsPath);
// Configuration for a custom dictionary created from a data source of any size
$largeCustomDictionaryConfig = (new LargeCustomDictionaryConfig())
->setOutputPath((new CloudStoragePath())
->setPath($outputgcsPath))
->setCloudStorageFileSet($cloudStorageFileSet);
// Set configuration for stored infoTypes.
$storedInfoTypeConfig = (new StoredInfoTypeConfig())
->setLargeCustomDictionary($largeCustomDictionaryConfig);
// Send the stored infoType creation request and process the response.
$name = "projects/$callingProjectId/locations/global/storedInfoTypes/" . $storedInfoTypeId;
// Set mask to control which fields get updated.
// Refer https://protobuf.dev/reference/protobuf/google.protobuf/#field-mask for constructing the field mask paths.
$fieldMask = (new FieldMask())
->setPaths([
'large_custom_dictionary.cloud_storage_file_set.url'
]);
// Run request
$response = $dlp->updateStoredInfoType($name, [
'config' => $storedInfoTypeConfig,
'updateMask' => $fieldMask
]);
// Print results
printf('Successfully update Stored InforType : %s' . PHP_EOL, $response->getName());
}
Python
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
import google.cloud.dlp
def update_stored_infotype(
project: str,
stored_info_type_id: str,
gcs_input_file_path: str,
output_bucket_name: str,
) -> None:
"""Uses the Data Loss Prevention API to update stored infoType
detector by changing the source term list from one stored in Bigquery
to one stored in Cloud Storage.
Args:
project: The Google Cloud project id to use as a parent resource.
stored_info_type_id: The identifier of stored infoType which is to
be updated.
gcs_input_file_path: The url in the format <bucket>/<path_to_file>
for the location of the source term list.
output_bucket_name: The name of the bucket in Google Cloud Storage
where large dictionary is stored.
"""
# Instantiate a client.
dlp = google.cloud.dlp_v2.DlpServiceClient()
# Construct the stored infoType configuration dictionary.
stored_info_type_config = {
"large_custom_dictionary": {
"output_path": {"path": f"gs://{output_bucket_name}"},
"cloud_storage_file_set": {"url": f"gs://{gcs_input_file_path}"},
}
}
# Set mask to control which fields get updated. For more details, refer
# https://protobuf.dev/reference/protobuf/google.protobuf/#field-mask
# for constructing the field mask paths.
field_mask = {"paths": ["large_custom_dictionary.cloud_storage_file_set.url"]}
# Convert the stored infoType id into a full resource id.
stored_info_type_name = (
f"projects/{project}/locations/global/storedInfoTypes/{stored_info_type_id}"
)
# Call the API.
response = dlp.update_stored_info_type(
request={
"name": stored_info_type_name,
"config": stored_info_type_config,
"update_mask": field_mask,
}
)
# Print the result
print(f"Updated stored infoType successfully: {response.name}")
次のステップ
他の Google Cloud プロダクトに関連するコードサンプルの検索およびフィルタ検索を行うには、Google Cloud のサンプルをご覧ください。