首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Azure JAVA函数+针对不同环境的DevOps管道

Azure JAVA函数+针对不同环境的DevOps管道
EN

Stack Overflow用户
提问于 2020-10-09 11:44:49
回答 1查看 568关注 0票数 0

我在JAVA中有Azure函数项目。不幸的是,java并不是很受支持)-:所以,一切都“有点”不同。那么,您能告诉我如何将用java编写的函数项目部署到azure的示例或文档吗?因为我想要的都只是问题的一部分--而且这些部分并不合二为一)-:

  • java使用azure-function-maven-plugin (它是功能核心工具的包装器)。
  • 这个插件准备了滞胀文件夹,该文件夹被压缩到ZIP,并作为“包”部署。
  • 不幸的是,这个滞胀文件夹是根据函数名命名的。因此,ZIP包依赖于目标蔚蓝资源名称。

不可能构建独立的包(ZIP)并将其部署到几个不同的环境(stages/dev/test/prod)。

尤其是当您使用CI/CD管道时。不可能有一个构建管道和多个部署管道。因为构建必须根据目标部署名称命名(内部目录),所以不独立。这违背了每个环境都有一个构建和几个配置的基本原则。

知道如何在不构建几个构建的情况下解决这个问题吗?谢谢。

编辑: maven "mvn包(+azure-function: package )“准备用目录构建

代码语言:javascript
代码运行次数:0
运行
复制
${projectRoot}/target/azure-functions/${functionResourceName}/...

哪里

代码语言:javascript
代码运行次数:0
运行
复制
/... 

压缩为名为:${functionResourceName}.zip的最终蔚蓝包。

因此,"functionResourceName“只是在ZIP文件的名称中(+包含具有相同名称的jar )。但是..。

..。如果您尝试使用(另一个名称)将此ZIP部署到azure函数资源,则会失败。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-16 05:29:41

是。我确实手动准备包(使用发布构建工件任务)。

我想分享一下将Java函数包部署到Azure函数的步骤。

以下是我的步骤:

在建造管道中:

代码语言:javascript
代码运行次数:0
运行
复制
steps:
- task: Maven@3
  displayName: 'Maven pom.xml'
  inputs:
    mavenPomFile: '$(Parameters.mavenPOMFile)'
    options: 'azure-functions:package'

- task: CopyFiles@2
  displayName: 'Copy Files to: $(build.artifactstagingdirectory)'
  inputs:
    SourceFolder: '$(system.defaultworkingdirectory)'
    Contents: '**/azure-functions/**'
    TargetFolder: '$(build.artifactstagingdirectory)'
  condition: succeededOrFailed()

- task: ArchiveFiles@2
  displayName: 'Archive $(Build.ArtifactStagingDirectory)/target/azure-functions/kishazureappfunction'
  inputs:
    rootFolderOrFile: '$(Build.ArtifactStagingDirectory)/target/azure-functions/kishazureappfunction'
    includeRootFolder: false

- task: PublishBuildArtifacts@1
  displayName: 'Publish Artifact: drop'
  inputs:
    PathtoPublish: '$(build.artifactstagingdirectory)'
  condition: succeededOrFailed()

在释放管道:

我使用Azure应用程序服务部署任务。(为了清楚起见,我将其转换为yaml格式)

代码语言:javascript
代码运行次数:0
运行
复制
- task: AzureRmWebAppDeployment@4
  displayName: 'Azure App Service Deploy: kevin1014'
  inputs:
    azureSubscription: kevintest
    appType: functionApp
    WebAppName: kevin1014
    packageForLinux: '$(System.DefaultWorkingDirectory)/_123-Maven-CI/drop/1.zip'
    enableCustomDeployment: true
    DeploymentType: runFromZip

结果:

azure函数名和包名不同。但是它可以成功地部署到Azure函数中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64279410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档