Perintah pelancaran golang tersuai pada Apl Web Azure
editor php Strawberry akan memperkenalkan kepada anda arahan permulaan golang tersuai pada Apl Web Azure hari ini. Azure Web App ialah perkhidmatan awan terurus yang membantu pembangun menggunakan dan menskalakan aplikasi web dengan mudah. Golang ialah bahasa pengaturcaraan cekap yang pantas, boleh dipercayai dan ringkas. Dengan menyesuaikan arahan permulaan golang, pembangun boleh mengawal proses permulaan aplikasi web dengan lebih baik dan mencapai fungsi yang lebih diperibadikan. Artikel ini akan memperkenalkan secara terperinci cara mengkonfigurasi dan menggunakan perintah permulaan golang tersuai pada Apl Web Azure untuk membantu pembangun menggunakan ciri ini dengan lebih baik.
Kandungan soalan
Saya cuba menggunakan apl web go dengan tindakan github ke perkhidmatan aplikasi azure. Keseluruhan penggunaan berjaya sehingga aplikasi perlu digunakan menggunakan azure/webapps-deploy@v2
.
Untuk melihat apa masalahnya, saya mencipta aplikasi ujian go 'hello world' yang mudah. Hanya gunakan aplikasi yang sangat mudah ini dan anda boleh pergi. Walau bagaimanapun, semasa cuba menggunakan aplikasi ujian, saya melihat sesuatu:
- Apl ini dibina semula sepenuhnya pada azure dan bukannya menggunakan boleh laku untuk dijalankan. Fail penempatan saya sebelum ini kelihatan seperti ini:
name: go deployment on: push: branches: [ "master" ] pull_request: branches: [ "master" ] jobs: build: runs-on: ubuntu-latest environment: production steps: # checkout the repo - uses: actions/checkout@master # setup go - name: setup go uses: actions/setup-go@v3 with: go-version: '1.20' - run: go version # install dependencies - name: go build working-directory: . run: | go build - name: upload artifact for deployment job uses: actions/upload-artifact@v3 with: name: go-app path: . deploy: runs-on: ubuntu-latest needs: build environment: name: 'production' url: ${{ steps.deploy-to-webapp.outputs.webapp-url }} steps: - name: download artifact from build job uses: actions/download-artifact@v3 with: name: go-app - name: 'deploy to azure web app' id: deploy-to-webapp uses: azure/webapps-deploy@v2 with: app-name: ${{ env.azure_webapp_name }} slot-name: 'production' publish-profile: ${{ secrets.azureappservice_publishprofile }} package: .
Tiada masalah dengan penempatan ini. Aplikasi Codebase dimasukkan ke dalam Azure Web Apps. Apabila saya cuba menggunakan boleh laku dalam langkah terakhir, penggunaan gagal. Sudah tentu, aplikasi web azure mempunyai medan tersuai untuk menetapkan arahan pelancaran. Saya cuba menetapkannya kepada ./main
untuk menjalankan boleh laku semasa permulaan, tetapi ini masih gagal.
with: app-name: ${{ env.azure_webapp_name }} slot-name: 'production' publish-profile: ${{ secrets.azureappservice_publishprofile }} package: main
Apabila membina apl go pada mesin tempatan saya menggunakan go build main.go
dan kemudian melaksanakan go build main.go
在我的本地计算机上构建 go 应用程序,然后执行 ./main
apl berjalan tanpa masalah.
- Memandangkan saya tidak boleh hanya melaksanakan boleh laku daripada langkah sebelumnya, saya memutuskan untuk berundur dan membenarkan Azure App Service melaksanakan apl pergi seperti sedia ada. Jika ya, keseluruhan langkah binaan tidak lagi diperlukan dan anda boleh menolak kod tersebut ke perkhidmatan web biru. Seperti ini:
name: Go on: push: branches: [ "master" ] pull_request: branches: [ "master" ] jobs: build: runs-on: ubuntu-latest environment: name: 'Production' url: ${{ steps.deploy-to-webapp.outputs.webapp-url }} steps: # checkout the repo - uses: actions/checkout@master - name: 'Deploy to Azure Web App' id: deploy-to-webapp uses: azure/webapps-deploy@v2 with: app-name: ${{ env.AZURE_WEBAPP_NAME }} slot-name: 'Production' publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE }} package: .
Walaupun terpaksa menolak keseluruhan pangkalan kod, ia masih berfungsi dengan baik. Walau bagaimanapun, dalam aplikasi pengeluaran kami, atas sebab struktur, fail main.go tidak terletak dalam direktori akar. Untuk meniru tingkah laku ini, saya meletakkan fail main.go dalam direktori /cmd. Penggunaan apl web azure gagal lagi. Seseorang boleh meneka bahawa ini mungkin disebabkan oleh azure tidak dapat mencari fail main.go. Saya mahu menggunakan arahan pelancaran sekali lagi, tetapi kali ini menggunakan go 运行 cmd/main.go
. Malangnya, ini juga tidak berfungsi.
apl web azure menunjukkan semua yang dibina semasa menjalankan saluran paip:
Ada cadangan? Apa yang saya hilang di sini?
Adakah terdapat sebarang penyelesaian tentang cara memuat naik boleh laku yang dibuat dalam langkah sebelumnya untuk apl web azure dan menjalankan boleh laku di sana?
Penyelesaian
Pertama, anda harus menetapkan pembolehubah persekitaran dalam apl web azure anda: website_run_from_package
到 1
. Ini menghalang binaan daripada berjalan pada Azure lagi. Mulai saat ini, anda sepatutnya boleh memuat naik boleh laku pra-bina.
Saya juga terpaksa menyediakan arahan pelancaran untuk menjalankan boleh laku khusus saya.
Selepas melakukan ini, saya melihat perkara berikut dalam log untuk https://appname- here.scm.azurewebsites.net/api/logstream
2023-04-26T17:20:12.596331026Z Detecting platforms... 2023-04-26T17:20:12.805572634Z Could not detect any platform in the source directory. 2023-04-26T17:20:15.792565274Z Running /home/site/wwwroot/go-test now 2023-04-26T17:20:15.928193597Z /home/site/wwwroot/go-test: /lib/x86_64-linux-gnu/libc.so.6: version 'GLIBC_2.32' not found (required by /home/site/wwwroot/go-test) 2023-04-26T17:20:15.934491135Z /home/site/wwwroot/go-test: /lib/x86_64-linux-gnu/libc.so.6: version 'GLIBC_2.34' not found (required by /home/site/wwwroot/go-test)
Versi muncul glibc_2.34
是因为该应用程序是使用 ubuntu-latest 在管道中构建的。这是 ubuntu-22.04,其中有 glibc_2.35
但要运行的 azure 计算机没有此版本。使用 ubuntu-20.04
版本 glibc_2.31
Bina dan jalankan dengan sempurna.
Atas ialah kandungan terperinci Perintah pelancaran golang tersuai pada Apl Web Azure. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



