Mengakses OSS menghasilkan banyak log akses. Anda dapat menggunakan fitur penyimpanan log untuk menyimpan log ini sebagai file log di bucket yang ditentukan. File log dibuat setiap jam berdasarkan konvensi penamaan tetap.
Peringatan
Kode contoh dalam topik ini menggunakan ID Wilayah China (Hangzhou)
cn-hangzhousebagai contoh. Secara default, titik akhir publik digunakan. Jika Anda ingin mengakses OSS dari layanan Alibaba Cloud lainnya di wilayah yang sama, Anda harus menggunakan titik akhir internal. Untuk informasi lebih lanjut tentang pemetaan antara Wilayah OSS dan titik akhir, lihat Wilayah dan Titik Akhir OSS.Untuk mengaktifkan penyimpanan log, Anda memerlukan izin
oss:PutBucketLogging. Untuk melihat konfigurasi penyimpanan log, Anda memerlukan izinoss:GetBucketLogging. Untuk menonaktifkan penyimpanan log, Anda memerlukan izinoss:DeleteBucketLogging. Untuk informasi lebih lanjut, lihat Berikan Izin Kustom kepada Pengguna RAM.
Definisi metode
Aktifkan penyimpanan log
put_bucket_logging(request: PutBucketLoggingRequest, **kwargs) → PutBucketLoggingResultLihat konfigurasi penyimpanan log
get_bucket_logging(request: GetBucketLoggingRequest, **kwargs) → GetBucketLoggingResultNonaktifkan penyimpanan log
delete_bucket_logging(request: DeleteBucketLoggingRequest, **kwargs) → DeleteBucketLoggingResultParameter permintaan
Parameter | Tipe | Deskripsi |
request | PutBucketLoggingRequest | Parameter permintaan. Untuk informasi lebih lanjut, lihat PutBucketLoggingRequest |
GetBucketLoggingRequest | Parameter permintaan. Untuk informasi lebih lanjut, lihat GetBucketLoggingRequest | |
DeleteBucketLoggingRequest | Parameter permintaan. Untuk informasi lebih lanjut, lihat DeleteBucketLoggingRequest |
Nilai kembali
Tipe | Deskripsi |
PutBucketLoggingResult | Nilai kembali. Untuk informasi lebih lanjut, lihat PutBucketLoggingResult |
GetBucketLoggingResult | Nilai kembali. Untuk informasi lebih lanjut, lihat GetBucketLoggingResult |
DeleteBucketLoggingResult | Nilai kembali. Untuk informasi lebih lanjut, lihat DeleteBucketLoggingResult |
Untuk definisi lengkap mengaktifkan penyimpanan log, lihat put_bucket_logging.
Untuk definisi lengkap melihat konfigurasi penyimpanan log, lihat get_bucket_logging.
Untuk definisi lengkap menonaktifkan penyimpanan log, lihat delete_bucket_logging.
Contoh
Aktifkan penyimpanan log
Kode contoh berikut menunjukkan cara mengaktifkan penyimpanan log.
import argparse
import alibabacloud_oss_v2 as oss
# Buat parser argumen baris perintah dan jelaskan tujuan skrip: atur logging akses untuk bucket.
parser = argparse.ArgumentParser(description="contoh put bucket logging")
# Definisikan argumen baris perintah, termasuk wilayah yang diperlukan, nama bucket sumber, titik akhir, nama bucket tujuan, dan awalan objek log opsional.
parser.add_argument('--region', help='Wilayah tempat bucket berada.', required=True)
parser.add_argument('--bucket', help='Nama bucket sumber.', required=True)
parser.add_argument('--endpoint', help='Nama domain yang dapat digunakan layanan lain untuk mengakses OSS')
parser.add_argument('--target_bucket', help='Bucket yang menyimpan log akses', required=True)
parser.add_argument('--target_prefix', help='Awalan objek log. Parameter ini bisa dikosongkan.', default='')
def main():
# Parsing argumen baris perintah untuk mendapatkan nilai input pengguna.
args = parser.parse_args()
# Muat informasi kredensial akses dari variabel lingkungan untuk verifikasi identitas.
credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
# Buat objek konfigurasi menggunakan konfigurasi default SDK dan atur penyedia autentikasi.
cfg = oss.config.load_default()
cfg.credentials_provider = credentials_provider
# Atur properti wilayah objek konfigurasi berdasarkan argumen baris perintah yang diberikan oleh pengguna.
cfg.region = args.region
# Jika titik akhir kustom diberikan, perbarui properti titik akhir dalam objek konfigurasi.
if args.endpoint is not None:
cfg.endpoint = args.endpoint
# Gunakan konfigurasi sebelumnya untuk menginisialisasi klien OSS untuk berinteraksi dengan OSS.
client = oss.Client(cfg)
# Kirim permintaan untuk mengonfigurasi logging akses untuk bucket yang ditentukan.
result = client.put_bucket_logging(oss.PutBucketLoggingRequest(
bucket=args.bucket, # Nama bucket sumber.
bucket_logging_status=oss.BucketLoggingStatus(
logging_enabled=oss.LoggingEnabled(
target_bucket=args.target_bucket, # Nama bucket tujuan yang menyimpan log akses.
target_prefix=args.target_prefix, # Awalan objek log. Parameter ini bisa berupa string kosong.
),
),
))
# Cetak kode status dan ID permintaan hasil operasi untuk mengonfirmasi status permintaan.
print(f'kode status: {result.status_code},'
f' ID permintaan: {result.request_id},'
)
# Saat skrip ini dieksekusi langsung, panggil fungsi utama untuk memulai pemrosesan logika.
if __name__ == "__main__":
main() # Titik masuk skrip. Alur program dimulai dari sini.Lihat konfigurasi penyimpanan log
Kode contoh berikut menunjukkan cara melihat konfigurasi penyimpanan log.
import argparse
import alibabacloud_oss_v2 as oss
# Buat parser argumen baris perintah dan jelaskan tujuan skrip: dapatkan konfigurasi logging akses bucket.
parser = argparse.ArgumentParser(description="contoh get bucket logging")
# Definisikan argumen baris perintah, termasuk wilayah yang diperlukan, nama bucket, dan titik akhir.
parser.add_argument('--region', help='Wilayah tempat bucket berada.', required=True)
parser.add_argument('--bucket', help='Nama bucket.', required=True)
parser.add_argument('--endpoint', help='Nama domain yang dapat digunakan layanan lain untuk mengakses OSS')
def main():
# Parsing argumen baris perintah untuk mendapatkan nilai input pengguna.
args = parser.parse_args()
# Muat informasi kredensial akses dari variabel lingkungan untuk verifikasi identitas.
credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
# Buat objek konfigurasi menggunakan konfigurasi default SDK dan atur penyedia autentikasi.
cfg = oss.config.load_default()
cfg.credentials_provider = credentials_provider
# Atur properti wilayah objek konfigurasi berdasarkan argumen baris perintah yang diberikan oleh pengguna.
cfg.region = args.region
# Jika titik akhir kustom diberikan, perbarui properti titik akhir dalam objek konfigurasi.
if args.endpoint is not None:
cfg.endpoint = args.endpoint
# Gunakan konfigurasi sebelumnya untuk menginisialisasi klien OSS untuk berinteraksi dengan OSS.
client = oss.Client(cfg)
# Kirim permintaan untuk mendapatkan detail konfigurasi logging akses untuk bucket yang ditentukan.
result = client.get_bucket_logging(oss.GetBucketLoggingRequest(
bucket=args.bucket, # Nama bucket.
))
# Cetak kode status dan ID permintaan hasil operasi untuk mengonfirmasi status permintaan.
print(f'kode status: {result.status_code},'
f' ID permintaan: {result.request_id},'
f' bucket tujuan: {result.bucket_logging_status.logging_enabled.target_bucket if result.bucket_logging_status and result.bucket_logging_status.logging_enabled else "Tidak disetel"},' # Nama bucket tujuan yang menyimpan log akses. Jika parameter ini tidak disetel, "Tidak disetel" akan ditampilkan.
f' awalan tujuan: {result.bucket_logging_status.logging_enabled.target_prefix if result.bucket_logging_status and result.bucket_logging_status.logging_enabled else "Tidak disetel"},' # Awalan objek log. Jika parameter ini tidak disetel, "Tidak disetel" akan ditampilkan.
)
# Saat skrip ini dieksekusi langsung, panggil fungsi utama untuk memulai pemrosesan logika.
if __name__ == "__main__":
main() # Titik masuk skrip. Alur program dimulai dari sini.Nonaktifkan penyimpanan log
Kode contoh berikut menunjukkan cara menonaktifkan penyimpanan log.
import argparse
import alibabacloud_oss_v2 as oss
# Buat parser argumen baris perintah dan jelaskan tujuan skrip: hapus konfigurasi logging akses bucket.
parser = argparse.ArgumentParser(description="contoh delete bucket logging")
# Definisikan argumen baris perintah, termasuk wilayah yang diperlukan, nama bucket, dan titik akhir.
parser.add_argument('--region', help='Wilayah tempat bucket berada.', required=True)
parser.add_argument('--bucket', help='Nama bucket.', required=True)
parser.add_argument('--endpoint', help='Nama domain yang dapat digunakan layanan lain untuk mengakses OSS')
def main():
# Parsing argumen baris perintah untuk mendapatkan nilai input pengguna.
args = parser.parse_args()
# Muat informasi kredensial akses dari variabel lingkungan untuk verifikasi identitas.
credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
# Buat objek konfigurasi menggunakan konfigurasi default SDK dan atur penyedia autentikasi.
cfg = oss.config.load_default()
cfg.credentials_provider = credentials_provider
# Atur properti wilayah objek konfigurasi berdasarkan argumen baris perintah yang diberikan oleh pengguna.
cfg.region = args.region
# Jika titik akhir kustom diberikan, perbarui properti titik akhir dalam objek konfigurasi.
if args.endpoint is not None:
cfg.endpoint = args.endpoint
# Gunakan konfigurasi sebelumnya untuk menginisialisasi klien OSS untuk berinteraksi dengan OSS.
client = oss.Client(cfg)
# Kirim permintaan untuk menghapus konfigurasi logging akses bucket yang ditentukan.
result = client.delete_bucket_logging(oss.DeleteBucketLoggingRequest(
bucket=args.bucket, # Nama bucket.
))
# Cetak kode status dan ID permintaan hasil operasi untuk mengonfirmasi status permintaan.
print(f'kode status: {result.status_code},'
f' ID permintaan: {result.request_id},'
)
# Saat skrip ini dieksekusi langsung, panggil fungsi utama untuk memulai pemrosesan logika.
if __name__ == "__main__":
main() # Titik masuk skrip. Alur program dimulai dari sini.Konfigurasikan bidang log yang ditentukan pengguna
Anda dapat memanggil operasi PutUserDefinedLogFieldsConfig untuk menyesuaikan bidang user_defined_log_fields dalam log waktu nyata bucket. Anda dapat mencatat header permintaan atau parameter kueri tertentu dalam bidang ini untuk analisis permintaan selanjutnya.
import argparse
import alibabacloud_oss_v2 as oss # Impor SDK Alibaba Cloud OSS.
# Buat parser argumen baris perintah.
parser = argparse.ArgumentParser(description="contoh put user defined log fields config")
# Definisikan argumen baris perintah.
parser.add_argument('--region', help='Wilayah tempat bucket berada.', required=True)
parser.add_argument('--bucket', help='Nama bucket.', required=True)
parser.add_argument('--endpoint', help='Nama domain yang dapat digunakan layanan lain untuk mengakses OSS')
def main():
# Parsing argumen baris perintah.
args = parser.parse_args()
# Gunakan variabel lingkungan untuk memuat kredensial akses (ID AccessKey dan Rahasia AccessKey).
credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
# Muat konfigurasi default dan atur penyedia kredensial, wilayah, dan titik akhir.
cfg = oss.config.load_default()
cfg.credentials_provider = credentials_provider
cfg.region = args.region
if args.endpoint is not None:
cfg.endpoint = args.endpoint
# Inisialisasi klien OSS.
client = oss.Client(cfg)
# Konstruksi objek permintaan PutUserDefinedLogFieldsConfig.
result = client.put_user_defined_log_fields_config(
oss.PutUserDefinedLogFieldsConfigRequest(
bucket=args.bucket, # Tentukan nama bucket tujuan.
user_defined_log_fields_configuration=oss.UserDefinedLogFieldsConfiguration(
header_set=oss.LoggingHeaderSet(
headers=['header1', 'header2'], # Header HTTP yang ingin Anda catat dalam log kustom.
),
param_set=oss.LoggingParamSet(
parameters=['parameter1', 'parameter2'], # Parameter URL yang ingin Anda catat dalam log kustom.
),
),
)
)
# Cetak kode status dan ID permintaan dalam hasil permintaan untuk debugging atau konfirmasi apakah operasi berhasil.
print(f'kode status: {result.status_code},'
f' ID permintaan: {result.request_id}')
if __name__ == "__main__":
main()
Kueri bidang log yang ditentukan pengguna
Anda dapat memanggil operasi GetUserDefinedLogFieldsConfig untuk mendapatkan konfigurasi kustom bidang user_defined_log_fields dalam log waktu nyata bucket.
import argparse
import alibabacloud_oss_v2 as oss # Impor SDK Alibaba Cloud OSS.
# Buat parser argumen baris perintah.
parser = argparse.ArgumentParser(description="contoh get user defined log fields config")
# Definisikan argumen baris perintah.
parser.add_argument('--region', help='Wilayah tempat bucket berada.', required=True)
parser.add_argument('--bucket', help='Nama bucket.', required=True)
parser.add_argument('--endpoint', help='Nama domain yang dapat digunakan layanan lain untuk mengakses OSS')
def main():
# Parsing argumen baris perintah.
args = parser.parse_args()
# Gunakan variabel lingkungan untuk memuat kredensial akses (ID AccessKey dan Rahasia AccessKey).
credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
# Muat konfigurasi default dan atur penyedia kredensial, wilayah, dan titik akhir.
cfg = oss.config.load_default()
cfg.credentials_provider = credentials_provider
cfg.region = args.region
if args.endpoint is not None:
cfg.endpoint = args.endpoint
# Inisialisasi klien OSS.
client = oss.Client(cfg)
# Konstruksi objek permintaan GetUserDefinedLogFieldsConfig.
result = client.get_user_defined_log_fields_config(
oss.GetUserDefinedLogFieldsConfigRequest(
bucket=args.bucket, # Tentukan nama bucket tujuan.
),
)
# Cetak kode status, ID permintaan, dan konfigurasi bidang log kustom dalam hasil permintaan.
print(f'kode status: {result.status_code},'
f' ID permintaan: {result.request_id},'
f' set header: {result.user_defined_log_fields_configuration.header_set},'
f' set param: {result.user_defined_log_fields_configuration.param_set},'
)
if __name__ == "__main__":
main()
Hapus bidang log yang ditentukan pengguna
Anda dapat memanggil operasi DeleteUserDefinedLogFieldsConfig untuk menghapus konfigurasi kustom bidang user_defined_log_fields dalam log waktu nyata bucket.
import argparse
import alibabacloud_oss_v2 as oss # Impor modul SDK Alibaba Cloud OSS.
# Buat parser argumen baris perintah.
parser = argparse.ArgumentParser(description="contoh delete user defined log fields config")
# Definisikan argumen baris perintah.
parser.add_argument('--region', help='Wilayah tempat bucket berada.', required=True)
parser.add_argument('--bucket', help='Nama bucket.', required=True)
parser.add_argument('--endpoint', help='Nama domain yang dapat digunakan layanan lain untuk mengakses OSS')
def main():
# Parsing argumen baris perintah.
args = parser.parse_args()
# Gunakan variabel lingkungan untuk memuat kredensial akses (ID AccessKey dan Rahasia AccessKey).
credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
# Muat konfigurasi default dan atur penyedia kredensial, wilayah, dan titik akhir.
cfg = oss.config.load_default()
cfg.credentials_provider = credentials_provider
cfg.region = args.region
if args.endpoint is not None:
cfg.endpoint = args.endpoint
# Inisialisasi instance klien OSS.
client = oss.Client(cfg)
# Konstruksi objek permintaan DeleteUserDefinedLogFieldsConfig.
result = client.delete_user_defined_log_fields_config(
oss.DeleteUserDefinedLogFieldsConfigRequest(
bucket=args.bucket, # Tentukan nama bucket tujuan.
),
)
# Cetak kode status dan ID permintaan dalam hasil permintaan.
print(f'kode status: {result.status_code},'
f' ID permintaan: {result.request_id}'
)
if __name__ == "__main__":
main()