D’autres exemples de kits AWS SDK sont disponibles dans le référentiel GitHub AWS Doc SDK Examples
Utilisation de getModelManifest avec un kit SDK AWS
Les exemples de code suivants illustrent comment utiliser getModelManifest.
- Java
-
- SDK pour Java 2.x
-
Note
Il y en a plus sur 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 manifestName the name of the model manifest to wait for */ public CompletableFuture<Void> waitForModelManifestActiveAsync(String manifestName) { 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 | Status: DRAFT"); final Runnable pollTask = new Runnable() { @Override public void run() { int elapsed = secondsElapsed.incrementAndGet(); // Only check status every 5 seconds if (elapsed % 5 == 0) { GetModelManifestRequest request = GetModelManifestRequest.builder() .name(manifestName) .build(); getAsyncClient().getModelManifest(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("Model manifest not found: " + cause.getMessage(), cause)); } else { result.completeExceptionally(new RuntimeException("Error while polling model manifest status: " + exception.getMessage(), exception)); } return; } ManifestStatus status = response.status(); lastStatus.set(status); if (status == ManifestStatus.ACTIVE) { logger.info("\rElapsed: {}s | Status: ACTIVE", elapsed); scheduler.shutdown(); result.complete(null); } else if (status == ManifestStatus.INVALID) { logger.info("\rElapsed: {}s | Status: INVALID", elapsed); scheduler.shutdown(); result.completeExceptionally(new RuntimeException("Model manifest became INVALID. Cannot proceed.")); } else { logger.info("\rElapsed: {}s | Status: {}", elapsed, status); } }); } else { logger.info("\rElapsed: {}s | 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, consultez getModelManifest dans la Référence des API du kit AWS SDK for Java 2.x.
-
- Kotlin
-
- SDK pour Kotlin
-
Note
Il y en a plus sur 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 manifestName the name of the model manifest to wait for */ suspend fun waitForModelManifestActive(manifestNameVal: 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 = GetModelManifestRequest { name = manifestNameVal } val response = fleetwiseClient.getModelManifest(request) lastStatus = response.status ?: ManifestStatus.Draft when (lastStatus) { ManifestStatus.Active -> { print("\r Elapsed: ${elapsedSeconds}s | Status: ACTIVE ✅\n") return } ManifestStatus.Invalid -> { print("\r Elapsed: ${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 getModelManifest
dans la Référence des API du kit AWS SDK pour Kotlin.
-
getDecoderManifest
getVehicle