シークレット メタデータを更新します。
このコードサンプルが含まれるドキュメント ページ
コードサンプル
C#
Secret Manager 用のクライアント ライブラリをインストールして使用する方法については、Secret Manager クライアント ライブラリをご覧ください。
using Google.Protobuf.WellKnownTypes;
using Google.Cloud.SecretManager.V1;
public class UpdateSecretSample
{
public Secret UpdateSecret(string projectId = "my-project", string secretId = "my-secret")
{
// Create the client.
SecretManagerServiceClient client = SecretManagerServiceClient.Create();
// Build the secret with updated fields.
Secret secret = new Secret
{
SecretName = new SecretName(projectId, secretId),
};
secret.Labels["secretmanager"] = "rocks";
// Build the field mask.
FieldMask fieldMask = FieldMask.FromString("labels");
// Call the API.
Secret updatedSecret = client.UpdateSecret(secret, fieldMask);
return updatedSecret;
}
}
Go
Secret Manager 用のクライアント ライブラリをインストールして使用する方法については、Secret Manager クライアント ライブラリをご覧ください。
import (
"context"
"fmt"
"io"
secretmanager "cloud.google.com/go/secretmanager/apiv1"
secretmanagerpb "google.golang.org/genproto/googleapis/cloud/secretmanager/v1"
"google.golang.org/genproto/protobuf/field_mask"
)
// updateSecret updates the metadata about an existing secret.
func updateSecret(w io.Writer, name string) error {
// name := "projects/my-project/secrets/my-secret"
// Create the client.
ctx := context.Background()
client, err := secretmanager.NewClient(ctx)
if err != nil {
return fmt.Errorf("failed to create secretmanager client: %v", err)
}
// Build the request.
req := &secretmanagerpb.UpdateSecretRequest{
Secret: &secretmanagerpb.Secret{
Name: name,
Labels: map[string]string{
"secretmanager": "rocks",
},
},
UpdateMask: &field_mask.FieldMask{
Paths: []string{"labels"},
},
}
// Call the API.
result, err := client.UpdateSecret(ctx, req)
if err != nil {
return fmt.Errorf("failed to update secret: %v", err)
}
fmt.Fprintf(w, "Updated secret: %s\n", result.Name)
return nil
}
Java
Secret Manager 用のクライアント ライブラリをインストールして使用する方法については、Secret Manager クライアント ライブラリをご覧ください。
import com.google.cloud.secretmanager.v1.Secret;
import com.google.cloud.secretmanager.v1.SecretManagerServiceClient;
import com.google.cloud.secretmanager.v1.SecretName;
import com.google.protobuf.FieldMask;
import com.google.protobuf.util.FieldMaskUtil;
import java.io.IOException;
public class UpdateSecret {
public void updateSecret() throws IOException {
// TODO(developer): Replace these variables before running the sample.
String projectId = "your-project-id";
String secretId = "your-secret-id";
updateSecret(projectId, secretId);
}
// Update an existing secret.
public void updateSecret(String projectId, String secretId) 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 (SecretManagerServiceClient client = SecretManagerServiceClient.create()) {
// Build the name.
SecretName secretName = SecretName.of(projectId, secretId);
// Build the updated secret.
Secret secret =
Secret.newBuilder()
.setName(secretName.toString())
.putLabels("secretmanager", "rocks")
.build();
// Build the field mask.
FieldMask fieldMask = FieldMaskUtil.fromString("labels");
// Create the secret.
Secret updatedSecret = client.updateSecret(secret, fieldMask);
System.out.printf("Updated secret %s\n", updatedSecret.getName());
}
}
}
Node.js
Secret Manager 用のクライアント ライブラリをインストールして使用する方法については、Secret Manager クライアント ライブラリをご覧ください。
/**
* TODO(developer): Uncomment these variables before running the sample.
*/
// const name = 'projects/my-project/secrets/my-secret';
// Imports the Secret Manager library
const {SecretManagerServiceClient} = require('@google-cloud/secret-manager');
// Instantiates a client
const client = new SecretManagerServiceClient();
async function updateSecret() {
const [secret] = await client.updateSecret({
secret: {
name: name,
labels: {
secretmanager: 'rocks',
},
},
updateMask: {
paths: ['labels'],
},
});
console.info(`Updated secret ${secret.name}`);
}
updateSecret();
PHP
Secret Manager 用のクライアント ライブラリをインストールして使用する方法については、Secret Manager クライアント ライブラリをご覧ください。
// Import the Secret Manager client library.
use Google\Cloud\SecretManager\V1\Secret;
use Google\Cloud\SecretManager\V1\SecretManagerServiceClient;
use Google\Protobuf\FieldMask;
/** Uncomment and populate these variables in your code */
// $projectId = 'YOUR_GOOGLE_CLOUD_PROJECT' (e.g. 'my-project');
// $secretId = 'YOUR_SECRET_ID' (e.g. 'my-secret');
// Create the Secret Manager client.
$client = new SecretManagerServiceClient();
// Build the resource name of the secret.
$name = $client->secretName($projectId, $secretId);
// Update the secret.
$secret = (new Secret())
->setName($name)
->setLabels(['secretmanager' => 'rocks']);
$updateMask = (new FieldMask())
->setPaths(['labels']);
$response = $client->updateSecret($secret, $updateMask);
// Print the upated secret.
printf('Updated secret: %s', $response->getName());
Python
Secret Manager 用のクライアント ライブラリをインストールして使用する方法については、Secret Manager クライアント ライブラリをご覧ください。
def update_secret(project_id, secret_id):
"""
Update the metadata about an existing secret.
"""
# Import the Secret Manager client library.
from google.cloud import secretmanager
# Create the Secret Manager client.
client = secretmanager.SecretManagerServiceClient()
# Build the resource name of the secret.
name = client.secret_path(project_id, secret_id)
# Update the secret.
secret = {"name": name, "labels": {"secretmanager": "rocks"}}
update_mask = {"paths": ["labels"]}
response = client.update_secret(
request={"secret": secret, "update_mask": update_mask}
)
# Print the new secret name.
print("Updated secret: {}".format(response.name))
Ruby
Secret Manager 用のクライアント ライブラリをインストールして使用する方法については、Secret Manager クライアント ライブラリをご覧ください。
# project_id = "YOUR-GOOGLE-CLOUD-PROJECT" # (e.g. "my-project")
# secret_id = "YOUR-SECRET-ID" # (e.g. "my-secret")
# Require the Secret Manager client library.
require "google/cloud/secret_manager"
# Create a Secret Manager client.
client = Google::Cloud::SecretManager.secret_manager_service
# Build the resource name of the secret.
name = client.secret_path project: project_id, secret: secret_id
# Create the secret.
secret = client.update_secret(
secret: {
name: name,
labels: {
"secretmanager": "rocks"
}
},
update_mask: {
paths: ["labels"]
}
)
# Print the updated secret name.
puts "Updated secret: #{secret.name}"