typescript - ReplicationTime kann für diese Version des Replikationskonfigurationsschemas nicht verwendet werden
Ich versuche, die S3-Replikation über AWS CDK zum Laufen zu bringen. Ich benutze https://github.com/rogerchi/cdk-s3-bucketreplication/blob/main/src/index.ts als Ausgangspunkt, und es erstellt zwar eine Replikationsregel. Allerdings gibt es einige Probleme, wenn ich versuche, sie auf den speziellen Fall einzustellen, den ich einrichten möchte.
Beim Hinzufügen von RTC (Replikationszeitsteuerung)
sourceBucket.replicationConfiguration = {
role: replicationRole.roleArn,
rules: [
{
destination: {
storageClass: ReplicationDestinationStorageClass.STANDARD_IA,
bucket: destinationBucket.bucketArn,
metrics: {
status: "Enabled",
eventThreshold: {
minutes: 15,
},
},
replicationTime: {
status: "Enabled",
time: {
minutes: 15,
},
},
},
status: ReplicationRuleStatus.ENABLED,
},
],
};
Ich erhalte den folgenden Fehler....
ReplicationTime cannot be used for this version of the replication configuration schema.
Also, ich möchte keinen Präfix verwenden, möchte aber, dass der Regelbereich auf „Diese Regel gilt für alle Objekte im Bucket“ festgelegt ist. Wie in der folgenden Konsoleneinstellung. Der obige Ansatz scheint eine Konfiguration zu erstellen, die einen Präfix „haben sollte“. Das heißt, beim Betrachten der erstellten Regel scheint standardmäßig „Begrenzen Sie den Umfang dieser Regel mit einem oder mehreren Filtern“ ausgewählt zu sein.
Jeder Rat wäre willkommen.
Antwort #1
In Terraform v1.3.2 mit aws v4.22.0 ist die Syntax, die für mich funktioniert hat, die folgende:
filter {
and {
tags = {}
}
}
was es Ihnen ermöglicht, RTC, DeleteMarker und mehr zu konfigurieren.
Antwort #2
Ich bin auf dasselbe Problem mit Terraform gestoßen und musste Folgendes hinzufügen:
filter {
tags = {}
}
Ich habe den Hinweis von hier bekommen: Gibt es eine Möglichkeit, ReplicationConfiguration für die AWS S3 Replikationsverwaltung mit der s3.putbucketreplication API zu aktivieren? Dies verweist auf https://docs.aws.amazon.com/AmazonS3/latest/userguide/replication-add-config.html#replication-config-optional-filter, was (nicht sehr klar) darauf hinweist, dass Sie die API V2 verwenden müssen, damit die Replikation funktioniert:
Replication configuration XML V2 includes the Filter element for rules.
Da Sie alle Objekte möchten (wie ich), gibt es auch:
If you specify a rule with an empty filter tag your rule will apply to all objects in your bucket.
