Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Aggiornamento dei contatti e del controllo delle versioni dei contatti
AWS Ground Station supporta l'aggiornamento dei contatti con uno SCHEDULEDPREPASS, o lo stato del PASS AWS Ground Station stati dei contatti contatto. Puoi utilizzare l'UpdateContactAPI per specificare un'eccezione temporanea per un contatto azimuth/elevation, inclusi i dati di tracciamento OEM o TLE, senza annullarlo e riprogrammarlo. Ciò è utile per le operazioni satellitari geosincrone (GEO) in cui è necessario riassegnare un'antenna a un altro satellite durante un contatto, o per Launch and Early Operations (LEOps) in cui sono necessarie regolazioni del puntamento.
Ogni volta che prenoti o aggiorni un contatto, crea una nuova versione del contatto. AWS Ground Station Le versioni dei contatti forniscono una cronologia delle modifiche apportate a un contatto e consentono di tenere traccia dello stato di ogni aggiornamento.
Come funziona il controllo delle versioni dei contatti
Quando chiami ReserveContact, AWS Ground Station crea la prima versione del contatto (versione 1) e restituisce la versione versionId nella risposta. Ogni chiamata successiva a UpdateContact crea una nuova versione con un numero di versione incrementato.
L'DescribeContactAPI restituisce la versione attualmente in ACTIVE contatto, incluse le informazioni sulla versione nel version campo della risposta. L'ListContactsAPI include anche informazioni sulla versione per ogni contatto.
Per visualizzare una versione specifica di un contatto, utilizza l'DescribeContactVersionAPI. Per elencare tutte le versioni di un contatto, usa l'ListContactVersionsAPI.
Aggiornamento di un contatto
È possibile chiamare UpdateContact quando un contatto è nello stato SCHEDULED, PREPASS o PASS. L'API accetta i seguenti parametri:
-
contactID: l'identificatore del contatto da aggiornare.
-
clientToken: un token di idempotenza che garantisce che la richiesta venga elaborata una sola volta. Se riprovi una richiesta con lo stesso token client, AWS Ground Station restituisce la risposta originale senza eseguire nuovamente l'aggiornamento. Molti AWS SDK generano automaticamente un token client per te se non ne viene fornito uno.
-
trackingOverrides: la nuova configurazione di tracciamento per il contatto. Ciò include le impostazioni della traccia del programma (azimuth/elevation, TLE o effemeridi OEM).
-
SatelliteARN — L'ARN del satellite per il contatto. Quando modifichi il satellite di destinazione insieme alle impostazioni della traccia del programma, fornisci l'ARN del nuovo satellite. Solo i clienti approvati per gli angoli di azimuth/elevation puntamento possono impostare questo valore su null. Tutti gli altri clienti devono includere l'ARN satellitare del contatto.
Importante
L'UpdateContactAPI applica tutti i parametri della richiesta. Qualsiasi parametro omesso o impostato esplicitamente su null viene trattato come una richiesta per cancellare quel valore, non per lasciarlo invariato. Ad esempio, se si fornisce trackingOverrides ma si omette, l'ARN del satellite viene satelliteArn cancellato. Assicuratevi di includere tutti i valori desiderati in ogni richiesta di aggiornamento.
È possibile modificare il satellite di destinazione durante un contatto fornendone uno nuovo satelliteArn insieme a quello corrispondentetrackingOverrides. Il nuovo satellite deve essere visibile dalla stazione di terra per tutta la durata del contatto, poiché l'ora di inizio e di fine del contatto non cambiano con questa API. Il nuovo satellite deve inoltre essere imbarcato sulla stazione di terra e disporre delle licenze richieste dal profilo di missione. Il profilo di missione del contatto non può essere modificato, quindi il cambio di satellite è applicabile solo quando entrambi i satelliti utilizzano lo stesso profilo di missione.
Importante
L'UpdateContactAPI non supporta la modifica dell'ora di inizio, dell'ora di fine o del profilo di missione di un contatto. Per modificare questi valori, annulla il contatto e prenotane uno nuovo. L'UpdateContactAPI è progettata per modificare la configurazione del puntamento dell'antenna, ad esempio per passare da un satellite all'altro o aggiornare i dati sulle effemeridi.
Importante
L'UpdateContactAPI non supporta i contatti con un profilo di missione che utilizza configurazioni. Config di decodifica demodulazione downlink antenna Per modificare la configurazione di questi contatti, annulla il contatto e prenotane uno nuovo.
L'UpdateContactAPI restituisce il contactId e il nuovoversionId. L'aggiornamento viene elaborato in modo asincrono. DescribeContactVersionDa utilizzare per verificare lo stato dell'aggiornamento. Alcuni AWS SDK AWS Command Line Interface forniscono un ContactUpdated cameriere che esegue il polling finché la versione non raggiunge lo stato ACTIVE o FAILED_TO_UPDATE.
Nota
Può essere in corso un solo aggiornamento alla volta. Se l'ultima versione del contatto è in stato UPDATING, l'API restituisce unConflictException. Attendi che l'aggiornamento corrente raggiunga lo stato ACTIVE o FAILED_TO_UPDATE prima di inviare un altro aggiornamento.
Stati delle versioni dei contatti
Ogni versione del contatto ha uno dei seguenti stati:
| Stato | Description |
|---|---|
| AGGIORNAMENTO IN CORSO | La versione viene applicata al contatto. L'aggiornamento è stato inviato ed è in fase di elaborazione da AWS Ground Station. |
| ACTIVE | La versione è la configurazione attualmente attiva per il contatto. La stazione di terra utilizza le impostazioni di questa versione. |
| SOSTITUITA | La versione era attiva in precedenza ma è stata sostituita da una versione più recente. |
| FAILED_TO_UPDATE | L'aggiornamento non può essere applicato. Il contatto torna alla versione precedentemente attiva. Controlla i failureMessage campi failureCodes e per i dettagli. |
Esempi di codice
Gli esempi seguenti dimostrano come utilizzare le API di controllo delle versioni dei contatti con l' AWS SDK per Python (Boto3).
Esempio: aggiornamento di un contatto
L'esempio seguente aggiorna un contatto con nuove sostituzioni di tracciamento e attende il completamento dell'aggiornamento utilizzando il cameriere Boto3. ContactUpdated
import boto3 import uuid # Create AWS Ground Station client ground_station_client = boto3.client("groundstation") # The contact ID of an existing scheduled contact to update contact_id = "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" # Generate a unique client token for idempotency. # If you retry the same request with the same client token, # the API returns the same response without creating a duplicate version. client_token = str(uuid.uuid4()) # Update the contact to use a different TLE ephemeris for tracking. # The UpdateContact API applies all parameters in the request. # Any parameter set to null is treated as a request to clear that value, # not to leave it unchanged. Include all desired values in each request. print(f"Updating contact {contact_id}...") update_response = ground_station_client.update_contact( contactId=contact_id, clientToken=client_token, satelliteArn="arn:aws:groundstation::111122223333:satellite/a88611b0-f755-404e-b60d-57d8aEXAMPLE", trackingOverrides={ "programTrackSettings": { "tle": {"ephemerisId": "b2c3d4e5-6789-01ab-cdef-EXAMPLE22222"} } }, ) contact_id = update_response["contactId"] version_id = update_response["versionId"] print(f"Update submitted. Contact: {contact_id}, Version: {version_id}") # Wait for the update to complete using the ContactUpdated waiter. # The waiter polls DescribeContactVersion until the version reaches # ACTIVE (success) or FAILED_TO_UPDATE (failure) status. # The waiter raises WaiterError if the version reaches FAILED_TO_UPDATE # or if MaxAttempts is exceeded, so we use try/except to handle both cases. print("Waiting for update to complete...") from botocore.exceptions import WaiterError waiter = ground_station_client.get_waiter("contact_updated") try: waiter.wait( contactId=contact_id, versionId=version_id, WaiterConfig={ "Delay": 5, "MaxAttempts": 180, }, ) print(f"Contact updated successfully. Version {version_id} is now active.") except WaiterError as e: # WaiterError is raised when the version reaches FAILED_TO_UPDATE # or when MaxAttempts is exceeded. Retrieve the current version to inspect. version_response = ground_station_client.describe_contact_version( contactId=contact_id, versionId=version_id, ) version_status = version_response["version"]["status"] if version_status == "FAILED_TO_UPDATE": failure_codes = version_response["version"].get("failureCodes", []) failure_message = version_response["version"].get("failureMessage", "") print(f"Update failed. Codes: {failure_codes}, Message: {failure_message}") else: print(f"Waiter timed out. Current version status: {version_status}. Error: {e}")
Esempio: descrivi la versione di un contatto
L'esempio seguente recupera i dettagli di una versione specifica del contatto, inclusi lo stato, la configurazione e qualsiasi informazione sull'errore.
import boto3 # Create AWS Ground Station client ground_station_client = boto3.client("groundstation") contact_id = "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" version_id = 2 # Describe a specific version of a contact. # Use this API to check the status of an update or to view the # configuration that was active at a specific point in time. print(f"Describing version {version_id} of contact {contact_id}...") response = ground_station_client.describe_contact_version( contactId=contact_id, versionId=version_id, ) # Display version details version = response["version"] print(f"Version ID: {version['versionId']}") print(f"Status: {version['status']}") print(f"Created: {version.get('created', 'N/A')}") if version.get("activated"): print(f"Activated: {version['activated']}") if version.get("superseded"): print(f"Superseded: {version['superseded']}") # Display contact details for this version print(f"\nContact ID: {response['contactId']}") print(f"Contact Status: {response['contactStatus']}") print(f"Ground Station: {response['groundStation']}") print(f"Start Time: {response['startTime']}") print(f"End Time: {response['endTime']}") if response.get("satelliteArn"): print(f"Satellite ARN: {response['satelliteArn']}") if response.get("trackingOverrides"): print(f"Tracking Overrides: {response['trackingOverrides']}") # Check for failure details if the version failed to update if version["status"] == "FAILED_TO_UPDATE": failure_codes = version.get("failureCodes", []) failure_message = version.get("failureMessage", "") print(f"\nFailure Codes: {failure_codes}") print(f"Failure Message: {failure_message}")
Esempio: elenco delle versioni dei contatti
L'esempio seguente elenca tutte le versioni di un contatto per visualizzare la cronologia completa delle modifiche, utilizzando la paginazione per gestire set di risultati di grandi dimensioni.
import boto3 # Create AWS Ground Station client ground_station_client = boto3.client("groundstation") contact_id = "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" # List all versions of a contact to view the full history of changes. # Results are paginated. Use the nextToken to retrieve additional pages. print(f"Listing versions for contact {contact_id}...") paginator = ground_station_client.get_paginator("list_contact_versions") page_iterator = paginator.paginate( contactId=contact_id, PaginationConfig={ "MaxItems": 100, "PageSize": 20, }, ) for page in page_iterator: for version in page["contactVersionsList"]: version_id = version["versionId"] status = version["status"] created = version.get("created", "N/A") print(f" Version {version_id}: status={status}, created={created}") if version.get("activated"): print(f" Activated: {version['activated']}") if version.get("superseded"): print(f" Superseded: {version['superseded']}") if status == "FAILED_TO_UPDATE": failure_codes = version.get("failureCodes", []) failure_message = version.get("failureMessage", "") print(f" Failure Codes: {failure_codes}") print(f" Failure Message: {failure_message}") if status == "UPDATING": print(f" Update is currently in progress.")
Considerazioni
-
I contatti creati prima dell'introduzione della funzionalità di controllo delle versioni dei contatti non dispongono di informazioni sulla versione. La chiamata DescribeContactVersion o ListContactVersions per questi contatti restituisce un
ResourceNotFoundException. -
Quando si aggiornano le impostazioni di tracciamento di un contatto in corso, c'è un breve periodo di transizione mentre l'antenna si adatta alla nuova configurazione di puntamento. Durante questo periodo, la ricezione o la trasmissione del segnale potrebbero essere interrotte.
-
Le versioni dei contatti non possono essere eliminate. ListContactVersionsUsalo per visualizzare la cronologia completa delle modifiche apportate a un contatto.
-
L'
UpdateContactAPI può essere chiamata solo dall'area di pianificazione del contatto.