All Products
Search
Document Center

Function Compute:Konfigurasi pemasangan OSS

Last Updated:Apr 24, 2026

Object Storage Service (OSS) adalah layanan penyimpanan cloud yang masif, aman, hemat biaya, dan sangat andal. Anda dapat memasang bucket OSS ke Function Compute, sehingga fungsi Anda dapat berinteraksi dengan OSS seolah-olah merupakan sistem file lokal. Hal ini menyederhanakan akses sumber daya dan alur kerja pemrosesan data.

Batasan

  • Fungsi Function Compute mendukung hingga lima titik pemasangan NAS dan lima titik pemasangan OSS dalam wilayah yang sama.

  • Direktori lokal untuk titik pemasangan NAS dan OSS harus unik dalam lingkungan runtime fungsi tersebut.

    Untuk informasi lebih lanjut tentang konfigurasi titik pemasangan NAS, lihat Konfigurasi sistem file NAS.

Prasyarat

Prosedur

Langkah 1: Konfigurasi titik pemasangan OSS

  1. Masuk ke Konsol Function Compute. Di panel navigasi kiri, pilih Function Management > Functions.

  2. Di bilah navigasi atas, pilih wilayah. Pada halaman Functions, klik nama fungsi target.

  3. Pada halaman detail fungsi, klik tab Configuration. Klik Advanced Settings di sebelah kanan Modify. Di panel Advanced Settings, temukan bagian Storage, aktifkan sakelar untuk Mount OSS, konfigurasi parameter, lalu klik Deploy.

    Parameter

    Deskripsi

    Contoh

    OSS Mount Target: Konfigurasikan titik pemasangan OSS.

    Bucket

    Pilih bucket yang sudah ada. Untuk membuat bucket baru, klik Create OSS Bucket untuk membuka OSS console. Untuk informasi mengenai biaya yang terkait dengan OSS, lihat OSS billing overview.

    example-bucket

    Bucket Subdirectory

    Tentukan subdirektori dalam bucket. Ini harus berupa jalur mutlak. Jika Anda biarkan kosong atau atur ke /, direktori root bucket akan dipasang.

    /files

    OSS Endpoint

    Saat Anda memilih bucket, sistem secara otomatis memilih titik akhirnya. Anda dapat memilih Custom Endpoint untuk mengubah alamat titik akhir. Untuk daftar titik akhir OSS berdasarkan wilayah, lihat Regions and endpoints.

    Catatan
    • Jika bucket dan fungsi Function Compute Anda berada di wilayah yang sama, gunakan titik akhir internal.

    • Jika bucket berada di wilayah yang berbeda, gunakan titik akhir publik. Hal ini akan dikenai biaya transfer data outbound.

    Default Endpoint

    Local directory of a function

    Tentukan direktori lokal dalam lingkungan runtime fungsi. Direktori tersebut harus merupakan subdirektori dari /home, /mnt, atau /data.

    /mnt/oss

    Permissions on the local directory of the function

    Pilih izin untuk direktori lokal. Anda dapat memilih Read-only atau Read and Write.

    Read/write

    Catatan

    Fitur pemasangan OSS bergantung pada konfigurasi jaringan fungsi. Jika fungsi Anda dikonfigurasi hanya untuk mengakses VPC dan Allow Default NIC to Access Internet diatur ke No, fungsi tersebut harus dapat mengakses internet melalui VPC yang ditentukan untuk menggunakan endpoint OSS publik. Untuk detailnya, lihat Konfigurasi alamat IP publik statis.

Langkah 2: Akses file di direktori yang dipasang

