Azure FunctionApp 在通过 Azure DevOps 成功进行 CI/CD 后没有功能

问题描述 投票:0回答:1

我已经创建了一个运行在应用服务计划 Y1 上的 Azure Function App (Linux),并且我的源代码在 Azure DevOps Git 中。这些函数是在 DOTNET 6 上用 C# 编写的。

您可以在下面看到我对 CI 和单独的 CD 管道的 YAML 定义。当我执行管道时,一切正常(都是绿色的)。然而,在部署之后,这是我的 Azure 门户在

Functions
刀片中的样子:

使用 VS Code Azure 扩展并查看我得到的函数应用程序的文件:

当我查看 CI 管道的工件时,一切看起来都很好(下载的 zip 的资源管理器视图):

bin
-文件夹填充在那里。

一些要点:

  • 我在函数应用中没有插槽
  • 部署在相关的 App Insights 中可见。
  • 我的参考点是Microsoft Learn

那么在 VS 代码中搜索时得到 404 是否正常,是否有人遇到过类似的事情甚至知道解决方案?

旁注:

我曾经使用带有扩展安装的 VS Code 来部署我的函数。今天我在部署后收到一条奇怪的错误消息:

CI YAML

pool:
    vmImage: 'ubuntu-latest'

trigger: none

variables:
    - name: 'Solution'
      value: '**/MyProject.sln'
    - name: 'ProjectFilter'
      value: '**/*.csproj'    
    - name: 'BuildConfiguration'
      value: 'Release'

steps:   
    - task: UseDotNet@2
      displayName: Use DotNet 6
      inputs:
          version: '6.0.x'
    - task: DotNetCoreCLI@2
      displayName: Restore
      inputs:
          command: restore
          projects: '$(ProjectFilter)'
    - task: DotNetCoreCLI@2
      displayName: Build
      inputs:
          projects: '$(ProjectFilter)'
          arguments: '--no-restore --configuration $(BuildConfiguration)'    
    - task: DotNetCoreCLI@2
      displayName: Publish Image Converter
      inputs:
          command: publish
          projects: src/Functions/**/MyProject.csproj
          publishWebProjects: false
          arguments: '--no-restore --no-build --configuration $(BuildConfiguration) --output $(Build.DefaultWorkingDirectory)/function_publish_output'
          zipAfterPublish: false
    - task: ArchiveFiles@2
      displayName: Archive Image Converter
      inputs:
          rootFolderOrFile: '$(Build.DefaultWorkingDirectory)/function_publish_output'
          includeRootFolder: false
          archiveFile: '$(Build.ArtifactStagingDirectory)/MyProject.zip'
    - task: PublishBuildArtifacts@1
      displayName: 'Publish Artifact'
      inputs:
          PathtoPublish: '$(Build.ArtifactStagingDirectory)'
      condition: succeededOrFailed()

光盘 YAML

variables:
  - name: 'vmImageName'
    value: 'ubuntu-latest'
  - name: 'serviceConnectionName'
    value: 'MYCONN'
  - name: 'project'
    value: 'MYPROJECT'

resources:
  pipelines:
    - pipeline: ci
      source: 'NAMEOFCI'
      trigger: true

pool:
  vmImage: $(vmImageName)

trigger: none

stages:
  - stage: Production
    displayName: Production
    jobs:
      - deployment: Deploy
        displayName: 'Deploy'
        environment: 'Production'
        pool:
          vmImage: $(vmImageName)
        strategy:
          runOnce:
            deploy:
              steps:
                - download: ci
                  displayName: 'Download Artifact'
                  artifact: drop
                - task: AzureFunctionApp@1
                  displayName: 'Deploy Image Converter Function'
                  inputs:
                    azureSubscription: '$(serviceConnectionName)'
                    appType: functionAppLinux
                    appName: 'fapp-**********-prod'
                    package: '$(Pipeline.Workspace)/ci/drop/MyProject.zip'
                    runtimeStack: 'DOTNET|6.0'

更新

我决定重新部署我的功能,可以再次直接使用 VS Code 进行部署。使用 Azure DevOps Pipeline 仍然给我一个绿色的复选标记,但在门户中看不到函数触发器。

azure azure-devops azure-functions azure-pipelines
1个回答
0
投票

你能检查一下你在文件系统上看到的到底是什么吗?您可以使用控制台或高级工具:

© www.soinside.com 2019 - 2024. All rights reserved.