Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Actualice los contactos y el control de versiones de los contactos
AWS Ground Station admite la actualización de contactos con un SCHEDULEDPREPASS, o estado de PASS contacto. Puedes usar la UpdateContactAPI para especificar la anulación de las efemérides de un contacto (incluidos los datos de seguimiento de acimut o elevación, OEM o TLE) sin tener que cancelarlos ni volver a programarlos. Esto resulta útil para las operaciones de satélites geosíncronos (GEO), en las que es necesario reasignar una antena a un satélite diferente durante un contacto, o para las operaciones de lanzamiento y las primeras operaciones (), en las que es necesario ajustar la orientación. LEOPs
Cada vez que reservas o actualizas un contacto, AWS Ground Station crea una nueva versión de contacto. Las versiones de contacto proporcionan un historial de los cambios realizados en un contacto y te permiten realizar un seguimiento del estado de cada actualización.
Cómo funciona el control de versiones de contactos
Cuando llamas ReserveContact, AWS Ground Station crea la primera versión del contacto (versión 1) y devuelve versionId la respuesta. Cada llamada posterior UpdateContactcrea una nueva versión con un número de versión incrementado.
La DescribeContactAPI devuelve la versión de ACTIVE contacto actual, incluida la información de la versión en el version campo de la respuesta. La ListContactsAPI también incluye información sobre la versión de cada contacto.
Para ver una versión específica de un contacto, usa la DescribeContactVersionAPI. Para ver todas las versiones de un contacto, usa la ListContactVersionsAPI.
Actualizar un contacto
Puedes llamar UpdateContactcuando un contacto esté en el estado PROGRAMADO, PREPASS o PASS. La API acepta los siguientes parámetros:
-
ContactiD: el identificador del contacto que se va a actualizar.
-
ClientToken: un token de idempotencia que garantiza que la solicitud se procese solo una vez. Si reintentas una solicitud con el mismo token de cliente, AWS Ground Station devuelve la respuesta original sin volver a realizar la actualización. Muchas generan AWS SDKs automáticamente un token de cliente si no se proporciona ninguno.
-
TrackingOverrides: la nueva configuración de seguimiento del contacto. Esto incluye los ajustes de seguimiento del programa (acimut/elevación, TLE o efemérides OEM).
-
SatelliteARN: el ARN del satélite del contacto. Al cambiar el satélite objetivo junto con la configuración de seguimiento del programa, proporcione el ARN del nuevo satélite. Solo los clientes aprobados para ángulos de apuntamiento de acimut y elevación pueden establecer este valor en nulo. Todos los demás clientes deben incluir el ARN satelital del contacto.
importante
La UpdateContact API aplica todos los parámetros de la solicitud. Cualquier parámetro que se omita o se establezca explícitamente en nulo se trata como una solicitud para borrar ese valor, no para dejarlo sin cambios. Por ejemplo, si lo proporciona trackingOverrides pero lo omitesatelliteArn, se borra el ARN del satélite. Asegúrese de incluir todos los valores deseados en cada solicitud de actualización.
Puede cambiar el satélite objetivo durante un contacto proporcionando uno nuevo satelliteArn junto con el correspondientetrackingOverrides. El nuevo satélite debe estar visible desde la estación terrestre mientras dure el contacto, ya que la hora de inicio y finalización del contacto no cambia con esta API. El nuevo satélite también debe estar a bordo de la estación terrestre y tener la licencia requerida por el perfil de la misión. El perfil de misión del contacto no se puede cambiar, por lo que el cambio de satélite solo es aplicable cuando ambos satélites utilizan el mismo perfil de misión.
importante
La UpdateContact API no permite cambiar la hora de inicio, la hora de finalización o el perfil de misión de un contacto. Para cambiar estos valores, cancela el contacto y reserva uno nuevo. La UpdateContact API está diseñada para reorganizar la configuración de señalización de la antena, por ejemplo, al cambiar de un satélite a otro o actualizar los datos de las efemérides.
importante
La UpdateContact API no admite contactos que tengan un perfil de misión que utilice configuraciones. Configuración de descodificación y desmodulación de enlace de bajada de antena Para cambiar la configuración de estos contactos, cancela el contacto y reserva uno nuevo.
La UpdateContact API devuelve el contactId y el nuevoversionId. La actualización se procesa de forma asíncrona. Se utiliza DescribeContactVersionpara comprobar el estado de la actualización. Algunas incluyen AWS SDKs un ContactUpdated camarero que sondea hasta que la AWS Command Line Interface versión alcance el estado ACTIVE o FAILED_TO_UPDATE.
nota
Solo puede haber una actualización en curso a la vez. Si la última versión del contacto está en estado DE ACTUALIZACIÓN, la API devuelve unConflictException. Espera a que la actualización actual alcance el estado ACTIVE o FAILED_TO_UPDATE antes de enviar otra actualización.
Estados de las versiones de contacto
Cada versión de contacto tiene uno de los siguientes estados:
| Status | Description (Descripción) |
|---|---|
| ACTUALIZANDO | La versión se está aplicando al contacto. La actualización se ha enviado y está siendo procesada por AWS Ground Station. |
| ACTIVE | La versión es la configuración actualmente activa para el contacto. La estación terrestre utiliza los ajustes de esta versión. |
| SUPERSEDED | La versión estaba activa anteriormente, pero se ha sustituido por una versión más reciente. |
| NO SE PUDO ACTUALIZAR | No se pudo aplicar la actualización. El contacto vuelve a la versión previamente activa. Compruebe los failureMessage campos failureCodes y para obtener más información. |
Ejemplos de código
Los siguientes ejemplos muestran cómo utilizar el control de versiones por contacto APIs con el AWS SDK para Python (Boto3).
Ejemplo: actualizar un contacto
En el siguiente ejemplo, se actualiza un contacto con nuevas anulaciones de seguimiento y se espera a que se complete la actualización con el camarero ContactUpdated Boto3.
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}")
Ejemplo: describe la versión de un contacto
En el siguiente ejemplo, se recuperan los detalles de una versión de contacto específica, incluidos su estado, configuración y cualquier información sobre errores.
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}")
Ejemplo: Listar las versiones de los contactos
En el siguiente ejemplo, se enumeran todas las versiones de un contacto para ver el historial completo de cambios y se utiliza la paginación para gestionar conjuntos de resultados de gran tamaño.
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.")
Consideraciones
-
Los contactos creados antes de que se introdujera la función de control de versiones de contactos no tienen información de versión. Al llamar DescribeContactVersiono ListContactVersionspara estos contactos, se devuelve un
ResourceNotFoundException. -
Al actualizar las anulaciones de seguimiento de un contacto en curso, hay un breve período de transición hasta que la antena se ajusta a la nueva configuración de señalización. Durante este tiempo, es posible que se interrumpa la recepción o transmisión de la señal.
-
Las versiones de los contactos no se pueden eliminar. Se utiliza ListContactVersionspara ver el historial completo de los cambios realizados en un contacto.
-
Solo se puede llamar a la
UpdateContactAPI desde la región de programación del contacto.