Hejdaの見る夢

一人前のエンジニアを目指して頑張ったこととかをつらつら書くブログ

Raspberry Pi に Web カメラを接続し、写真の撮影をする

概要

Raspberry Pi に Web カメラを付けて、認識・撮影テストをします :)

準備するもの

Raspberry Pi

https://www.raspberrypi.org/products/raspberry-pi-3-model-b/

  • 実物はこんな感じです

f:id:nari_kyu:20210505080235p:plain

  • 使用している OS
$ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

Web カメラ

https://www.logicool.co.jp/ja-jp/products/webcams/hd-webcam-c310n.960-001264.html

  • 実物はこんな感じです

f:id:nari_kyu:20210505080256p:plain

実装

USB 接続する

兎にも角にも Web カメラを Raspberry Pi に USB 接続します

特に注意点はありません ;)

USB 接続を CLI から確認する

  • 以下のコマンドを使用して USB 接続を確認します
lsusb
### 例 USB 接続する前

$ lsusb
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
### 例 USB 接続した後

$ lsusb
Bus 001 Device 004: ID 046d:081b Logitech, Inc. Webcam C310         <---- 追加された
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

---> USB 接続は正常に出来ていることが分かりました

バイスファイルが作成されているか確認する

  • サーバ上に USB カメラのデバイスファイルが作成されている方を確認します
ls -la /dev/video*
### 例 USB 接続する前

$ ls -la /dev/video*
crw-rw----+ 1 root video 81, 4 May  3 11:03 /dev/video10
crw-rw----+ 1 root video 81, 5 May  3 11:03 /dev/video11
crw-rw----+ 1 root video 81, 6 May  3 11:03 /dev/video12
crw-rw----+ 1 root video 81, 0 May  3 11:03 /dev/video13
crw-rw----+ 1 root video 81, 1 May  3 11:03 /dev/video14
crw-rw----+ 1 root video 81, 2 May  3 11:03 /dev/video15
crw-rw----+ 1 root video 81, 3 May  3 11:03 /dev/video16
### 例 USB 接続した後

$ ls -la /dev/video*
crw-rw----+ 1 root video 81, 9 May  3 11:26 /dev/video0         <---- 追加された
crw-rw----+ 1 root video 81, 8 May  3 11:26 /dev/video1         <---- 追加された
crw-rw----+ 1 root video 81, 4 May  3 11:03 /dev/video10
crw-rw----+ 1 root video 81, 5 May  3 11:03 /dev/video11
crw-rw----+ 1 root video 81, 6 May  3 11:03 /dev/video12
crw-rw----+ 1 root video 81, 0 May  3 11:03 /dev/video13
crw-rw----+ 1 root video 81, 1 May  3 11:03 /dev/video14
crw-rw----+ 1 root video 81, 2 May  3 11:03 /dev/video15
crw-rw----+ 1 root video 81, 3 May  3 11:03 /dev/video16

---> /dev/video0/dev/video1 が作成されていれば、OK です

Web カメラで写真を撮影をする

  • CLI で Web カメラを実行するために、 fswebcam コマンドをインストールします
sudo apt update
sudo apt install -y fswebcam
  • 写真を撮影をします
mkdir ~/camera-test
cd ~/camera-test
fswebcam image.jpg
### 例

$ fswebcam image.jpg
--- Opening /dev/video0...
Trying source module v4l2...
/dev/video0 opened.
No input was specified, using the first.
Adjusting resolution from 384x288 to 352x288.
--- Capturing frame...
Captured frame in 0.00 seconds.
--- Processing captured image...
Writing JPEG image to 'image.jpg'.
  • 写真が出来ているのを確認します
$ ls -lh
total 80K
-rw-r--r-- 1 pi pi 78K May  5 05:28 image.jpg

f:id:nari_kyu:20210505080317p:plain

---> 基本的な使い方はこれだけです :)

注意点

fswebcam コマンドはデフォルトで /dev/video0 をソース元として指定しています

故に Web カメラを Raspberry Pi に接続した際に /dev/video0 がちゃんと作成されているか確認して下さい

