我将遵循下面的microsoft教程,并尝试使用mvn azure functions:deploy命令部署我的azure功能。我的函数app name/artifactid是ci cd demo:https://azure.microsoft.com/en-us/resources/videos/azure-friday-java-in-azure-functions/
但是,我收到一个错误:
[ERROR] Failed to execute goal com.microsoft.azure:azure-functions-maven-plugin:1.4.1:deploy (default-cli) on project ci-cd-demo: ci-cd-demod9632762a is not a valid storage account name. Storage account name mu
st be between 3 and 24 characters in length and use numbers and lower-case letters only.
我登录到Azure门户并创建了一个存储帐户。我还通过命令行中的Azure CLI手动完成了此操作。存储帐户是"cicddemo777"。
看起来好像当我运行mvn azure-函数:部署时,项目找不到存储帐户,所以它创建了一个存储帐户,并在我的函数应用名称的末尾追加了一堆数字。我有函数应用程序名称,资源组,appservice计划和区域变量在我的pom.xml下的azure-函数-maven-plugin。
有没有办法在我的项目中为我的azure存储帐户定义属性变量,这样我就可以成功地运行带有此错误的azure functions:deploy命令?
更新:
感谢恩思的分享。此错误来自更改函数AppName。
(由于FunctionAppName在部署时需要在世界各地都是唯一的,因此默认情况下它将生成一个数字字符串。)
原始答案:
mvn azure-函数:部署
主要是第一次使用,因为没有指定它产生的文件。它会产生随机资源,这是经过设计的。
看看这个:
https://docs.microsoft.com/en-us/azure/azure-functions/functions-create-first-java-maven?pivots=java-构建工具maven#将功能部署到azure
使用mvn azure功能:部署不应该面临问题。你在pom中设置了什么吗。xml?存储帐户名中不能有类似于-
的字符。
这是我的pom。xml,这是没有问题的:
http://maven.apache.org/xsd/maven-4.0.0.xsd"
<groupId>com.function</groupId>
<artifactId>ci-cd-demo</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>Azure Java Functions</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<azure.functions.maven.plugin.version>1.4.1</azure.functions.maven.plugin.version>
<azure.functions.java.library.version>1.3.1</azure.functions.java.library.version>
<functionAppName>ci-cd-demo-20200406102526581</functionAppName>
<stagingDirectory>${project.build.directory}/azure-functions/${functionAppName}</stagingDirectory>
</properties>
<repositories>
<repository>
<id>maven.snapshots</id>
<name>Maven Central Snapshot Repository</name>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>maven.snapshots</id>
<name>Maven Central Snapshot Repository</name>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.4.2</version>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>2.23.4</version>
</dependency>
<dependency>
<groupId>com.microsoft.azure.functions</groupId>
<artifactId>azure-functions-java-library</artifactId>
<version>${azure.functions.java.library.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>com.microsoft.azure.functions</groupId>
<artifactId>azure-functions-java-library</artifactId>
</dependency>
<!-- Test -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure-functions-maven-plugin</artifactId>
<version>${azure.functions.maven.plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.1.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure-functions-maven-plugin</artifactId>
<configuration>
<!-- function app name -->
<appName>${functionAppName}</appName>
<!-- function app resource group -->
<resourceGroup>java-functions-group</resourceGroup>
<!-- function app service plan name -->
<appServicePlanName>java-functions-app-service-plan</appServicePlanName>
<!-- function app region-->
<!-- refers https://github.com/microsoft/azure-maven-plugins/tree/develop/azure-functions-maven-plugin#supported-regions for all valid values -->
<region>westus</region>
<!-- function pricingTier, default to be consumption if not specified -->
<!-- refers https://github.com/microsoft/azure-maven-plugins/tree/develop/azure-functions-maven-plugin#supported-pricing-tiers for all valid values -->
<!-- <pricingTier></pricingTier> -->
<runtime>
<!-- runtime os, could be windows, linux or docker-->
<os>windows</os>
<!-- for docker function, please set the following parameters -->
<!-- <image>[hub-user/]repo-name[:tag]</image> -->
<!-- <serverId></serverId> -->
<!-- <registryUrl></registryUrl> -->
</runtime>
<appSettings>
<property>
<name>FUNCTIONS_EXTENSION_VERSION</name>
<value>~3</value>
</property>
</appSettings>
</configuration>
<executions>
<execution>
<id>package-functions</id>
<goals>
<goal>package</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-resources</id>
<phase>package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<overwrite>true</overwrite>
<outputDirectory>${stagingDirectory}</outputDirectory>
<resources>
<resource>
<directory>${project.basedir}</directory>
<includes>
<include>host.json</include>
<include>local.settings.json</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${stagingDirectory}/lib</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
<includeScope>runtime</includeScope>
<excludeArtifactIds>azure-functions-java-library</excludeArtifactIds>
</configuration>
</execution>
</executions>
</plugin>
<!--Remove obj folder generated by .NET SDK in maven clean-->
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<filesets>
<fileset>
<directory>obj</directory>
</fileset>
</filesets>
</configuration>
</plugin>
</plugins>
</build>
在大多数情况下,您应该选择func azure functionapp publish
https://docs.microsoft.com/en-us/azure/azure-functions/functions-run-local?tabs=windows,csharp,bash#发布
我想将云服务部署到Azure,但在部署时必须选择存储帐户(在新门户和Visual Studio 2015中都尝试过)。我的存储帐户是使用新门户“存储帐户”创建的,并分配给了某些资源组,因此在部署时我无法选择它。对如何部署有何建议?
在创建带有专用(标准)应用服务计划的Azure功能时,我希望“链接”的文件服务并没有“链接”到存储帐户。但是,存储帐户的创建是正确的。当我转到Azure存储帐户刀片并找到文件存储时,Azure没有将文件服务链接到存储帐户。使用Windows桌面软件Microsoft Azure Storage Explorer(0.9.6)时,我看不到任何链接文件共享。 当我转到Azure函数的高级工具(Kudo
我目前正在与一个客户合作,该客户要求尽可能多地锁定所有Azure资源的访问权限,我对Azure功能使用的存储帐户有问题。 在门户中的防火墙和虚拟网络刀片设置为“所有网络”后,我可以部署到功能应用程序,它运行时不会出现问题。 然而,一旦我通过检查“选定网络”启用访问限制,无论我输入的是什么虚拟网络子网或IP地址,我都无法使通信正常工作 我已经输入了我们基于消费的功能应用程序的出站IP地址,还检查了P
我使用ServiceBustigger创建了一个Azure Function应用程序(监听主题订阅)。很好。但是现在我试图制作一个QueueTrigger来监听一个简单的队列,但是我得到了以下错误。 我也是这样做的。我在Visual Studio中创建了一个新项目,并将其指向我在Azure上的存储帐户。指定了队列名称。队列存在。我尝试创建一个新的共享访问策略。已将连接字符串复制到本地。设置。jso
最近,我遇到了通过Azure CLI部署函数应用的问题。上周二,我仍然能够通过Azure CLI部署一个函数应用。 本周,和之前的任何一天一样,我使用了相当常见的Azure Function Tools命令。我使用的Azure Function Tools版本是3.0.3233。 现在我每次都会遇到这样的错误: 我检查了AzureWebJobsStorage设置的值是否正确,我甚至通过Azure
我想要实现什么 通过Azure Function连接到位于防火墙后面的Azure BLOB存储帐户。 迄今为止采取的步骤 Azure Function针对按预期工作的公共存储帐户开发和测试。 在我的Azure Function的Azure资源管理器之后,我找到出站地址(条目),并将它们添加到存储帐户的防火墙中。 问题 在尝试对具有防火墙的存储帐户运行Azure功能时,我收到一个状态:500内部服务