Setelah Anda mengonfigurasi titik pemasangan OSS, Anda dapat mengakses file di direktori yang dipasang seolah-olah file tersebut bersifat lokal.

  1. Pada halaman detail fungsi, klik tab Code. Tulis kode Anda di editor, lalu klik Deploy.

    Kode berikut memberikan contoh.

    import os
    
    
    def handler(event, context):
        # Mount directory
        mount_path = '/mnt/oss'
        
        # List files in the mount directory
        files = os.listdir(mount_path)
        print("Files in OSS mount:", files)  
        # Read a specific file from the mount directory
        file_path = os.path.join(mount_path, 'example.txt')
        if os.path.exists(file_path):
            with open(file_path, 'r') as file:
                content = file.read()
                print("Content of example.txt:", content)
        else:
            print("example.txt does not exist.")
        # Write a file to the mount directory
        write_path = os.path.join(mount_path, 'output.txt')
        with open(write_path, 'w') as file:
            file.write("Hello, OSS mount!")
            print("Wrote to output.txt in OSS mount.")
        
        return "Function execution completed."
      
    Catatan

    Dalam kode, ganti example.txt dengan nama file aktual yang ada di direktori OSS yang dipasang.

  2. Setelah kode dideploy, klik Code pada tab Test Function.

    Setelah eksekusi selesai, Anda dapat melihat hasilnya di bagian bawah tab Code. Tab Log Output menampilkan konten file example.txt yang dibaca dari direktori OSS. Anda juga dapat membuka Konsol OSS untuk memverifikasi bahwa file output.txt telah ditulis ke direktori yang dipasang.

FAQ

Kesalahan pemasangan OSS: bucket not found

Verifikasi bahwa endpoint akses OSS dan nama bucket sudah benar.

Kesalahan pemasangan OSS: host resolv error atau deadline exceeded

Verifikasi bahwa alamat endpoint sudah benar.

  • host resolv error terjadi jika alamat endpoint tidak dapat diselesaikan.

  • Titik akhir internal tidak dapat digunakan lintas wilayah. Menggunakan titik akhir internal untuk fungsi di wilayah berbeda menyebabkan timeout koneksi, sehingga muncul kesalahan deadline exceeded.

Kesalahan pemasangan: invalid credentials

Verifikasi bahwa peran RAM yang dikonfigurasi untuk fungsi Anda memiliki izin yang diperlukan untuk mengakses OSS. Untuk detailnya, lihat Berikan izin fungsi untuk mengakses layanan cloud lain menggunakan peran fungsi. Izin yang diperlukan adalah sebagai berikut:

  • Read-only: Memerlukan izin oss:ListObjects dan oss:GetObject.

  • Read and Write: Memerlukan izin oss:ListObjects, oss:GetObject, oss:PutObject, oss:DeleteObject, oss:ListParts, dan oss:AbortMultipartUpload.

Catatan

Aksi oss:ListObjects dilakukan di tingkat bucket. Oleh karena itu, saat memberikan akses ke bucket tertentu, kebijakan izin harus mencakup ARN sumber daya di tingkat bucket, seperti acs:oss:*:*:bucketName. Untuk informasi lebih lanjut, lihat OSS Resource.

Input/output error saat membaca file yang dipasang.

Periksa kelas penyimpanan bucket OSS Anda. Jika kelas penyimpanannya Archive atau Cold Archive, objek dalam bucket berada dalam status beku dan harus dipulihkan terlebih dahulu sebelum dapat diakses. Atur kelas penyimpanan bucket OSS Anda ke Standard.

Cara melihat file di direktori lokal

  1. Pada halaman detail fungsi, klik tab Instance. Dalam daftar instance yang berstatus Running, pilih instance dan klik Connect to Instance di kolom Actions.

  2. Setelah terhubung ke instance, Anda dapat menjalankan perintah untuk melihat informasi file di direktori lokal yang dikonfigurasi. Contohnya:

    image

Kesalahan mengakses titik pemasangan: Transport endpoint is not connected

Kesalahan ini terjadi ketika fitur pemasangan OSS gagal karena memori tidak mencukupi, yang mungkin disebabkan oleh spesifikasi memori rendah atau penggunaan memori tinggi. Tingkatkan spesifikasi memori fungsi Anda sesuai kebutuhan bisnis. Disarankan minimal 512 MB saat menggunakan titik pemasangan OSS.

Persistensi data di direktori fungsi

Data yang ditulis ke direktori fungsi akan dihapus saat instance fungsi dihapus. Untuk memastikan persistensi data, Anda dapat memasang sistem file NAS atau bucket OSS. Untuk detailnya, lihat Konfigurasi sistem file NAS dan Konfigurasi pemasangan OSS.

Akses read-only untuk bucket

Bentangkan untuk melihat contoh kebijakan izin. Ganti bucketName dalam contoh dengan nama bucket Anda. Untuk informasi lebih lanjut, lihat Ikhtisar Kebijakan RAM.

