J'ai pu l'exécuter localement, mais lorsque je l'ai déployé, une erreur s'est produite. Les détails des contre-mesures sont décrits.
** PostScript 6/15 ** Il semble que le plug-in Maven, etc. ait été publié après la rédaction de cet article.
Comme mentionné ci-dessus, cela fonctionne correctement localement à l'aide du plug-in Maven, mais lorsque je le déploie sur Azure et l'exécute, j'obtiens l'erreur suivante:
502-Bad Gateway The specified CGI application encountered an error and the server terminated the process.
D'après ce qui suit, il semble que l'ancien code ait cessé de fonctionner en raison de la sortie du nouveau Runtime. https://stackoverflow.com/questions/50615746/azure-java-function-502-bad-gateway https://github.com/Azure/app-service-announcements/issues/112
Cela fonctionne localement avec l'ancien Runtime, donc ça va, mais quand je le déploie, il s'exécute sur le nouveau Runtime, donc il semble qu'une erreur s'est produite.
J'aimerais le réparer pour qu'il fonctionne avec le nouveau Runtime, mais à partir du 14 juin 2018, je ne peux pas encore gérer cela. En effet, le plugin azure-functions-maven-plugin qui prend en charge cela n'a pas encore été publié.
Par conséquent, nous appliquerons ce qui suit à titre de mesure provisoire.
Spécifiez la version d'exécution sur Azure. Ouvrez les «Paramètres d'application» de l'application de fonction à partir du portail Azure. Remplacez FUNCTIONS_EXTENSION_VERSION par 2.0.11776-alpha. (Il devrait être bêta par défaut.)
De plus, cette version est valable jusqu'à fin juin.
~~ Maven Plugin n'a pas été publié, mais les autres parties qui doivent être traitées sont les suivantes. De plus, comme ce sera une réponse à moitié terminée, ce sera un environnement qui ne fonctionnera même pas localement. ~~
** PostScript 6/15 ** Le plugin Maven correspondant a été publié, donc le support suivant est OK.
Il est supposé que le projet a été créé à partir de Maven Archetype, donc si vous le personnalisez, veuillez le lire comme il convient. ~~ De plus, lorsque azure-functions-maven-plugin est publié, il semble nécessaire de modifier la version spécifiée dans la gestion des plugins. ~~
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure-functions-java-core</artifactId>
<version>1.0.0-beta-3</version>
</dependency>
<dependency>
<groupId>com.microsoft.azure.functions</groupId>
<artifactId>azure-functions-java-library</artifactId>
<version>1.0.0-beta-4</version>
</dependency>
Ici, le paramètre est fait pour ajouter le fichier jar défini par pom au dossier lib. À l'origine, azure-functions-java-core a été défini pour être exclu, alors modifiez-le comme suit pour exclure azure-functions-java-library.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.0.2</version>
<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> <!--ici-->
</configuration>
</execution>
</executions>
</plugin>
Changez la version en 1.0.0-beta-2.
<plugin>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure-functions-maven-plugin</artifactId>
<version>1.0.0-beta-2</version> <!--ici-->
</plugin>
Le package a changé et doit être corrigé.
import com.microsoft.azure.serverless.functions.annotation.*;
import com.microsoft.azure.serverless.functions.*;
import com.microsoft.azure.functions.annotation.*;
import com.microsoft.azure.functions.*;
Il semble que le serverless soit parti.
Quand il s'agissait d'une mise à jour, je ne pouvais pas comprendre la spécification de version, alors je l'ai désinstallée et réinstallée.
npm -g uninstall azure-functions-core-tools
npm -g install azure-functions-core-tools@core
Alors que je pensais écrire cet article, les personnes qui ont récemment commencé à exécuter Azure Functions sur Java ne travaillent même pas localement. (Parce que si vous suivez la procédure, un nouveau Runtime sera installé)
Pour ces personnes, il peut être préférable d'abaisser la version de Runtime et de l'installer.
npm -g uninstall azure-functions-core-tools
npm -g install [email protected]
** PostScript 6/15 ** Depuis la sortie de la version correspondante, je pense qu'il vaut mieux faire des corrections pour prendre en charge le nouveau Runtime au lieu d'abaisser la version de Runtime.