All Products
Search
Document Center

Function Compute:Gunakan peran fungsi untuk mengakses layanan cloud lainnya

Last Updated:Jun 22, 2026

Saat menggunakan fitur seperti logging, akses VPC, atau pemanggilan asinkron, Function Compute memerlukan izin untuk mengakses layanan cloud lainnya. Misalnya, untuk mengonfigurasi logging fungsi, Anda harus memberikan izin tulis kepada Function Compute terhadap Logstore tertentu agar dapat menulis log fungsi.

Untuk menyederhanakan proses otorisasi, Function Compute mendukung service-linked role. Fungsi menggunakan peran ini secara default sehingga dapat mengakses fitur seperti logging, akses VPC, dan pemanggilan asinkron tanpa perlu konfigurasi peran tambahan.

Jika kode fungsi Anda perlu mengakses layanan cloud lain atau memerlukan izin yang lebih granular, Anda harus mengonfigurasi Function Role. Saat fungsi dipanggil, Function Compute secara otomatis mengasumsikan peran yang telah dikonfigurasi tersebut.

Cara kerja

Function Compute, berdasarkan peran yang Anda konfigurasikan untuk suatu fungsi, memperoleh kredensial sementara (token STS) dengan memanggil AssumeRole dan meneruskannya ke fungsi Anda melalui parameter Credentials atau credentials dalam konteks. Kredensial sementara ini memberikan akses ke semua resource yang dicakup oleh izin yang dikonfigurasi, dan Anda dapat menggunakannya dalam kode fungsi untuk mengakses layanan Alibaba Cloud lainnya.

Kredensial sementara ini berlaku selama durasi tetap 36 jam. Karena durasi eksekusi maksimum suatu fungsi adalah 24 jam, kredensial tersebut tidak akan kedaluwarsa selama eksekusi fungsi.

Lokasi parameter Credentials atau credentials bervariasi tergantung pada runtime. Untuk detail spesifik mengenai runtime tertentu, lihat tautan berikut. Untuk runtime kustom dan gambar kustom, kredensial sementara disisipkan ke dalam header permintaan HTTP.

Contoh: Berikan akses ke OSS

Contoh ini menunjukkan cara memberikan izin fungsi untuk mengelola OSS. Anda akan membuat peran dengan izin OSS, lalu mengaitkannya ke fungsi tersebut.

Prasyarat

Buat fungsi

Prosedur

Langkah 1: Buat peran dan berikan izin

  1. Login ke Konsol RAM. Di panel navigasi sebelah kiri, pilih Roles > Create Role.

  2. Pada halaman Create Role, pilih Cloud Service untuk Principal Type dan Function Compute / FC untuk Principal Name. Lalu, klik OK.

  3. Pada kotak dialog Create Role yang muncul, atur Role Name, misalnya mytestrole, lalu klik OK. Hal ini akan mengarahkan Anda ke halaman detail peran.

  4. Pada tab Permissions, klik Grant Permission. Di panel Grant Permission, ikuti langkah-langkah berikut untuk memberikan izin kepada peran tersebut.

  5. Pilih Resource Scope. Principal secara default adalah peran target. Dari daftar kebijakan, centang kotak di samping kebijakan sistem atau kebijakan kustom untuk menambahkannya ke daftar Selected Policies. Lalu, klik OK. Untuk informasi lebih lanjut, lihat Kebijakan dan contoh.

    • Account: Izin berlaku dalam Akun Alibaba Cloud saat ini.

    • Resource Group: Izin berlaku dalam kelompok sumber daya yang ditentukan. Opsi ini hanya tersedia jika layanan cloud mendukung kelompok sumber daya. Untuk informasi lebih lanjut, lihat Layanan cloud yang mendukung kelompok sumber daya.

    Pada contoh ini, untuk mengelola OSS, Anda harus menambahkan kebijakan sistem AliyunOSSFullAccess ke peran baru tersebut.

Langkah 2: Kaitkan peran ke fungsi target

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

  2. Di bilah menu atas, pilih wilayah. Pada halaman Functions, temukan fungsi target dan klik Configuration di kolom Actions.

  3. Di halaman detail fungsi, pilih tab Configuration. Di bagian Advanced Settings, klik Modify. Di panel Advanced Settings, buka bagian Permissions. Untuk Function Role, pilih peran mytestrole yang telah Anda buat di Langkah 1. Lalu, klik Deploy.

Langkah 3: Uji fungsi

Uji apakah fungsi yang dikaitkan dengan peran mytestrole memiliki izin untuk mengelola OSS.

  1. Di halaman daftar fungsi, klik fungsi target. Di tab Code, klik panah di samping Test Function dan pilih Configure Test Parameters. Berikut adalah contoh event pengujian.

    {
       "endpoint": "http://oss-cn-hangzhou.aliyuncs.com",
       "bucket": "web****",
       "objectName": "myObj",
       "message": "your-message"
    }

    Pada contoh ini, ganti nilai bucket dengan nama bucket Anda, yang harus berada di wilayah yang sama dengan fungsi tersebut.

  2. Di tab Code, masukkan kode di editor kode, lalu klik Deploy.

    Contoh ini menggunakan runtime Python. Kode ini menggunakan kredensial sementara yang disediakan oleh Function Compute untuk mengakses OSS.

    import json
    import oss2
    def handler(event, context):
        evt = json.loads(event)
        creds = context.credentials
        # Gunakan kredensial sementara yang disisipkan oleh Function Compute.
        # Pasangan Kunci Akses Akun Alibaba Cloud Anda memberikan akses penuh ke semua operasi API. 
        # Kami menyarankan agar Anda menggunakan Pengguna RAM untuk akses API dan operasi O&M rutin.
        # Untuk mencegah risiko keamanan, jangan hardcode ID AccessKey dan Rahasia AccessKey di kode proyek Anda.
        # Contoh ini menunjukkan cara memperoleh ID AccessKey dan Rahasia AccessKey dari konteks.
        auth = oss2.StsAuth(creds.access_key_id, creds.access_key_secret, creds.security_token)
        bucket = oss2.Bucket(auth, evt['endpoint'], evt['bucket'])
        bucket.put_object(evt['objectName'], evt['message'])
        return 'success'
  3. Klik Test Function. Setelah fungsi berhasil dieksekusi, login ke Konsol OSS, temukan bucket target, dan verifikasi bahwa konten objek target telah diperbarui sesuai dengan nilai parameter message dari event pengujian.

Referensi

  • Function Compute 3.0 mendukung service-linked role untuk otorisasi berbasis prinsip least-privilege. Untuk detail kebijakan service-linked role, lihat AliyunServiceRoleForFC.

  • Untuk mempelajari cara mengonfigurasi function role, lihat Buat fungsi.