All Products
Search
Document Center

Function Compute:Konfigurasikan Sistem File OSS

Last Updated:Mar 20, 2026

Object Storage Service (OSS) adalah layanan penyimpanan cloud yang aman, berbiaya rendah, dan sangat andal yang menawarkan kapasitas penyimpanan besar. Anda dapat mengonfigurasi titik pemasangan OSS untuk layanan Function Compute agar fungsi dalam layanan tersebut dapat berinteraksi dengan OSS seolah-olah merupakan sistem file lokal. Hal ini menyederhanakan akses sumber daya dan alur pemrosesan data.

Batasan

  • Function Compute mendukung hingga 5 titik pemasangan NAS dan 5 titik pemasangan OSS per layanan dalam wilayah yang sama.

  • Direktori lokal yang Anda tetapkan untuk titik pemasangan NAS dan OSS di lingkungan runtime fungsi tidak boleh saling bertentangan.

    Untuk informasi selengkapnya tentang cara mengonfigurasi titik pemasangan NAS, lihat Konfigurasikan Sistem File NAS.

Prasyarat

Prosedur

Langkah 1: Konfigurasikan Titik Pemasangan OSS

Di Function Compute, OSS dikonfigurasi pada tingkat layanan. Artinya, setelah Anda mengonfigurasi titik pemasangan OSS untuk suatu layanan, semua fungsi dalam layanan tersebut dapat mengakses file di bucket OSS yang ditentukan.

  1. Masuk ke Konsol Function Compute. Di panel navigasi kiri, klik Services & Functions.

  2. Di bilah navigasi atas, pilih wilayah. Pada halaman Services, temukan layanan yang diinginkan lalu klik Configure di kolom Actions.

  3. Pada halaman Edit Service, konfigurasikan parameter berikut di bagian Storage Configuration, lalu klik Save.

    Item Konfigurasi

    Deskripsi

    Contoh

    Mount OSS

    Aktifkan atau nonaktifkan sistem file OSS.

    • Enable: Aktifkan sistem file OSS.

    • Disable: Nonaktifkan sistem file OSS.

    Enable

    OSS Mount Point: Konfigurasikan pengaturan berikut untuk titik pemasangan OSS.

    Bucket

    Pilih bucket OSS yang sudah ada. Untuk membuat bucket baru, klik Create New OSS Bucket di bawah. Tindakan ini akan membuka Konsol Object Storage Service, tempat Anda dapat membuat bucket secara manual. Untuk detail harga, lihat Ikhtisar Penagihan OSS.

    example-bucket

    Bucket Subdirectory

    Tetapkan subdirektori dalam bucket. Gunakan jalur mutlak. Biarkan kosong atau atur ke / untuk memasang direktori root bucket.

    /files

    OSS Endpoint

    Setelah Anda memilih bucket, endpoint default untuk bucket tersebut akan muncul. Anda dapat memilih Custom Endpoint untuk mengubahnya. Untuk daftar endpoint berdasarkan wilayah, lihat Wilayah dan Endpoint.

    Catatan
    • Jika Anda memilih Bucket yang berada di wilayah yang sama dengan layanan Function Compute, kami menyarankan Anda menggunakan endpoint jaringan internal OSS.

    • Jika bucket berada di wilayah berbeda, gunakan endpoint jaringan publik. Hal ini akan dikenai biaya lalu lintas outbound melalui Internet.

    Default address

    Local Directory in Function

    Tetapkan direktori lokal di lingkungan runtime fungsi. Jalur tersebut harus merupakan subdirektori dari /home, /mnt, atau /data.

    Catatan

    Anda tidak perlu membuat direktori ini secara manual. Direktori tersebut siap digunakan setelah Anda menetapkannya.

    /mnt/oss

    Local Directory Permissions in Function

    Tetapkan izin read-only atau read-write untuk direktori yang dipasang di lingkungan runtime fungsi.

    Read-write

    Catatan

    Pemasangan OSS bergantung pada konfigurasi jaringan layanan Anda. Jika layanan Anda hanya mengizinkan akses dari VPC (Allow Function Invocation Only from Specified VPC diatur ke Yes dan Allow Function to Access the Internet diatur ke No) dan Anda menggunakan endpoint jaringan publik, pastikan fungsi Anda dapat mengakses Internet melalui VPC yang ditentukan. Untuk informasi selengkapnya, lihat Konfigurasikan Alamat IP Publik Statis.

