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.
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:
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.
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?
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!