Bagaimana cara mendapatkan info koneksi dari file koneksi .ags?

8

Saya sedang mengerjakan skrip Python untuk mengelola layanan ArcGIS Server (menerbitkan layanan baru, memperbarui layanan yang ada, menghapus layanan lama, dll.) Secara batch di berbagai lingkungan (mis. Dev, pengujian dan produksi) dan instance (2+ per lingkungan).

Untuk mempublikasikan layanan, Anda dapat menggunakan file koneksi ArcPy dan AGS, tetapi untuk melakukan apa pun di luar itu (misalnya daftar layanan yang ada, mulai / hentikan / hapus layanan), Anda perlu menggunakan AGS Admin REST API , yang menggunakan otentikasi berbasis token, dan untuk mendapatkan token Anda harus mengirimkan nama dan kata sandi pengguna.

Harus menentukan URL server, nama pengguna dan kata sandi setiap kali akan membosankan bagi pengguna, terutama jika mereka bekerja dengan lebih dari satu contoh AGS pada suatu waktu, seperti yang dilakukan skrip saya. Saya lebih suka jika mereka bisa menggunakan file koneksi AGS yang sudah ada sebelumnya, yang mereka butuhkan untuk penerbitan terlepas.

Apakah ada cara untuk mendapatkan info koneksi (mis. URL server, nama pengguna, kata sandi) dari koneksi AGS ( .ags) file secara terprogram - idealnya dengan Python? arcpy.Describemenganggap mereka file bodoh dan tidak bisa berbuat apa-apa dengan mereka.

Jika tidak ada cara untuk melakukan itu maka saya kira saya harus memerlukan langkah konfigurasi tambahan untuk menghasilkan dan menyimpan token secara lokal untuk jangka waktu yang lama karena akan terlalu rumit untuk meminta pengguna untuk kredensial untuk setiap contoh AGS setiap kali mereka menggunakan skrip.

blah238
sumber

Jawaban:

5

Singkatnya, tidak. Tidak ada cara untuk mengekstrak informasi itu dari file .ags tanpa upaya besar dan beberapa rekayasa balik serius. Esri mendesain seperti itu karena memiliki file yang berisi nama domain berkualifikasi penuh dari server serta kredensial lengkap pengguna dengan hak istimewa untuk mengakses server akan menimbulkan risiko keamanan besar.

Juga, hanya karena pengguna memiliki izin untuk menerbitkan layanan, tidak berarti mereka dapat memulai dan menghentikan layanan di Server GIS, jadi logika Anda bahwa hanya karena mereka memiliki file koneksi server (file .ags), mereka harus dapat mengakses titik akhir Administrator REST dan layanan mulai / berhenti sedikit cacat, kecuali jika saya salah menafsirkan posting Anda.

MrBubbles
sumber
1
Terima kasih - cukup banyak apa yang saya anggap sebagai kasusnya. Hanya rasa sakit saja. Tentu saja file .ags perlu dilindungi, sama seperti file .sde. Tapi setidaknya Anda benar-benar dapat menggunakan file .sde untuk tujuan yang diinginkan. File AGS tampaknya jauh kurang bermanfaat, setidaknya untuk keperluan skrip. Dan saya menyadari perbedaan antara koneksi penerbit dan administrator, kami terutama menggunakan yang terakhir.
blah238