Aktualisierungsmasken verwalten

Beim Aktualisieren von Ressourcen (PATCH-Anfragen) Google Cloud verwenden APIs häufig eine Aktualisierungsmaske (com.google.protobuf.FieldMask). Dadurch weiß der Server genau , welche Felder Sie aktualisieren möchten, und verhindert so, dass andere Felder versehentlich überschrieben werden.

Wenn Sie keine Maske angeben, aktualisieren einige APIs alle Felder und setzen fehlende Felder auf die Standardwerte zurück.

FieldMask erstellen

import com.google.cloud.secretmanager.v1.Secret;
import com.google.cloud.secretmanager.v1.SecretManagerServiceClient;
import com.google.cloud.secretmanager.v1.UpdateSecretRequest;
import com.google.protobuf.FieldMask;

try (SecretManagerServiceClient client = SecretManagerServiceClient.create()) {
    // Prepare the resource with NEW values
    Secret secret = Secret.newBuilder()
        .setName("projects/my-project/secrets/my-secret")
        .putLabels("env", "production") // We only want to update this field
        .build();

    // Create the FieldMask
    // Paths MUST match the protobuf field names (snake_case)
    FieldMask updateMask = FieldMask.newBuilder()
        .addPaths("labels")
        .build();

    // Prepare the Request object
    UpdateSecretRequest request = UpdateSecretRequest.newBuilder()
        .setSecret(secret)
        .setUpdateMask(updateMask)
        .build();

    // Call the API
    client.updateSecret(request);
}