Bagikan melalui


Mulai Cepat: Menggunakan GitHub Actions untuk menyambungkan ke Azure Database for PostgreSQL

Mulai menggunakan GitHub Actions dengan menggunakan alur kerja untuk menyebarkan pembaruan database ke Azure Database for PostgreSQL.

Prasyarat

Anda memerlukan:

Gambaran umum file alur kerja

Alur kerja GitHub Actions ditentukan oleh file YAML (.yml) di jalur /.github/workflows/ di repositori Anda. Definisi ini berisi berbagai langkah dan parameter yang membentuk alur kerja.

File memiliki dua bagian:

Section Tasks
Authentication 1. Buat info masuk penyebaran.
Sebarkan 1. Sebarkan database.

Menghasilkan kredensial penyebaran

Untuk menggunakan tindakan Azure Login dengan OIDC, Anda perlu mengonfigurasi kredensial identitas gabungan pada aplikasi Microsoft Entra atau identitas terkelola yang ditetapkan pengguna.

Opsi 1: Aplikasi Microsoft Entra

Opsi 2: Identitas terkelola yang ditetapkan pengguna

Salin string koneksi Azure Database for PostgreSQL

Di portal Azure, buka instans server fleksibel Azure Database for PostgreSQL Anda dan dari menu sumber daya, di bawah Pengaturan, pilih Sambungkan. Di halaman tersebut, gunakan kotak kombo Nama database untuk memilih nama database yang ingin Anda sambungkan. Perluas bagian Sambungkan dari aplikasi Anda, dan salin ADO.NET string koneksi, dan ganti nilai {your_password} tempat penampung dengan kata sandi Anda yang sebenarnya. string koneksi terlihat mirip dengan ini.

Server={servername.postgres.database.azure.com};Database={your_database};Port=5432;User Id={adminusername};Password={your_password};Ssl Mode=Require;

Anda menggunakan string koneksi sebagai rahasia GitHub.

Mengonfigurasi rahasia GitHub

Anda perlu memberikan ID Klien, ID Direktori (penyewa), dan ID Langganan aplikasi Anda ke tindakan masuk. Nilai ini bisa disediakan secara langsung di alur kerja atau bisa disimpan di rahasia GitHub dan direferensikan dalam alur kerja Anda. Menyimpan nilai sebagai GitHub rahasia adalah opsi yang lebih aman.

  1. Di GitHub, buka repositori Anda.

  2. Pilih Keamanan > Rahasia dan variabel > Tindakan.

    Cuplikan layar penambahan rahasia

  3. Pilih Rahasia repositori baru.

    Nota

    Untuk meningkatkan keamanan alur kerja di repositori publik, gunakan rahasia lingkungan alih-alih rahasia repositori. Jika lingkungan memerlukan persetujuan, pekerjaan tidak dapat mengakses rahasia lingkungan hingga salah satu peninjau yang diperlukan menyetujuinya.

  4. Membuat rahasia untuk AZURE_CLIENT_ID, AZURE_TENANT_ID, dan AZURE_SUBSCRIPTION_ID. Salin nilai-nilai ini dari aplikasi Microsoft Entra atau identitas terkelola yang ditetapkan pengguna untuk rahasia GitHub Anda:

    Rahasia GitHub Aplikasi Microsoft Entra atau identitas terkelola yang ditetapkan pengguna
    AZURE_CLIENT_ID ID Pelanggan
    AZURE_SUBSCRIPTION_ID (ID Langganan Azure) Identifikasi Langganan
    AZURE_TENANT_ID (ID Penyewa Azure) ID Direktori (Penyewa)

    Nota

    Untuk alasan keamanan, sebaiknya gunakan Rahasia GitHub daripada meneruskan nilai langsung ke alur kerja.

Menambahkan alur kerja Anda

  1. Buka Tindakan untuk repositori GitHub Anda.

  2. Pilih Siapkan alur kerja Anda sendiri.

  3. Hapus semuanya setelah bagian on: dari file alur kerja Anda. Misalnya, alur kerja Anda yang tersisa mungkin terlihat seperti ini.

    name: CI
    
    on:
    push:
        branches: [ main ]
    pull_request:
        branches: [ main ]
    
  4. Ganti nama alur PostgreSQL for GitHub Actions kerja Anda dan tambahkan tindakan checkout dan masuk. Tindakan ini memeriksa kode situs Anda dan mengautentikasi dengan Azure menggunakan rahasia GitHub yang Anda buat sebelumnya.

    name: PostgreSQL for GitHub Actions
    
    on:
    push:
        branches: [ main ]
    pull_request:
        branches: [ main ]
    
    jobs:
    build:
        runs-on: ubuntu-latest
        steps:
        - uses: actions/checkout@v1
        - uses: azure/login@v2
        with:
            client-id: ${{ secrets.AZURE_CLIENT_ID }}
            tenant-id: ${{ secrets.AZURE_TENANT_ID }}
            subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
    
  5. Gunakan tindakan Penyebaran Azure PostgreSQL untuk menyambungkan ke instans server fleksibel Azure Database for PostgreSQL Anda. Ganti POSTGRESQL_SERVER_NAME dengan nama server Anda. Anda harus memiliki file data Azure Database for PostgreSQL bernama data.sql di tingkat akar repositori Anda.

     - uses: azure/postgresql@v1
       with:
        connection-string: ${{ secrets.AZURE_POSTGRESQL_CONNECTION_STRING }}
        server-name: POSTGRESQL_SERVER_NAME
        plsql-file: './data.sql'
    
  6. Selesaikan alur kerja Anda dengan menambahkan tindakan untuk keluar dari Azure. Berikut alur kerja yang telah selesai. File muncul di .github/workflows folder repositori Anda.

    name: PostgreSQL for GitHub Actions
    
    on:
    push:
        branches: [ main ]
    pull_request:
        branches: [ main ]
    
    
    jobs:
    build:
        runs-on: ubuntu-latest
        steps:
        - uses: actions/checkout@v1
        - uses: azure/login@v2
        with:
            client-id: ${{ secrets.AZURE_CLIENT_ID }}
            tenant-id: ${{ secrets.AZURE_TENANT_ID }}
            subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
    
    - uses: azure/postgresql@v1
      with:
        server-name: POSTGRESQL_SERVER_NAME
        connection-string: ${{ secrets.AZURE_POSTGRESQL_CONNECTION_STRING }}
        plsql-file: './data.sql'
    
        # Azure logout
    - name: logout
      run: |
         az logout
    

Tinjau penerapan Anda

  1. Buka Tindakan untuk repositori GitHub Anda.

  2. Buka hasil pertama untuk melihat log terperinci dari eksekusi alur kerja Anda.

    Log GitHub Actions yang dijalankan.

Membersihkan sumber daya

Saat database dan repositori Azure Database for PostgreSQL Anda tidak lagi diperlukan, bersihkan sumber daya yang Anda sebarkan dengan menghapus grup sumber daya dan repositori GitHub Anda.