{
  "Version": "1",
  "Statement": [
    {
      "Action": [
        "oss:ListObjects",
        "oss:GetObject"
      ],
      "Resource": [
        "acs:oss:*:*:bucketName",
        "acs:oss:*:*:bucketName/*"
      ],
      "Effect": "Allow"
    }
  ]
}

Akses read/write untuk bucket

Bentangkan untuk melihat contoh kebijakan izin. Ganti bucketName dalam contoh dengan nama bucket Anda. Untuk informasi lebih lanjut, lihat Ikhtisar Kebijakan RAM.

{
  "Version": "1",
  "Statement": [
    {
      "Action": [
        "oss:ListObjects",
        "oss:GetObject",
        "oss:PutObject",
        "oss:DeleteObject",
        "oss:AbortMultipartUpload",
        "oss:ListParts"
      ],
      "Resource": [
        "acs:oss:*:*:bucketName",
        "acs:oss:*:*:bucketName/*"
      ],
      "Effect": "Allow"
    }
  ]
}

Akses read-only untuk subdirektori

Bentangkan untuk melihat contoh kebijakan izin. Ganti bucketName dengan nama bucket Anda dan bucketPath dengan subdirektori tertentu. Untuk informasi lebih lanjut, lihat Ikhtisar Kebijakan RAM.

{
  "Version": "1",
  "Statement": [
    {
      "Action": "oss:ListObjects",
      "Effect": "Allow",
      "Resource": [
        "acs:oss:*:*:bucketName"
      ],
      "Condition": {
        "StringLike": {
          "oss:Prefix": [
            "bucketPath/*"
          ]
        }
      }
    },
    {
      "Action": [
        "oss:GetObject"
      ],
      "Effect": "Allow",
      "Resource": [
        "acs:oss:*:*:bucketName/bucketPath/*"
      ]
    }
  ]
}

Akses read/write untuk subdirektori

Bentangkan untuk melihat contoh kebijakan izin. Ganti bucketName dengan nama bucket Anda dan bucketPath dengan subdirektori tertentu. Untuk informasi lebih lanjut, lihat Ikhtisar Kebijakan RAM.

{
  "Version": "1",
  "Statement": [
    {
      "Action": "oss:ListObjects",
      "Effect": "Allow",
      "Resource": [
        "acs:oss:*:*:bucketName"
      ],
      "Condition": {
        "StringLike": {
          "oss:Prefix": [
            "bucketPath/*"
          ]
        }
      }
    },
    {
      "Action": [
        "oss:GetObject",
        "oss:PutObject",
        "oss:DeleteObject",
        "oss:AbortMultipartUpload",
        "oss:ListParts"
      ],
      "Effect": "Allow",
      "Resource": [
        "acs:oss:*:*:bucketName/bucketPath/*"
      ]
    }
  ]
}

File tampak kosong selama operasi penulisan

Saat Anda menulis ke file melalui titik pemasangan OSS, sistem biasanya mengunggah konten ke OSS hanya setelah Anda secara eksplisit memanggil metode flush() atau menutup file.

Kinerja lambat untuk kompresi atau transfer file

OSS tidak mendukung API sistem file secara native. Saat Anda memasang bucket OSS sebagai direktori, Function Compute meniru perilaku API sistem file dengan menggabungkan dan membungkus API OSS. Misalnya, karena OSS tidak mendukung penulisan acak, memodifikasi file yang sudah ada pada titik pemasangan OSS mengharuskan Function Compute untuk mengunduh seluruh file sumber dari OSS, memodifikasinya, lalu mengunggahnya kembali.

Kinerja umumnya baik untuk operasi di mana API sistem file berkorespondensi langsung dengan fungsi API OSS, seperti pembacaan dan penulisan file secara berurutan. Namun, operasi yang memerlukan penggabungan beberapa API OSS, seperti operasi baca/tulis acak yang digunakan dalam kompresi atau dekompresi file, melibatkan banyak interaksi dengan OSS dan karenanya lebih lambat dibandingkan pada sistem file lokal.

Sinkronisasi antar instance fungsi

Tidak. Instance fungsi saling independen, sehingga akses ke titik pemasangan OSS tidak disinkronkan di antara mereka. Misalnya, jika instance A membuat file di titik pemasangan, instance B mungkin tidak langsung melihat file tersebut.