【问题标题】:Azure Repo - Pipeline - Building Azure Web FunctionAzure Repo - 管道 - 构建 Azure Web 功能
【发布时间】:2019-07-06 12:23:17
【问题描述】:

我在 VSCode 中创建了一个 Azure 函数(.csx 文件),我希望能够将它推送到 Azure Devops Repo 上的一个分支,它会自动构建并部署到 Azure 门户 Web 函数。

我使用了 Azure Function VSCode 扩展,但这并没有达到我的要求。我希望能够将其推送到存储库并让它进行管道构建。

我使用“Azure App Service Deploy”任务创建了一个管道。根据任务的要求,它链接到服务主体,并使用 Azure 资源管理器。它有一个 Azure 订阅、服务名称和资源组。

我已经完成了“保存和排队”,希望一切都正确完成,我会看到分支上的函数转到我在任务中指定的 Azure 函数,但是我收到了一个构建错误提示

“未找到具有指定模式的包 /home/vsts/work/1/s/**/*.zip”。

我没有这个文件,我假设它会尝试获取 .csx 文件。

谁能指引我正确的方向,我迷失在我失败的地方,我的 Azure Function 是 VSCode 错误,我的推动方式是错过了一步还是我的管道错误?

【问题讨论】:

    标签: azure azure-functions azure-pipelines


    【解决方案1】:

    这是我如何构建 azure 函数的示例:

    steps:
    - task: DotNetCoreCLI@2
      displayName: 'restore'
      inputs:
        command: 'restore'
        projects: '**/*.csproj'
        feedsToUse: 'select'
        versioningScheme: 'off'
    
    - task: DotNetCoreCLI@2
      displayName: 'build'
      inputs:
        command: 'build'
        projects: '**/*.csproj'
        feedsToUse: 'select'
        versioningScheme: 'off'
    
    - task: DotNetCoreCLI@2
      displayName: Publish
      inputs:
        command: publish
        publishWebProjects: false
        projects: '**/*.csproj'
        arguments: '--configuration $(buildConfiguration) --output $(build.artifactstagingdirectory)'
        zipAfterPublish: true
    
    - task: PublishBuildArtifacts@1
      displayName: 'artifacts'
      inputs:
        PathtoPublish: '$(Build.ArtifactStagingDirectory)'
        ArtifactName: 'QueueFunction'
        publishLocation: 'Container'
    

    然后发布将是:

    - task: AzureFunctionApp@1
      displayName: 'Azure Function App Deploy'
      inputs:
        azureSubscription: '$(subscriptionId)'
        appType: functionApp
        appName: 'xxxxx'
    

    所以一般来说,您需要构建您的应用程序,然后将其打包并推送到提要。然后就可以在release中推送包了。

    【讨论】:

    • 谢谢你,我一直在使用“gui”端,我猜那是yaml?看起来很简单,所以谢谢......我所做的VSCode方面听起来对吗?事实上它是一个 csx 文件而不是 cs 或 csproj?也只是为了我的理解,为什么你删除了我在最初的操作中说谢谢的地方......
    • 说来话长,但基本上当我开始使用这个网站时,我的帖子都是以同样的方式编辑的(你好\谢谢\等被删除了)。他们说它没有添加与问题相关的任何内容(这是真的)
    • 所以据我所知,压缩函数并上传 zip 文件被认为是首选方式,也就是说,函数 v2 目前不允许使用 .csx 文件
    • 哦,好吧,我假设将文件推送到存储库就足够了,因为在存储库中拥有一个工作副本是有意义的,然后将以正确的方式构建,从而允许其他如果他们需要更新,开发人员只需拉取更新的文件。啊,好吧,我想我会试着把它拉上拉链,看看情况如何。听起来有点尴尬的 atm 做事方式
    • 嗯,这就是软件通常的工作方式,你有源代码,你构建它,你部署它;)
    猜你喜欢
    • 2021-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-24
    • 2020-04-07
    • 1970-01-01
    • 2020-01-30
    • 1970-01-01
    相关资源
    最近更新 更多