また、同じ現象は Node-Red の node-red-contrib-usbcamera ノード を使った際も発生しますので、しっかり確認しておいて下さい :)

Node-Red で Web カメラを使う記事も後日作成予定です ;)

おまけ

  • fswebcam コマンドのオプションを調べます
    • かなり多機能なのでこれだけでもいろいろ出来そうですね :)
$ fswebcam --help
Usage: fswebcam [<options>] <filename> [[<options>] <filename> ... ]

 Options:

 -?, --help                   Display this help page and exit.
 -c, --config <filename>      Load configuration from file.
 -q, --quiet                  Hides all messages except for errors.
 -v, --verbose                Displays extra messages while capturing
     --version                Displays the version and exits.
 -l, --loop <seconds>         Run in loop mode.
 -b, --background             Run in the background.
 -o, --output <filename>      Output the log to a file.
 -d, --device <name>          Sets the source to use.
 -i, --input <number/name>    Selects the input to use.
 -t, --tuner <number>         Selects the tuner to use.
 -f, --frequency <number>     Selects the frequency use.
 -p, --palette <name>         Selects the palette format to use.
 -D, --delay <number>         Sets the pre-capture delay time. (seconds)
 -r, --resolution <size>      Sets the capture resolution.
     --fps <framerate>        Sets the capture frame rate.
 -F, --frames <number>        Sets the number of frames to capture.
 -S, --skip <number>          Sets the number of frames to skip.
     --dumpframe <filename>   Dump a raw frame to file.
 -s, --set <name>=<value>     Sets a control value.
     --revert                 Restores original captured image.
     --flip <direction>       Flips the image. (h, v)
     --crop <size>[,<offset>] Crop a part of the image.
     --scale <size>           Scales the image.
     --rotate <angle>         Rotates the image in right angles.
     --deinterlace            Reduces interlace artifacts.
     --invert                 Inverts the images colours.
     --greyscale              Removes colour from the image.
     --swapchannels <c1c2>    Swap channels c1 and c2.
     --no-banner              Hides the banner.
     --top-banner             Puts the banner at the top.
     --bottom-banner          Puts the banner at the bottom. (Default)
     --banner-colour <colour> Sets the banner colour. (#AARRGGBB)
     --line-colour <colour>   Sets the banner line colour.
     --text-colour <colour>   Sets the text colour.
     --font <[name][:size]>   Sets the font and/or size.
     --no-shadow              Disables the text shadow.
     --shadow                 Enables the text shadow.
     --title <text>           Sets the main title. (top left)
     --no-title               Clears the main title.
     --subtitle <text>        Sets the sub-title. (bottom left)
     --no-subtitle            Clears the sub-title.
     --timestamp <format>     Sets the timestamp format. (top right)
     --no-timestamp           Clears the timestamp.
     --gmt                    Use GMT instead of local timezone.
     --info <text>            Sets the info text. (bottom right)
     --no-info                Clears the info text.
     --underlay <PNG image>   Sets the underlay image.
     --no-underlay            Clears the underlay.
     --overlay <PNG image>    Sets the overlay image.
     --no-overlay             Clears the overlay.
     --jpeg <factor>          Outputs a JPEG image. (-1, 0 - 95)
     --png <factor>           Outputs a PNG image. (-1, 0 - 10)
     --save <filename>        Save image to file.

まとめ

Raspberry Pi に Web カメラを接続し、写真の撮影をするやり方を書きました

途中使用した fswebcam コマンドも多機能なので、これから色々使ってみたいと思います

Have fun !! :)

Raspberry Pi に Jenkins をインストールする

概要

宅内に簡単なジョブ基盤が欲しいと思っていたところ、使用していない Raspberry Pi があったので Jenkins をインストールしてみようと思いました

結果から書くと、公式ドキュメントの通りにやると出来ます :)

https://www.jenkins.io/doc/book/installing/linux/

実際にやってみる

使用する Raspberry Pi のスペック

$ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
$ uname -a
Linux raspi 5.10.17-v7+ #1403 SMP Mon Feb 22 11:29:51 GMT 2021 armv7l GNU/Linux
$ cat /proc/version
Linux version 5.10.17-v7+ (dom@buildbot) (arm-linux-gnueabihf-gcc-8 (Ubuntu/Linaro 8.4.0-3ubuntu1) 8.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #1403 SMP Mon Feb 22 11:29:51 GMT 2021

Java のインストール

  • apt を更新する
sudo apt update
  • インストール出来る最新の OpenJDK を探します
$ sudo apt search openjdk | grep jre

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

default-jre/stable 2:1.11-71+b1 armhf
default-jre-headless/stable 2:1.11-71+b1 armhf
openjdk-10-jre/stable 10.0.2+13-2 armhf
openjdk-10-jre-headless/stable 10.0.2+13-2 armhf
openjdk-10-jre-zero/stable 10.0.2+13-2 armhf
openjdk-11-jre/stable 11.0.9.1+1-1~deb10u2 armhf
openjdk-11-jre-headless/stable 11.0.9.1+1-1~deb10u2 armhf
openjdk-8-jre/stable 8u212-b01-1+rpi1 armhf
openjdk-8-jre-headless/stable 8u212-b01-1+rpi1 armhf
openjdk-8-jre-zero/stable 8u212-b01-1+rpi1 armhf
openjdk-9-jre/stable 9.0.4+12-4 armhf
openjdk-9-jre-headless/stable 9.0.4+12-4 armhf
openjdk-9-jre-zero/stable 9.0.4+12-4 armhf
  • LTS である Java 11 に対応する openjdk-11-jre がインストール出来そうなので、このバージョンをインストールしましょう
sudo apt install openjdk-11-jre
  • OpenJDK の確認します
$ java --version
openjdk 11.0.9.1 2020-11-04
OpenJDK Runtime Environment (build 11.0.9.1+1-post-Raspbian-1deb10u2)
OpenJDK Server VM (build 11.0.9.1+1-post-Raspbian-1deb10u2, mixed mode)

Jenkins のインストール

wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > \
    /etc/apt/sources.list.d/jenkins.list'
sudo apt-get update
sudo apt-get install jenkins
  • Jenkins のデーモンを確認します
$ sudo systemctl status jenkins
● jenkins.service - LSB: Start Jenkins at boot time
   Loaded: loaded (/etc/init.d/jenkins; generated)
   Active: active (exited) since Tue 2021-04-20 22:50:21 JST; 1min 6s ago
     Docs: man:systemd-sysv-generator(8)
    Tasks: 0 (limit: 2062)
   CGroup: /system.slice/jenkins.service

Apr 20 22:50:19 raspi systemd[1]: Starting LSB: Start Jenkins at boot time...
Apr 20 22:50:19 raspi jenkins[3495]: Correct java version found
Apr 20 22:50:19 raspi su[3554]: (to jenkins) root on none
Apr 20 22:50:19 raspi su[3554]: pam_unix(su-l:session): session opened for user jenkins by (uid=0)
Apr 20 22:50:20 raspi su[3554]: pam_unix(su-l:session): session closed for user jenkins
Apr 20 22:50:21 raspi jenkins[3495]: Starting Jenkins Automation Server: jenkins.
Apr 20 22:50:21 raspi systemd[1]: Started LSB: Start Jenkins at boot time.
  • ブラウザから初期設定を行います
http://IP_ADDRESS:8080
  • 準備中…

f:id:nari_kyu:20210422024728p:plain

  • まずは admin としてログイン & 初期設定を行うために表記されている PATH にあるファイルから admin のパスワードをコピペします

f:id:nari_kyu:20210422024803p:plain

  • Jenkins の Plugin のインストール画面では suggested を選びます

f:id:nari_kyu:20210422024832p:plain

  • admin 以外のユーザの作成をします
    • ここでは作成せずに、admin のまま進めます

f:id:nari_kyu:20210422024848p:plain

  • Jenkins の URL の設定を入れます
    • ここも後でゆっくりと設定したほうがいいでしょう

f:id:nari_kyu:20210422024904p:plain

  • これで初期設定は完了です!!
    • 設定しなかった項目は後ほど設定しましょう

f:id:nari_kyu:20210422024917p:plain

  • Jenkins のようこそページが見れるようになりました :)

