É possível rotular e controlar o acesso aos trabalhos do Operações em Lote do Amazon S3 adicionando tags. As tags podem ser usadas para identificar quem é responsável por um trabalho de operações em lote. Você pode criar trabalhos com tags anexadas a eles e pode adicionar tags aos trabalhos depois que eles são criados. Para obter mais informações, consulte Controlar o acesso e rotular trabalhos usando tags.
O exemplo da AWS CLI a seguir cria um trabalho S3PutObjectCopy
do S3 Batch Operations usando tags de trabalho como rótulos para o trabalho.
-
Selecione a ação ou
OPERATION
que deseja que o trabalho de operações em lote execute e escolhaTargetResource
.read -d '' OPERATION <<EOF { "S3PutObjectCopy": { "TargetResource": "arn:aws:s3:::
amzn-s3-demo-destination-bucket
" } } EOF -
Identifique as
TAGS
que você deseja para o trabalho. Nesse caso, você aplica duas tags,department
eFiscalYear
, com os valoresMarketing
e2020
, respectivamente.read -d '' TAGS <<EOF [ { "Key": "
department
", "Value": "Marketing
" }, { "Key": "FiscalYear
", "Value": "2020
" } ] EOF -
Especifique o
MANIFEST
para o trabalho de operações em lote.read -d '' MANIFEST <<EOF { "Spec": { "Format": "
EXAMPLE_S3BatchOperations_CSV_20180820
", "Fields": [ "Bucket", "Key" ] }, "Location": { "ObjectArn": "arn:aws:s3:::amzn-s3-demo-manifest-bucket/example_manifest.csv
", "ETag": "example-5dc7a8bfb90808fc5d546218
" } } EOF -
Configure o
REPORT
para o trabalho de operações em lote.read -d '' REPORT <<EOF { "Bucket": "arn:aws:s3:::
amzn-s3-demo-completion-report-bucket
", "Format": "Example_Report_CSV_20180820
", "Enabled": true, "Prefix": "reports/copy-with-replace-metadata
", "ReportScope": "AllTasks" } EOF Execute a ação
create-job
para criar o trabalho de operações em lote com entradas definidas nas etapas anteriores.aws \ s3control create-job \ --account-id
123456789012
\ --manifest "${MANIFEST//$'\n'}" \ --operation "${OPERATION//$'\n'/}" \ --report "${REPORT//$'\n'}" \ --priority 10 \ --role-arn arn:aws:iam::123456789012
:role/batch-operations-role
\ --tags "${TAGS//$'\n'/}" \ --client-request-token "$(uuidgen)" \ --regionus-west-2
\ --description "Copy with Replace Metadata
";
O exemplo a seguir cria um trabalho do S3 Batch Operations com tags usando o AWS SDK para Java.
public String createJob(final AWSS3ControlClient awss3ControlClient) {
final String manifestObjectArn = "arn:aws:s3:::amzn-s3-demo-manifest-bucket/manifests/10_manifest
.csv";
final String manifestObjectVersionId = "example-5dc7a8bfb90808fc5d546218
";
final JobManifestLocation manifestLocation = new JobManifestLocation()
.withObjectArn(manifestObjectArn)
.withETag(manifestObjectVersionId);
final JobManifestSpec manifestSpec =
new JobManifestSpec().withFormat(JobManifestFormat.S3InventoryReport_CSV_20161130);
final JobManifest manifestToPublicApi = new JobManifest()
.withLocation(manifestLocation)
.withSpec(manifestSpec);
final String jobReportBucketArn = "arn:aws:s3:::amzn-s3-demo-completion-report-bucket
";
final String jobReportPrefix = "example-job-reports
";
final JobReport jobReport = new JobReport()
.withEnabled(true)
.withReportScope(JobReportScope.AllTasks)
.withBucket(jobReportBucketArn)
.withPrefix(jobReportPrefix)
.withFormat(JobReportFormat.Report_CSV_20180820);
final String lambdaFunctionArn = "arn:aws:lambda:us-west-2
:123456789012
:function:example-function
";
final JobOperation jobOperation = new JobOperation()
.withLambdaInvoke(new LambdaInvokeOperation().withFunctionArn(lambdaFunctionArn));
final S3Tag departmentTag = new S3Tag().withKey("department
").withValue("Marketing
");
final S3Tag fiscalYearTag = new S3Tag().withKey("FiscalYear
").withValue("2020
");
final String roleArn = "arn:aws:iam::123456789012
:role/example-batch-operations-role
";
final Boolean requiresConfirmation = true;
final int priority = 10;
final CreateJobRequest request = new CreateJobRequest()
.withAccountId("123456789012
")
.withDescription("Test lambda job
")
.withManifest(manifestToPublicApi)
.withOperation(jobOperation)
.withPriority(priority)
.withRoleArn(roleArn)
.withReport(jobReport)
.withTags(departmentTag, fiscalYearTag)
.withConfirmationRequired(requiresConfirmation);
final CreateJobResult result = awss3ControlClient.createJob(request);
return result.getJobId();
}