Langkah 2: Buat Fungsi dan Akses File di Direktori OSS yang Dipasang

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

  1. Pada halaman Create Function, konfigurasikan pengaturan berikut. Biarkan pengaturan lainnya pada nilai default, lalu klik Create.

    • Metode Pembuatan: Create with Built-in Runtimes.

    • Basic Settings: Masukkan Function Name. Untuk Handler Type, pilih Event Handler.

    • Function Code: Untuk Runtime, pilih Python 3.10. Untuk Code Upload Method, pilih Sample Code.

  2. Pada halaman detail fungsi, klik tab Function Code. Di editor kode, masukkan kode Anda lalu klik Deploy Code.

    Contoh ini menggunakan Python. Berikut adalah contoh kodenya.

    import os
    
    
    def handler(event, context):
        # Direktori yang dipasang
        mount_path = '/mnt/oss'
        
        # Daftar file di direktori yang dipasang
        files = os.listdir(mount_path)
        print("Files in OSS mount:", files)  
        # Baca file di direktori yang dipasang
        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.")
        # Tulis file ke direktori yang dipasang
        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 di direktori OSS yang dipasang Anda.

  3. Setelah kode dideploy, klik Test Function di tab Function Code.

    Setelah fungsi dieksekusi, Anda dapat melihat hasilnya di bawah tab Function Code. Di tab Logs, Anda dapat melihat konten example.txt dari direktori OSS yang dipasang. Di Konsol OSS, Anda dapat melihat konten output.txt yang ditulis ke direktori yang dipasang.

FAQ

Pemasangan OSS gagal. Pesan error-nya adalah bucket not found.

Verifikasi bahwa endpoint OSS dan nama bucket sudah benar.

Pemasangan OSS gagal. Pesan error-nya adalah host resolv error atau deadline exceeded.

Verifikasi bahwa endpoint sudah benar.

  • Pesan host resolv error menunjukkan kegagalan resolusi nama domain untuk endpoint tersebut.

  • Error deadline exceeded terjadi jika Anda menggunakan endpoint jaringan internal dari wilayah berbeda. Endpoint jaringan internal tidak dapat digunakan lintas wilayah.

Pemasangan OSS gagal. Pesan error-nya adalah invalid credentials.

Pastikan peran RAM yang ditetapkan ke layanan Anda memiliki izin untuk mengakses OSS. Izin yang diperlukan adalah sebagai berikut. Untuk informasi selengkapnya, lihat Berikan Izin Function Compute untuk Mengakses Layanan Alibaba Cloud Lainnya.

  • Read-only: mencakup aksi oss:ListObjects dan oss:GetObject.

  • Read/Write: mencakup aksi oss:ListObjects, oss:GetObject, oss:PutObject, oss:DeleteObject, oss:ListParts, dan oss:AbortMultipartUpload.

Catatan

oss:ListObjects adalah aksi tingkat bucket. Oleh karena itu, saat memberikan akses ke bucket tertentu, kebijakan Anda harus mencakup ARN sumber daya tingkat bucket, seperti acs:oss:*:*:bucketName. Untuk informasi selengkapnya, lihat Deskripsi Sumber Daya OSS.

Saat membaca file yang dipasang, pesan error-nya adalah Input/output error.

Verifikasi kelas penyimpanan bucket OSS Anda. File di bucket yang menggunakan kelas penyimpanan Archive atau Cold Archive dalam keadaan beku. Anda harus memulihkan file-file tersebut sebelum dapat mengaksesnya. Kami menyarankan Anda menggunakan kelas penyimpanan Standard untuk bucket OSS Anda.