OpenSSL, sebagai perpustakaan sumber terbuka yang digunakan secara meluas dalam komunikasi yang selamat, menyediakan algoritma penyulitan, kunci dan fungsi pengurusan sijil. Walau bagaimanapun, terdapat beberapa kelemahan keselamatan yang diketahui dalam versi sejarahnya, yang sebahagiannya sangat berbahaya. Artikel ini akan memberi tumpuan kepada kelemahan umum dan langkah -langkah tindak balas untuk OpenSSL dalam sistem Debian. Debianopenssl yang dikenal pasti: OpenSSL telah mengalami beberapa kelemahan yang serius, seperti: Kerentanan Pendarahan Jantung (CVE-2014-0160): Kelemahan ini mempengaruhi OpenSSL 1.0.1 hingga 1.0.1f dan 1.0.2 hingga 1.0.2 versi beta. Penyerang boleh menggunakan kelemahan ini untuk maklumat sensitif baca yang tidak dibenarkan di pelayan, termasuk kunci penyulitan, dll.

Artikel ini menerangkan cara menggunakan alat PPROF untuk menganalisis prestasi GO, termasuk membolehkan profil, mengumpul data, dan mengenal pasti kesesakan biasa seperti CPU dan isu memori.

Artikel ini membincangkan ujian unit menulis di GO, meliputi amalan terbaik, teknik mengejek, dan alat untuk pengurusan ujian yang cekap.

Perpustakaan yang digunakan untuk operasi nombor terapung dalam bahasa Go memperkenalkan cara memastikan ketepatannya ...

Masalah Threading Giliran di GO Crawler Colly meneroka masalah menggunakan Perpustakaan Colly Crawler dalam bahasa Go, pemaju sering menghadapi masalah dengan benang dan permintaan beratur. � ...

Artikel ini membincangkan menggunakan ujian yang didorong oleh jadual di GO, satu kaedah yang menggunakan jadual kes ujian untuk menguji fungsi dengan pelbagai input dan hasil. Ia menyoroti faedah seperti kebolehbacaan yang lebih baik, penurunan duplikasi, skalabiliti, konsistensi, dan a

Artikel ini membincangkan pakej GO's Reflect, yang digunakan untuk manipulasi kod runtime, bermanfaat untuk siri, pengaturcaraan generik, dan banyak lagi. Ia memberi amaran tentang kos prestasi seperti pelaksanaan yang lebih perlahan dan penggunaan memori yang lebih tinggi, menasihati penggunaan yang bijak dan terbaik

Artikel ini membincangkan menguruskan kebergantungan modul Go melalui Go.Mod, meliputi spesifikasi, kemas kini, dan resolusi konflik. Ia menekankan amalan terbaik seperti versi semantik dan kemas kini biasa.
