Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Perbarui kontak dan versi kontak
AWS Ground Station mendukung pembaruan kontak dengan status SCHEDULEDPREPASS,, atau PASS kontak. Anda dapat menggunakan UpdateContact API untuk menentukan penggantian ephemeris untuk kontak — termasuk azimuth/elevation, OEM, atau data pelacakan TLE — tanpa membatalkan dan menjadwalkan ulang. Ini berguna untuk operasi satelit geosinkron (GEO) di mana Anda perlu mengatur ulang antena ke satelit yang berbeda selama kontak, atau untuk Launch and Early Operations (LEOP) di mana penyesuaian penunjukan diperlukan.
Setiap kali Anda memesan atau memperbarui kontak, AWS Ground Station membuat versi kontak baru. Versi kontak menyediakan riwayat perubahan yang dilakukan pada kontak dan memungkinkan Anda melacak status setiap pembaruan.
Cara kerja pembuatan versi kontak
Saat Anda menelep AWS Ground Station on ReserveContact, membuat versi pertama dari kontak (versi 1) dan mengembalikan versionId dalam respons. Setiap panggilan berikutnya untuk UpdateContact membuat versi baru dengan nomor versi bertambah.
DescribeContactAPI mengembalikan versi ACTIVE kontak saat ini, termasuk informasi versi di version bidang respons. ListContactsAPI juga menyertakan informasi versi untuk setiap kontak.
Untuk melihat versi kontak tertentu, gunakan DescribeContactVersion API. Untuk mencantumkan semua versi kontak, gunakan ListContactVersions API.
Memperbarui kontak
Anda dapat menelepon UpdateContact saat kontak berada dalam status SCHEDULED, PREPASS, atau PASS. API menerima parameter berikut:
-
ContactI d — Pengidentifikasi kontak yang akan diperbarui.
-
ClientToken — Token idempotensi yang memastikan permintaan diproses hanya sekali. Jika Anda mencoba lagi permintaan dengan token klien yang sama, AWS Ground Station mengembalikan respons asli tanpa melakukan pembaruan lagi. Banyak AWS SDK secara otomatis menghasilkan token klien untuk Anda jika tidak disediakan.
-
TrackingOverrides — Konfigurasi pelacakan baru untuk kontak. Ini termasuk pengaturan trek program (azimuth/elevation, TLE, atau ephemeris OEM).
-
Satellite Learn — ARN satelit untuk kontak. Saat mengubah satelit target bersama dengan pengaturan trek program, berikan ARN satelit baru. Hanya pelanggan yang disetujui untuk azimuth/elevation menunjuk sudut yang dapat mengatur nilai ini ke null. Semua pelanggan lain harus menyertakan satelit ARN dari kontak.
penting
UpdateContactAPI menerapkan semua parameter dalam permintaan. Setiap parameter yang dihilangkan atau disetel secara eksplisit ke null diperlakukan sebagai permintaan untuk menghapus nilai itu, bukan membiarkannya tidak berubah. Misalnya, jika Anda memberikan trackingOverrides tetapi menghilangkansatelliteArn, satelit ARN dihapus. Pastikan untuk menyertakan semua nilai yang diinginkan dalam setiap permintaan pembaruan.
Anda dapat mengubah satelit target selama kontak dengan menyediakan yang baru satelliteArn bersama dengan yang sesuaitrackingOverrides. Satelit baru harus terlihat dari stasiun darat selama kontak, karena waktu mulai dan akhir kontak tidak berubah dengan API ini. Satelit baru juga harus masuk ke stasiun darat dan memiliki lisensi yang disyaratkan oleh profil misi. Profil misi kontak tidak dapat diubah, jadi penggantian satelit hanya berlaku ketika kedua satelit menggunakan profil misi yang sama.
penting
UpdateContactAPI tidak mendukung perubahan waktu mulai, waktu akhir, atau profil misi kontak. Untuk mengubah nilai-nilai ini, batalkan kontak dan pesan yang baru. UpdateContactAPI dirancang untuk mengatur ulang konfigurasi penunjuk antena, seperti beralih antar satelit atau memperbarui data ephemeris.
penting
UpdateContactAPI tidak mendukung kontak yang memiliki profil misi yang menggunakan Antena Downlink Demod Decode Config konfigurasi. Untuk mengubah konfigurasi kontak ini, batalkan kontak dan pesan yang baru.
UpdateContactAPI mengembalikan contactId dan yang baruversionId. Pembaruan diproses secara asinkron. Gunakan DescribeContactVersion untuk memeriksa status pembaruan. Beberapa AWS SDK dan AWS Command Line Interface menyediakan ContactUpdated pelayan yang melakukan polling hingga versi mencapai status AKTIF atau FAILED_TO_UPDATE.
catatan
Hanya satu pembaruan yang dapat berlangsung pada satu waktu. Jika versi kontak terbaru dalam status UPDATE, API mengembalikan aConflictException. Tunggu pembaruan saat ini mencapai status AKTIF atau FAILED_TO_UPDATE sebelum mengirimkan pembaruan lain.
Status versi kontak
Setiap versi kontak memiliki salah satu status berikut:
| Status | Deskripsi |
|---|---|
| UPDATING | Versi sedang diterapkan ke kontak. Pembaruan telah dikirimkan dan sedang diproses oleh AWS Ground Station. |
| AKTIF | Versi adalah konfigurasi yang saat ini aktif untuk kontak. Stasiun darat menggunakan pengaturan versi ini. |
| DIGANTIKAN | Versi sebelumnya aktif tetapi telah digantikan oleh versi yang lebih baru. |
| GAGAL_UNTUK MEMPERBARUINYA | Pembaruan tidak dapat diterapkan. Kontak kembali ke versi aktif sebelumnya. Periksa failureMessage bidang failureCodes dan untuk detailnya. |
Contoh kode
Contoh berikut menunjukkan cara menggunakan API versi kontak dengan AWS SDK untuk Python (Boto3).
Contoh: Memperbarui kontak
Contoh berikut memperbarui kontak dengan penggantian pelacakan baru dan menunggu pembaruan selesai menggunakan pelayan Boto ContactUpdated 3.
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}")
Contoh: Menjelaskan versi kontak
Contoh berikut mengambil rincian versi kontak tertentu, termasuk status, konfigurasi, dan informasi kegagalan apa pun.
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}")
Contoh: Daftar versi kontak
Contoh berikut mencantumkan semua versi kontak untuk melihat riwayat lengkap perubahan, menggunakan pagination untuk menangani kumpulan hasil yang besar.
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.")
Pertimbangan-pertimbangan
-
Kontak yang dibuat sebelum fitur pembuatan versi kontak diperkenalkan tidak memiliki informasi versi. Menelep DescribeContactVersion on atau ListContactVersions untuk kontak ini mengembalikan a
ResourceNotFoundException. -
Saat Anda memperbarui penggantian pelacakan kontak yang sedang berlangsung, ada periode transisi singkat sementara antena menyesuaikan dengan konfigurasi penunjuk baru. Selama waktu ini, penerimaan sinyal atau transmisi dapat terganggu.
-
Versi kontak tidak dapat dihapus. Gunakan ListContactVersions untuk melihat riwayat lengkap perubahan yang dilakukan pada kontak.
-
UpdateContactAPI hanya dapat dipanggil dari wilayah penjadwalan kontak.