Bagaimana cara melihat file di direktori lokal yang telah dikonfigurasi?

  1. Pada halaman detail fungsi, klik tab Instances. Temukan instans yang berstatus Running. Klik Connect di kolom Actions untuk instans tersebut.

    image

  2. Setelah terhubung ke instans, Anda dapat menjalankan perintah untuk menampilkan daftar file di direktori lokal yang telah dikonfigurasi. Contoh:

    image

Instans fungsi menampilkan Transport endpoint is not connected saat mengakses titik pemasangan.

Error ini dapat terjadi jika instans fungsi memiliki memori rendah atau penggunaan memori tinggi. Hal ini dapat menyebabkan fitur pemasangan OSS gagal karena error kehabisan memori (OOM). Untuk mengatasi masalah ini, tingkatkan ukuran memori fungsi. Kami menyarankan Anda mengatur ukuran memori minimal 512 MB saat menggunakan titik pemasangan OSS.

Apakah file yang ditulis ke direktori fungsi disimpan secara permanen?

Tidak. Saat instans fungsi dihapus, file yang ditulis ke direktori fungsi akan dihapus. Untuk menyimpan data secara permanen, Anda harus mengonfigurasi titik pemasangan. Baik titik pemasangan NAS maupun OSS mendukung penyimpanan persisten. Untuk informasi selengkapnya, lihat Konfigurasikan Sistem File NAS dan Konfigurasikan Sistem File OSS.

Bagaimana cara mengizinkan akses read-only ke bucket tertentu menggunakan kebijakan izin?

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

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

Bagaimana cara mengizinkan akses read-write ke bucket tertentu menggunakan kebijakan izin?

Bentangkan untuk melihat contoh kebijakan izin. Ganti bucketName dengan nama bucket Anda. Untuk informasi selengkapnya, 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"
    }
  ]
}

Bagaimana cara mengizinkan akses read-only ke subdirektori tertentu dalam bucket menggunakan kebijakan izin?

Bentangkan untuk melihat contoh kebijakan izin. Ganti bucketName dengan nama bucket Anda dan bucketPath dengan jalur subdirektori Anda. Untuk informasi selengkapnya, 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/*"
      ]
    }
  ]
}

Bagaimana cara mengizinkan akses read-write ke subdirektori tertentu dalam bucket menggunakan kebijakan izin?

Bentangkan untuk melihat contoh kebijakan izin. Ganti bucketName dengan nama bucket Anda dan bucketPath dengan jalur subdirektori Anda. Untuk informasi selengkapnya, 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/*"
      ]
    }
  ]
}

Saat menulis file melalui titik pemasangan OSS, file tampak kosong di Konsol OSS.

Secara default, konten yang ditulis hanya diunggah ke OSS ketika file secara eksplisit di-flush atau ditutup.

Operasi seperti kompresi, dekompresi, atau transfer file di titik pemasangan OSS merespons dengan lambat.

OSS tidak mendukung API sistem file. Setelah Anda memasang bucket OSS sebagai direktori, Function Compute membungkus API OSS untuk mensimulasikan API sistem file. Misalnya, OSS tidak mendukung operasi penulisan acak. Jika Anda menggunakan API sistem file untuk mengubah file yang sudah ada di titik pemasangan OSS, Function Compute mengunduh seluruh file sumber dari OSS, mengubahnya, lalu mengunggahnya kembali ke OSS.

Operasi yang langsung dipetakan ke API OSS, seperti pembacaan dan penulisan berurutan, berkinerja baik. Namun, operasi yang memerlukan beberapa panggilan API OSS, seperti kompresi atau dekompresi, sering kali melibatkan pembacaan acak dan memerlukan lebih banyak permintaan bolak-balik ke OSS. Akibatnya, operasi tersebut lebih lambat dibandingkan pada sistem file lokal.

Apakah instans fungsi yang berbeda mengoordinasikan atau menyinkronkan akses ke titik pemasangan OSS yang sama?

Instans fungsi beroperasi secara independen. Akibatnya, konten pada titik pemasangan OSS mungkin tidak konsisten di antara instans. Misalnya, jika Anda menggunakan instans fungsi A untuk membuat file F di titik pemasangan OSS, Anda mungkin tidak dapat mengambil file tersebut secara real-time dari instans fungsi B.