TimerTrigger/SpringBatch

Azure Functionsのプログラムを2023年9月30日に動作できるよう修正してみた

このブログでは、Azure Functionsを利用したプログラムを何度か取り上げているが、2023/9/30(土)に、以前作成したプログラムを実行したところ、いくつかの修正をしないと実行できないことが判明した。

今回は、以前作成したプログラムの1つを、2023/9/30(土)に動作できるよう修正してみたので、そのサンプルプログラムを共有する。

前提条件

下記記事のサンプルプログラムを作成済であること。

TimerTriggerによって動作するAzure Function上でSpring Batch(Chunkモデル)を利用してみたこれまでは、Spring BatchのTaskletモデルを利用してきたが、ファイルの読み込み/データの加工/DBへの書き込みといった処...

サンプルプログラムの作成

作成したサンプルプログラムの構成は、以下の通り。
サンプルプログラムの構成
なお、上記の赤枠は、今回変更したプログラムである。

pom.xmlの変更内容は以下の通りで、repository・pluginRepositoryの設定内容を変更している。

<repositories>
    <repository>
        <id>spring-snapshots</id>
        <name>Spring Snapshots</name>
        <url>https://repo.spring.io/plugins-snapshot</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
        <releases>
            <enabled>false</enabled>
        </releases>
    </repository>
    <repository>
        <id>spring-milestones</id>
        <name>Spring Milestones</name>
        <url>https://repo.spring.io/plugins-milestone</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>
<pluginRepositories>
    <pluginRepository>
        <id>spring-snapshots</id>
        <name>Spring Snapshots</name>
        <url>https://repo.spring.io/plugins-snapshot</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
        <releases>
            <enabled>false</enabled>
        </releases>
    </pluginRepository>
    <pluginRepository>
        <id>spring-milestones</id>
        <name>Spring Milestones</name>
        <url>https://repo.spring.io/plugins-milestone</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </pluginRepository>
</pluginRepositories>

なお、上記は、以下のサイトの変更内容を受けて変更している。
https://spring.io/blog/2022/12/14/notice-of-permissions-changes-to-repo-spring-io-january-2023

また、local.setting.jsonの内容は以下の通りで、「JAVA_HOME」の指定を追加している。

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "DefaultEndpointsProtocol=https;AccountName=azureblobpurinit;AccountKey=(Azure Blob Storageのアクセスキー)",
    "FUNCTIONS_WORKER_RUNTIME": "java",
    "MAIN_CLASS":"com.example.DemoAzureFunction",
    "AzureWebJobsDashboard": "",
    "JAVA_HOME": "C:\\Program Files\\Java\\jdk1.8.0_271"
  }
}

なお、上記は、「mvn azure-functions:run」コマンド実行時に、以下のエラーログが出力されたことを受け変更している。
Azure Functionエラーログ

その他のソースコード内容は、以下のサイトを参照のこと。
https://github.com/purin-it/azure/tree/master/azure-functions-20230930/demoAzureFunc

サンプルプログラムの実行結果

サンプルプログラムの実行結果は、以下の記事と同様になる。

TimerTriggerによって動作するAzure Function上でSpring Batch(Chunkモデル)を利用してみたこれまでは、Spring BatchのTaskletモデルを利用してきたが、ファイルの読み込み/データの加工/DBへの書き込みといった処...