f:id:nari_kyu:20210422024930p:plain

---> これで Jenkins on Raspberry Pi の基礎構築が完了しました! :)

その他、最低限設定しておいたほうが良いこと

Jenkins の Version

  • Jenkins の Version はコンフィグに書いてあるので確認出来ます
$ sudo cat /var/lib/jenkins/config.xml | grep "version" | grep -v "xml"
  <version>2.277.2</version>

Jenkins CLI

Jenkins には便利な CLI があるので実行出来るようにしておきましょう

  • 以下の URL にアクセスし、 jenkins-cli.jar をダウンロードしておきます
    • ダウンロード後にサーバにコピーして下さい
http://IP_ADDRESS:8080/cli/
  • 直接サーバ上でダウンロードする場合は以下のようにします
cd /usr/local/bin
sudo wget http://localhost:8080/jnlpJars/jenkins-cli.jar
sudo chmod 0755 jenkins-cli.jar

admin のパスワード

  • admin の初期パスワードは ${JENKINS_HOME}/secrets/initialAdminPassword にあります
export JENKINS_HOME='/var/lib/jenkins'

cat ${JENKINS_HOME}/secrets/initialAdminPassword

記事中にも書きましたが、admin ユーザ以外の設定を必ずしましょう

ログローテートの設定

Jenkins のログに対してのローテートの設定( /etc/logrotate.d/jenkins )を変更しておきます

  • 修正前
/var/log/jenkins/jenkins.log /var/log/jenkins/access_log {
        weekly
        copytruncate
        missingok
        rotate 52
        compress
        delaycompress
        notifempty
}
  • 修正後
