我在JAVA中有Azure函数项目。不幸的是,java并不是很受支持)-:所以,一切都“有点”不同。那么,您能告诉我如何将用java编写的函数项目部署到azure的示例或文档吗?因为我想要的都只是问题的一部分--而且这些部分并不合二为一)-:
不可能构建独立的包(ZIP)并将其部署到几个不同的环境(stages/dev/test/prod)。
尤其是当您使用CI/CD管道时。不可能有一个构建管道和多个部署管道。因为构建必须根据目标部署名称命名(内部目录),所以不独立。这违背了每个环境都有一个构建和几个配置的基本原则。
知道如何在不构建几个构建的情况下解决这个问题吗?谢谢。
编辑: maven "mvn包(+azure-function: package )“准备用目录构建
${projectRoot}/target/azure-functions/${functionResourceName}/...
哪里
/...
压缩为名为:${functionResourceName}.zip的最终蔚蓝包。
因此,"functionResourceName“只是在ZIP文件的名称中(+包含具有相同名称的jar )。但是..。
..。如果您尝试使用(另一个名称)将此ZIP部署到azure函数资源,则会失败。
发布于 2020-10-15 21:29:41
是。我确实手动准备包(使用发布构建工件任务)。
我想分享一下将Java函数包部署到Azure函数的步骤。
以下是我的步骤:
在建造管道中:
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格式)
- 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函数中。
https://stackoverflow.com/questions/64279410
复制相似问题