Use CreateJob com um AWS SDK ou CLI - AWS SDKExemplos de código

Há mais AWS SDK exemplos disponíveis no GitHub repositório AWS Doc SDK Examples.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Use CreateJob com um AWS SDK ou CLI

Os exemplos de código a seguir mostram como usar o CreateJob.

Exemplos de ações são trechos de código de programas maiores e devem ser executados em contexto. É possível ver essa ação no contexto no seguinte exemplo de código:

CLI
AWS CLI

Para criar um trabalho de operações em lote do Amazon S3

O create-job exemplo a seguir cria um trabalho de operações em lote do Amazon S3 para marcar objetos como. confidential` in the bucket ``employee-records

aws s3control create-job \ --account-id 123456789012 \ --operation '{"S3PutObjectTagging": { "TagSet": [{"Key":"confidential", "Value":"true"}] }}' \ --report '{"Bucket":"arn:aws:s3:::employee-records-logs","Prefix":"batch-op-create-job", "Format":"Report_CSV_20180820","Enabled":true,"ReportScope":"AllTasks"}' \ --manifest '{"Spec":{"Format":"S3BatchOperations_CSV_20180820","Fields":["Bucket","Key"]},"Location":{"ObjectArn":"arn:aws:s3:::employee-records-logs/inv-report/7a6a9be4-072c-407e-85a2-ec3e982f773e.csv","ETag":"69f52a4e9f797e987155d9c8f5880897"}}' \ --priority 42 \ --role-arn arn:aws:iam::123456789012:role/S3BatchJobRole

Saída:

{ "JobId": "93735294-df46-44d5-8638-6356f335324e" }
  • Para API obter detalhes, consulte CreateJobna Referência de AWS CLI Comandos.

Java
SDKpara Java 2.x
nota

Tem mais sobre GitHub. Encontre o exemplo completo e saiba como configurar e executar no Repositório de exemplos de código da AWS.

Crie uma tarefa assíncrona do S3.

/** * Creates an asynchronous S3 job using the AWS Java SDK. * * @param accountId the AWS account ID associated with the job * @param iamRoleArn the ARN of the IAM role to be used for the job * @param manifestLocation the location of the job manifest file in S3 * @param reportBucketName the name of the S3 bucket to store the job report * @param uuid a unique identifier for the job * @return a CompletableFuture that represents the asynchronous creation of the S3 job. * The CompletableFuture will return the job ID if the job is created successfully, * or throw an exception if there is an error. */ public CompletableFuture<String> createS3JobAsync(String accountId, String iamRoleArn, String manifestLocation, String reportBucketName, String uuid) { String[] bucketName = new String[]{""}; String[] parts = reportBucketName.split(":::"); if (parts.length > 1) { bucketName[0] = parts[1]; } else { System.out.println("The input string does not contain the expected format."); } return CompletableFuture.supplyAsync(() -> getETag(bucketName[0], "job-manifest.csv")) .thenCompose(eTag -> { ArrayList<S3Tag> tagSet = new ArrayList<>(); S3Tag s3Tag = S3Tag.builder() .key("keyOne") .value("ValueOne") .build(); S3Tag s3Tag2 = S3Tag.builder() .key("keyTwo") .value("ValueTwo") .build(); tagSet.add(s3Tag); tagSet.add(s3Tag2); S3SetObjectTaggingOperation objectTaggingOperation = S3SetObjectTaggingOperation.builder() .tagSet(tagSet) .build(); JobOperation jobOperation = JobOperation.builder() .s3PutObjectTagging(objectTaggingOperation) .build(); JobManifestLocation jobManifestLocation = JobManifestLocation.builder() .objectArn(manifestLocation) .eTag(eTag) .build(); JobManifestSpec manifestSpec = JobManifestSpec.builder() .fieldsWithStrings("Bucket", "Key") .format("S3BatchOperations_CSV_20180820") .build(); JobManifest jobManifest = JobManifest.builder() .spec(manifestSpec) .location(jobManifestLocation) .build(); JobReport jobReport = JobReport.builder() .bucket(reportBucketName) .prefix("reports") .format("Report_CSV_20180820") .enabled(true) .reportScope("AllTasks") .build(); CreateJobRequest jobRequest = CreateJobRequest.builder() .accountId(accountId) .description("Job created using the AWS Java SDK") .manifest(jobManifest) .operation(jobOperation) .report(jobReport) .priority(42) .roleArn(iamRoleArn) .clientRequestToken(uuid) .confirmationRequired(false) .build(); // Create the job asynchronously. return getAsyncClient().createJob(jobRequest) .thenApply(CreateJobResponse::jobId); }) .handle((jobId, ex) -> { if (ex != null) { Throwable cause = (ex instanceof CompletionException) ? ex.getCause() : ex; if (cause instanceof S3ControlException) { throw new CompletionException(cause); } else { throw new RuntimeException(cause); } } return jobId; }); }

Crie um trabalho de retenção de conformidade.

/** * Creates a compliance retention job in Amazon S3 Control. * <p> * A compliance retention job in Amazon S3 Control is a feature that allows you to * set a retention period for objects stored in an S3 bucket. * This feature is particularly useful for organizations that need to comply with * regulatory requirements or internal policies that mandate the retention of data for * a specific duration. * * @param s3ControlClient The S3ControlClient instance to use for the API call. * @return The job ID of the created compliance retention job. */ public static String createComplianceRetentionJob(final S3ControlClient s3ControlClient, String roleArn, String bucketName, String accountId) { final String manifestObjectArn = "arn:aws:s3:::amzn-s3-demo-manifest-bucket/compliance-objects-manifest.csv"; final String manifestObjectVersionId = "your-object-version-Id"; Instant jan2025 = Instant.parse("2025-01-01T00:00:00Z"); JobOperation jobOperation = JobOperation.builder() .s3PutObjectRetention(S3SetObjectRetentionOperation.builder() .retention(S3Retention.builder() .mode(S3ObjectLockRetentionMode.COMPLIANCE) .retainUntilDate(jan2025) .build()) .build()) .build(); JobManifestLocation manifestLocation = JobManifestLocation.builder() .objectArn(manifestObjectArn) .eTag(manifestObjectVersionId) .build(); JobManifestSpec manifestSpec = JobManifestSpec.builder() .fieldsWithStrings("Bucket", "Key") .format("S3BatchOperations_CSV_20180820") .build(); JobManifest manifestToPublicApi = JobManifest.builder() .location(manifestLocation) .spec(manifestSpec) .build(); // Report details. final String jobReportBucketArn = "arn:aws:s3:::" + bucketName; final String jobReportPrefix = "reports/compliance-objects-bops"; JobReport jobReport = JobReport.builder() .enabled(true) .reportScope(JobReportScope.ALL_TASKS) .bucket(jobReportBucketArn) .prefix(jobReportPrefix) .format(JobReportFormat.REPORT_CSV_20180820) .build(); final Boolean requiresConfirmation = true; final int priority = 10; CreateJobRequest request = CreateJobRequest.builder() .accountId(accountId) .description("Set compliance retain-until to 1 Jan 2025") .manifest(manifestToPublicApi) .operation(jobOperation) .priority(priority) .roleArn(roleArn) .report(jobReport) .confirmationRequired(requiresConfirmation) .build(); // Create the job and get the result. CreateJobResponse result = s3ControlClient.createJob(request); return result.jobId(); }

Crie um adiamento legal do emprego.

/** * Creates a compliance retention job in Amazon S3 Control. * <p> * A compliance retention job in Amazon S3 Control is a feature that allows you to * set a retention period for objects stored in an S3 bucket. * This feature is particularly useful for organizations that need to comply with * regulatory requirements or internal policies that mandate the retention of data for * a specific duration. * * @param s3ControlClient The S3ControlClient instance to use for the API call. * @return The job ID of the created compliance retention job. */ public static String createComplianceRetentionJob(final S3ControlClient s3ControlClient, String roleArn, String bucketName, String accountId) { final String manifestObjectArn = "arn:aws:s3:::amzn-s3-demo-manifest-bucket/compliance-objects-manifest.csv"; final String manifestObjectVersionId = "your-object-version-Id"; Instant jan2025 = Instant.parse("2025-01-01T00:00:00Z"); JobOperation jobOperation = JobOperation.builder() .s3PutObjectRetention(S3SetObjectRetentionOperation.builder() .retention(S3Retention.builder() .mode(S3ObjectLockRetentionMode.COMPLIANCE) .retainUntilDate(jan2025) .build()) .build()) .build(); JobManifestLocation manifestLocation = JobManifestLocation.builder() .objectArn(manifestObjectArn) .eTag(manifestObjectVersionId) .build(); JobManifestSpec manifestSpec = JobManifestSpec.builder() .fieldsWithStrings("Bucket", "Key") .format("S3BatchOperations_CSV_20180820") .build(); JobManifest manifestToPublicApi = JobManifest.builder() .location(manifestLocation) .spec(manifestSpec) .build(); // Report details. final String jobReportBucketArn = "arn:aws:s3:::" + bucketName; final String jobReportPrefix = "reports/compliance-objects-bops"; JobReport jobReport = JobReport.builder() .enabled(true) .reportScope(JobReportScope.ALL_TASKS) .bucket(jobReportBucketArn) .prefix(jobReportPrefix) .format(JobReportFormat.REPORT_CSV_20180820) .build(); final Boolean requiresConfirmation = true; final int priority = 10; CreateJobRequest request = CreateJobRequest.builder() .accountId(accountId) .description("Set compliance retain-until to 1 Jan 2025") .manifest(manifestToPublicApi) .operation(jobOperation) .priority(priority) .roleArn(roleArn) .report(jobReport) .confirmationRequired(requiresConfirmation) .build(); // Create the job and get the result. CreateJobResponse result = s3ControlClient.createJob(request); return result.jobId(); }
  • Para API obter detalhes, consulte CreateJobem AWS SDK for Java 2.x APIReferência.