/var/log/jenkins/*.log
{
    daily
    missingok
    dateext
    rotate 52
    compress
    delaycompress
    notifempty
    create 644 jenkins jenkins
    sharedscripts
    postrotate
        if [ -f /var/run/jenkins ]; then
            kill -USR1 `cat /var/run/jenkins`
        fi
    endscript
}
  • ドライランをします
sudo /usr/sbin/logrotate -dv /etc/logrotate.d/jenkins
  • 強制実行をします
sudo /usr/sbin/logrotate -f /etc/logrotate.d/jenkins

Systemd について

  • 固有の状況かもしれませんが、 Jenkins の Systemd の設定が以下の PATH にありました
/run/systemd/generator.late/jenkins.service
  • 内容は以下のようです
    • /run/systemd/generator.late/jenkins.service
# Automatically generated by systemd-sysv-generator

[Unit]
Documentation=man:systemd-sysv-generator(8)
SourcePath=/etc/init.d/jenkins
Description=LSB: Start Jenkins at boot time
Before=multi-user.target
Before=multi-user.target
Before=multi-user.target
Before=graphical.target
After=remote-fs.target
After=network-online.target
Wants=network-online.target

[Service]
Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=yes
SuccessExitStatus=5 6
ExecStart=/etc/init.d/jenkins start
ExecStop=/etc/init.d/jenkins stop

まとめ

Raspberry Pi に Jenkins をインストールし起動するやり方を書きました

宅内の簡単な処理を行うジョブ基盤としてしばらく使ってみようと思います

Have fun !! :)

Raspbian で unrar コマンドが古かったので最新にした

概要

Raspberry PI 専用の OS である、 Raspbian にて unrar コマンドが古かったので最新にしました

インターネット上で転がっている情報だとすこし情報が足りなかったので、今回の記事にまとめました

実際にやってみる

確認

  • OS のバージョンの確認
$ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
  • アーキテクトの確認
$ uname -a
Linux raspberrypi 5.10.17-v7+ #1403 SMP Mon Feb 22 11:29:51 GMT 2021 armv7l GNU/Linux
  • 現状の unrar の確認
$ unrar --version
unrar 0.0.1

---> これが古すぎる
  • 実行ファイルの確認
$ which unrar
/usr/bin/unrar
$ ls -la /usr/bin/ | grep unrar
lrwxrwxrwx  1 root root         23 Mar 24 06:26 unrar -> /etc/alternatives/unrar
-rwxr-xr-x  1 root root      31004 Oct 16  2017 unrar-free
$ ls -la /etc/alternatives/unrar
lrwxrwxrwx 1 root root 19 Mar 24 06:26 /etc/alternatives/unrar -> /usr/bin/unrar-free

unrar のアンインストール

  • 古い unrar のアンインストール
sudo apt remove unrar unrar-free
  • 確認
    • 何も出なければOK
which unrar
ls -la /usr/bin/ | grep unrar

新しい unrar のインストール

echo "deb-src http://mirrordirector.raspbian.org/raspbian/ $(cat /etc/os-release | grep VERSION_CODENAME | awk -F\= '{print $2}') main contrib non-free rpi" | sudo tee -a /etc/apt/sources.list
$ cat /etc/apt/sources.list
deb http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi
deb-src http://mirrordirector.raspbian.org/raspbian/ buster main contrib non-free rpi
  • apt のアップデート
sudo apt update
mkdir -p /tmp/unrar-nonfree && chmod 0777 /tmp/unrar-nonfree && cd /tmp/unrar-nonfree
  • unrar-nonfree に必要な依存関係をインストール
sudo apt build-dep unrar-nonfree
  • unrar-nonfree ソースをダウンロードし、 .deb パッケージをビルド
sudo apt source -b unrar-nonfree
  • 生成された .deb パッケージをインストール
    • unrar-nonfree のバージョンによって異なるため * を使用
sudo dpkg -i unrar*.deb

---> これでインストールが出来ました :)

新しい unrar の確認

  • Version の確認
    • オプションが version なので注意
    • help みたいにオプションの説明も入ってくるので head で適宜情報をカットする
unrar version
### 例


$ unrar version | head -n 6

UNRAR 5.61 beta 1 freeware      Copyright (c) 1993-2018 Alexander Roshal

Usage:     unrar <command> -<switch 1> -<switch N> <archive> <files...>
               <@listfiles...> <path_to_extract\>
  • 実行ファイルの確認
$ which unrar
/usr/bin/unrar
$ ls -la /usr/bin/ | grep unrar
lrwxrwxrwx  1 root root         23 Mar 24 06:40 unrar -> /etc/alternatives/unrar
-rwxr-xr-x  1 root root     389048 Oct 24  2018 unrar-nonfree
$ ls -la /etc/alternatives/unrar
lrwxrwxrwx 1 root root 22 Mar 24 06:40 /etc/alternatives/unrar -> /usr/bin/unrar-nonfree

---> 今度は unrar-nofree が実体となっていることが分かります。

  • .deb パッケージを削除
cd && rm -rv /tmp/unrar-nonfree

注意点

sudo apt source -b unrar-nonfree

このコマンド実行中に _apt ユーザで一部作業をするので、 上記のコマンドは _apt ユーザがアクセスし作業出来るディレクトリでやる必要があります

### 権限エラーの例

W: Download is performed unsandboxed as root as file 'unrar-nonfree_5.6.6-1.dsc' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)

参考

VadimBrodsky/install-unrar-nonfree-raspbian.sh
https://gist.github.com/VadimBrodsky/1f567067e2cd438312bb9fd57095a806

まとめ

これで unrar コマンドのアップデート出来ました

Have fan !! :)

Cloud Build Trigger が指定した時間に実行( Run on schedule )出来るようになったので試してみる

概要

Cloud Build の Trigger を指定した時間に実行する機能が追加実装されました。

その機能をさっそく使ってみようと思います :)

なお、 2021 年 2 月の時点では Preview となっています。

Cloud Build とは

GCP のフルマネージドの CI/CD 基盤であり、昨今の DevOps には欠かせない機能の一つです。

Cloud Build

今回の追加機能について

今までは Cloud Build を実行するトリガーは、連携している Repository に対してのイベントをフックするか、 API 的に外部から実行するしかありませんでした。

新しい追加機能は Cloud Build から Cloud Scheduler を直接設定することが出来るようになりました。

つまり…

今まで、 Cloud Build を定期実行させたい場合は自分で以下の構成をする必要がありました。

  • Cloud Scheduler -> Cloud Pub/Sub -> Cloud Functions -> Cloud Build

f:id:nari_kyu:20210215231314p:plain

今回の追加機能では以下のよう(※ ユーザが実装する部分という意味で)になります。

  • Cloud Scheduler -> Cloud Build

f:id:nari_kyu:20210215231317p:plain

意識して管理するコンポーネントが減るので運用負荷が減り、サービス開発においても出来ることが増えるので、早めに習得しておきましょう :)

公式ドキュメント

Creating manual triggers | Scheduling your build

実際にやってみる

Cloud Build Trigger を作成

GCP コンソールより、 Cloud Build をクリック

f:id:nari_kyu:20210215231319p:plain

Cloud Build の API を有効化する(初回のみ)

f:id:nari_kyu:20210215231323p:plain

Cloud Build の画面( History )

f:id:nari_kyu:20210215231326p:plain

Cloud Build の画面( Triggers ) に移動し、 CREATE TRIGGER をクリック

f:id:nari_kyu:20210215231329p:plain

テスト的に Trigger を作成する

他の設定はデフォルトのままで。

設定を入れたら CREATE をクリック

f:id:nari_kyu:20210215231333p:plain

Cloud Build Trigger の作成が完了したので RUN をクリック

f:id:nari_kyu:20210215231337p:plain

main ブランチを選択し、 Trigger を実行

f:id:nari_kyu:20210215231341p:plain

History をクリックし、実際の実行結果を確認するために実行中の Build をクリック

f:id:nari_kyu:20210215231344p:plain

Build の内容を確認し、正常に実行出来ているかを確認する

f:id:nari_kyu:20210215231346p:plain

作成した Cloud Build Trigger を定期実行するように設定する

Cloud Scheduler の API を有効化する

下記の URL を別タブで開き、 Cloud Scheduler の API を有効化する

https://console.cloud.google.com/marketplace/product/google/cloudscheduler.googleapis.com

f:id:nari_kyu:20210215231350p:plain

作成した Trigger のケバブメニュー(縦に3つの点があるボタン)をクリック

f:id:nari_kyu:20210215231353p:plain

Run on schedule をクリック

f:id:nari_kyu:20210215231355p:plain

Cloud Scheduler で使用する Service Account を選択し、 CONTINUE をクリック

デフォルトで選択されているものを使用する

f:id:nari_kyu:20210215231359p:plain

Cloud Scheduler を実行するリージョンを選択するために、 SET REGION をクリック

f:id:nari_kyu:20210215231403p:plain

Cloud Scheduler を実行するリージョンを選択する

asia-northeast1 を選択

f:id:nari_kyu:20210215231406p:plain

Cloud Scheduler の設定をする

  • Name : Cloud Scheduler の Job 名
  • Frequency: 繰り返しの設定
  • TimeZone: 繰り返しの設定のタイムゾーン

今回は 5 分毎に実行するように設定する

f:id:nari_kyu:20210215231409p:plain

作成完了

f:id:nari_kyu:20210215231413p:plain

History をクリックし、定期実行されるのを待つ

f:id:nari_kyu:20210215231416p:plain

1 時間くらい待った結果、ちゃんと 5 分毎に実行されているのが分かる

f:id:nari_kyu:20210215231419p:plain

まとめ

今回は Cloud Build の追加機能を試してみました。

サービス開発がより効率的に出来るようになるので、 GA (General Availability) が楽しみですね!!

なお繰り返しになりますが、この記事を書いている時点ではこの追加機能は Preview なので、ご利用は自己責任かつ計画的にお願いします。

Have fun !! :)