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à.
Aggiorna i contatti e il controllo delle versioni dei contatti
AWS Ground Station supporta l'aggiornamento dei contatti con uno stato di PASS contatto SCHEDULEDPREPASS, o. Puoi utilizzare l'UpdateContactAPI per specificare un'eccezione alle effemeridi per un contatto, inclusi i dati di tracciamento di azimuth/elevation, OEM o TLE, senza annullarlo e riprogrammarlo. Ciò è utile per le operazioni satellitari geosincrone (GEO) in cui è necessario riposizionare un'antenna su un altro satellite durante un contatto, o per Launch and Early Operations () in cui sono necessarie regolazioni del puntamento. LEOPs
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 a contatto
Quando chiami ReserveContact, AWS Ground Station crea la prima versione del contatto (versione 1) e la restituisce versionId nella risposta. Ogni chiamata successiva a UpdateContactcrea 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, utilizza l'ListContactVersionsAPI.
Aggiornamento di un contatto
Puoi chiamare UpdateContactquando un contatto si trova 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 generano AWS SDKs 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 si modifica il satellite di destinazione insieme alle impostazioni della traccia del programma, fornire l'ARN del nuovo satellite. Solo i clienti approvati per gli angoli di puntamento di azimut/elevazione 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 considerato come una richiesta di cancellazione di quel valore, non di lasciarlo invariato. Ad esempio, se si fornisce trackingOverrides ma si omettesatelliteArn, l'ARN del satellite viene cancellato. Assicurati di includere tutti i valori desiderati in ogni richiesta di aggiornamento.
È possibile cambiare il satellite bersaglio durante un contatto fornendone uno nuovo satelliteArn insieme al 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 cambia con questa API. Il nuovo satellite deve inoltre essere imbarcato sulla stazione di terra e disporre delle licenze richieste dal profilo della 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 di 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. Utilizzare DescribeContactVersionper verificare lo stato dell'aggiornamento. Alcuni AWS SDKs AWS Command Line Interface forniscono un ContactUpdated cameriere che controlla finché la versione non raggiunge lo stato ACTIVE o FAILED_TO_UPDATE.
Nota
È possibile eseguire un solo aggiornamento alla volta. Se l'ultima versione del contatto è nello 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 mostrano come utilizzare il controllo delle versioni dei contatti APIs con l' AWS SDK for Python (Boto3).
Esempio: aggiornare un contatto
L'esempio seguente aggiorna un contatto con nuove eccezioni 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 una versione di contatto
L'esempio seguente recupera i dettagli di una versione di contatto specifica, inclusi lo stato, la configurazione e le eventuali informazioni relative all'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: elenca le versioni dei contatti
L'esempio seguente elenca tutte le versioni di un contatto per visualizzare la cronologia completa delle modifiche, utilizzando l'impaginazione 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 DescribeContactVersiono ListContactVersionsper questi contatti restituisce un
ResourceNotFoundException. -
Quando si aggiornano le interruzioni di tracciamento di un contatto in corso, è previsto un breve periodo di transizione durante il quale 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. Utilizza ListContactVersionsper visualizzare la cronologia completa delle modifiche apportate a un contatto.
-
L'
UpdateContactAPI può essere richiamata solo dall'area di pianificazione del contatto.