D'autres exemples de AWS SDK sont disponibles dans le référentiel AWS Doc SDK Examples
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Utilisation getDecoderManifest
avec un AWS SDK
Les exemples de code suivants illustrent comment utiliser getDecoderManifest
.
- Java
-
- SDK pour Java 2.x
-
Note
Il y en a plus à ce sujet GitHub. Trouvez l’exemple complet et découvrez comment le configurer et l’exécuter dans le référentiel d’exemples de code AWS
. /** * Waits for the decoder manifest to become active. * * @param decoderName the name of the decoder to wait for * @return a {@link CompletableFuture} that completes when the decoder manifest becomes active, or exceptionally if an error occurs or the manifest becomes invalid */ public CompletableFuture<Void> waitForDecoderManifestActiveAsync(String decoderName) { CompletableFuture<Void> result = new CompletableFuture<>(); ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor(); AtomicInteger secondsElapsed = new AtomicInteger(0); AtomicReference<ManifestStatus> lastStatus = new AtomicReference<>(ManifestStatus.DRAFT); logger.info(" Elapsed: 0s | Decoder Status: DRAFT"); final Runnable pollTask = new Runnable() { @Override public void run() { int elapsed = secondsElapsed.incrementAndGet(); // Check status every 5 seconds if (elapsed % 5 == 0) { GetDecoderManifestRequest request = GetDecoderManifestRequest.builder() .name(decoderName) .build(); getAsyncClient().getDecoderManifest(request) .whenComplete((response, exception) -> { if (exception != null) { Throwable cause = exception instanceof CompletionException ? exception.getCause() : exception; scheduler.shutdown(); if (cause instanceof ResourceNotFoundException) { result.completeExceptionally(new RuntimeException("Decoder manifest not found: " + cause.getMessage(), cause)); } else { result.completeExceptionally(new RuntimeException("Error while polling decoder manifest status: " + exception.getMessage(), exception)); } return; } ManifestStatus status = response.status(); lastStatus.set(status); if (status == ManifestStatus.ACTIVE) { logger.info("\r Elapsed: {}s | Decoder Status: ACTIVE", elapsed); scheduler.shutdown(); result.complete(null); } else if (status == ManifestStatus.INVALID) { logger.info("\r Elapsed: {}s | Decoder Status: INVALID", elapsed); scheduler.shutdown(); result.completeExceptionally(new RuntimeException("Decoder manifest became INVALID. Cannot proceed.")); } else { logger.info("\r⏱ Elapsed: {}s | Decoder Status: {}", elapsed, status); } }); } else { logger.info("\r Elapsed: {}s | Decoder Status: {}", elapsed, lastStatus.get()); } } }; // Start the task with an initial delay of 1 second, and repeat every second scheduler.scheduleAtFixedRate(pollTask, 1, 1, TimeUnit.SECONDS); return result; }
-
Pour plus de détails sur l'API, reportez-vous getDecoderManifestà la section Référence des AWS SDK for Java 2.x API.
-
- Kotlin
-
- SDK pour Kotlin
-
Note
Il y en a plus à ce sujet GitHub. Trouvez l’exemple complet et découvrez comment le configurer et l’exécuter dans le référentiel d’exemples de code AWS
. /** * Waits for the specified model manifest to become active. * * @param decNameVal the name of the model manifest to wait for */ suspend fun waitForDecoderManifestActive(decNameVal: String) { var elapsedSeconds = 0 var lastStatus: ManifestStatus = ManifestStatus.Draft print("⏳ Elapsed: 0s | Status: DRAFT") IotFleetWiseClient.fromEnvironment { region = "us-east-1" }.use { fleetwiseClient -> while (true) { delay(1000) elapsedSeconds++ if (elapsedSeconds % 5 == 0) { val request = GetDecoderManifestRequest { name = decNameVal } val response = fleetwiseClient.getDecoderManifest(request) lastStatus = response.status ?: ManifestStatus.Draft when (lastStatus) { ManifestStatus.Active -> { print("\rElapsed: ${elapsedSeconds}s | Status: ACTIVE ✅\n") return } ManifestStatus.Invalid -> { print("\rElapsed: ${elapsedSeconds}s | Status: INVALID ❌\n") throw RuntimeException("Model manifest became INVALID. Cannot proceed.") } else -> { print("\r Elapsed: ${elapsedSeconds}s | Status: $lastStatus") } } } else { print("\r Elapsed: ${elapsedSeconds}s | Status: $lastStatus") } } } }
-
Pour plus de détails sur l'API, consultez getDecoderManifest
la section AWS SDK pour la référence de l'API Kotlin.
-