Mengonfigurasi Pengiriman Berkelanjutan dengan Azure Pipelines
Gunakan Azure Pipelines untuk menyebarkan secara otomatis ke Azure Functions. Azure Pipelines memungkinkan Anda membangun, menguji, dan menyebarkan dengan integrasi berkelanjutan (CI) dan pengiriman berkelanjutan (CD) menggunakan Azure DevOps.
Alur YAML ditentukan menggunakan file YAML di repositori Anda. Langkah adalah blok penyusun terkecil dari alur dan bisa berupa skrip atau tugas (skrip pra-paket). Pelajari tentang konsep utama dan komponen yang membentuk sebuah alur.
Alur YAML tidak tersedia untuk Azure DevOps 2019 dan versi yang lebih lama.
Prasyarat
Akun GitHub, di mana Anda dapat membuat repositori. Jika Anda tidak memilikinya, Anda dapat membuatnya secara gratis.
Organisasi Azure DevOps. Jika Anda tidak memilikinya, Anda dapat membuatnya secara gratis. Jika tim Anda sudah memilikinya, pastikan Anda adalah administrator proyek Azure DevOps yang ingin Anda gunakan.
Kemampuan untuk menjalankan jaringan alur pada agen yang dihosting Microsoft. Anda dapat membeli pekerjaan paralel atau Anda dapat meminta tingkat gratis.
Membuat aplikasi fungsi
Ini adalah panduan langkah demi langkah untuk menggunakan Azure Pipelines dengan Azure Functions.
Jika Anda sudah memiliki aplikasi di GitHub yang ingin disebarkan, Anda dapat mencoba membuat alur untuk kode tersebut.
Untuk menggunakan kode sampel sebagai gantinya, fork repositori GitHub ini:
https://github.com/microsoft/devops-project-samples/tree/master/dotnet/aspnetcore/functionApp
Membuat aplikasi Anda
- Masuk ke organisasi Azure DevOps Anda dan arahkan ke proyek Anda.
- Dalam proyek Anda, arahkan ke halaman Alur. Lalu, pilih tindakan untuk membuat alur baru.
- Menelusuri langkah-langkah wizard dengan terlebih dahulu memilih GitHub sebagai lokasi kode sumber Anda.
- Anda dapat diarahkan ke GitHub untuk masuk. Jika demikian, masukkan informasi masuk GitHub Anda.
- Ketika daftar repositori muncul, pilih sampel repositori aplikasi Anda.
- Azure Pipelines akan menganalisis repositori Anda dan merekomendasikan template. Pilih Simpan dan jalankan, lalu pilih Terapkan langsung ke cabang utama, lalu pilih Simpan dan jalankan lagi.
- Menjalankan baru sudah dimulai. Tunggu sampai menjalankan selesai.
Contoh alur build YAML
Alur khusus bahasa berikut dapat digunakan untuk membangun aplikasi.
Anda dapat menggunakan sampel berikut untuk membuat file YAML untuk membangun aplikasi .NET:
pool:
vmImage: 'windows-latest'
steps:
- script: |
dotnet restore
dotnet build --configuration Release
- task: DotNetCoreCLI@2
inputs:
command: publish
arguments: '--configuration Release --output publish_output'
projects: '*.csproj'
publishWebProjects: false
modifyOutputPath: false
zipAfterPublish: false
- task: ArchiveFiles@2
displayName: "Archive files"
inputs:
rootFolderOrFile: "$(System.DefaultWorkingDirectory)/publish_output"
includeRootFolder: false
archiveFile: "$(System.DefaultWorkingDirectory)/build$(Build.BuildId).zip"
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(System.DefaultWorkingDirectory)/build$(Build.BuildId).zip'
artifactName: 'drop'
Menerapkan aplikasi Anda
Anda akan menyebarkan dengan tugas Sebarkan Aplikasi Azure Function. Tugas ini memerlukan koneksi layanan Azure sebagai input. Koneksi layanan Azure menyimpan kredensial untuk menyambungkan dari Azure Pipelines ke Azure.
Untuk menyebarkan ke Azure Functions, tambahkan cuplikan berikut di akhir file azure-pipelines.yml Anda. Default appType adalah Windows. Anda dapat menentukan Linux dengan mengatur appType ke functionAppLinux.
trigger:
- main
variables:
# Azure service connection established during pipeline creation
azureSubscription: <Name of your Azure subscription>
appName: <Name of the function app>
# Agent VM image name
vmImageName: 'ubuntu-latest'
- task: AzureFunctionApp@1 # Add this at the end of your file
inputs:
azureSubscription: <Azure service connection>
appType: functionAppLinux # default is functionApp
appName: $(appName)
package: $(System.ArtifactsDirectory)/**/*.zip
#Uncomment the next lines to deploy to a deployment slot
#Note that deployment slots is not supported for Linux Dynamic SKU
#deployToSlotOrASE: true
#resourceGroupName: '<Resource Group Name>'
#slotName: '<Slot name>'
Cuplikan mengasumsikan bahwa langkah-langkah build dalam file YAML Anda menghasilkan arsip zip di folder $(System.ArtifactsDirectory) pada agen Anda.
Menyebarkan kontainer
Anda dapat secara otomatis menyebarkan kode Anda untuk Azure Functions sebagai kontainer kustom setelah setiap build yang berhasil. Untuk mempelajari selengkapnya tentang kontainer, lihat Membuat fungsi di Linux menggunakan kontainer kustom.
Menyebarkan dengan tugas Azure Function App for Container
Cara paling sederhana untuk menyebarkan ke kontainer adalah dengan menggunakan tugas Azure Function App on Container Deploy.
Untuk menyebarkan, tambahkan cuplikan berikut di akhir file YAML Anda:
trigger:
- main
variables:
# Container registry service connection established during pipeline creation
dockerRegistryServiceConnection: <Docker registry service connection>
imageRepository: <Name of your image repository>
containerRegistry: <Name of the Azure container registry>
dockerfilePath: '$(Build.SourcesDirectory)/Dockerfile'
tag: '$(Build.BuildId)'
# Agent VM image name
vmImageName: 'ubuntu-latest'
- task: AzureFunctionAppContainer@1 # Add this at the end of your file
inputs:
azureSubscription: '<Azure service connection>'
appName: '<Name of the function app>'
imageName: $(containerRegistry)/$(imageRepository):$(tag)
Cuplikan tersebut mendorong gambar Docker ke Azure Container Registry Anda. Tugas Azure Function App on Container Deploy menarik citra Docker yang sesuai dengan BuildId dari repositori yang ditentukan, lalu menyebarkan citra tersebut.
Menyebarkan ke slot
Anda dapat mengonfigurasi aplikasi fungsi sehingga memiliki beberapa slot. Slot memungkinkan Anda menyebarkan aplikasi dengan aman dan mengujinya sebelum menyediakannya kepada pelanggan Anda.
Cuplikan YAML berikut menunjukkan cara menyebarkan ke slot pentahapan, lalu bertukar ke slot produksi:
- task: AzureFunctionApp@1
inputs:
azureSubscription: <Azure service connection>
appType: functionAppLinux
appName: <Name of the Function app>
package: $(System.ArtifactsDirectory)/**/*.zip
deployToSlotOrASE: true
resourceGroupName: <Name of the resource group>
slotName: staging
- task: AzureAppServiceManage@0
inputs:
azureSubscription: <Azure service connection>
WebAppName: <name of the Function app>
ResourceGroupName: <name of resource group>
SourceSlot: staging
SwapWithProduction: true
Membuat alur dengan Azure CLI
Untuk membuat alur build di Azure, gunakan az functionapp devops-pipeline createperintah. Alur build dibuat untuk membuat dan merilis perubahan kode apa pun yang dibuat di repositori Anda. Perintah itu menghasilkan file YAML baru yang menentukan alur build dan rilis kemudian membawa ke repositori Anda. Prasyarat untuk perintah ini bergantung pada lokasi kode Anda.
Jika kode Anda ada di GitHub:
Anda harus memiliki izin menulis pada langganan Anda.
Anda harus menjadi administrator proyek di Azure DevOps.
Anda harus memiliki izin untuk membuat token akses pribadi GitHub (PAT) yang memiliki izin yang memadai. Untuk informasi selengkapnya, lihat Persyaratan izin GitHub PAT.
Anda harus memiliki izin untuk mengirim ke cabang utama di repositori GitHub sehingga Anda dapat melakukan pembuatan otomatis file YAML.
Jika kode Anda berada di Azure Repos:
Anda harus memiliki izin menulis pada langganan Anda.
Anda harus menjadi administrator proyek di Azure DevOps.
Langkah berikutnya
- Tinjau gambaran umum Azure Functions.
- Tinjau gambaran umum Azure DevOps.



