エンジニア成長日記

成長するにはインプットばかりでなく、アウトプットも必要である。日々の成長記録を書き留めていきたい。

Azure Function を利用したプログラミング(Python)

Azure Function を利用したプログラミング(Python

Azure Function を利用したプログラミング中に発生したエラーの備忘録

〇現状

Azure Functions → ADLS Gen2の一覧を取得時に発生したエラー

2020-07-24T10:37:42.708 [Error] Executed 'Functions.TimerTrigger1' (Failed, Id=XXXXXXXXXXXXX)Result: FailureException: ModuleNotFoundError: No module named 'azure.storage'. Troubleshooting Guide: https://aka.ms/functions-modulenotfoundStack:   File "/azure-functions-host/workers/python/3.8/LINUX/X64/azure_functions_worker/dispatcher.py", line 255, in _handle__function_load_requestfunc = loader.load_function(File "/azure-functions-host/workers/python/3.8/LINUX/X64/azure_functions_worker/utils/wrappers.py", line 31, in callraise extend_exception_message(e, message)File "/azure-functions-host/workers/python/3.8/LINUX/X64/azure_functions_worker/utils/wrappers.py", line 29, in callreturn func(*args, **kwargs)File "/azure-functions-host/workers/python/3.8/LINUX/X64/azure_functions_worker/loader.py", line 73, in load_functionmod = importlib.import_module(fullmodname)File "/usr/local/lib/python3.8/importlib/__init__.py", line 127, in import_modulereturn _bootstrap._gcd_import(name[level:], package, level)File "/home/site/wwwroot/TimerTrigger1/__init__.py", line 7, in <module>from azure.storage.filedatalake import DataLakeServiceClient

〇原因

プログラム内で利用しているライブラリがない場合に発生するエラー。

〇対応

Pythonでは、「requirements.txt」というファイルに依存パッケージを記載することで読み込むことが可能である。

Azure Functionsでは、既定でリモート ビルド時に当該ファイルを参照し、依存パッケージを動的にダウンロードする。

※参考:Azure Functions の Python 開発者向けリファレンス | Microsoft Docs

iscsiadmコマンドを使用したアクセス手順

はじめに

Linux環境にて、「iscsiadm」コマンドを利用したiscsiのストレージにアクセスする際の備忘録です。 ターゲット側のホストがIP192.168.1.2の場合を想定しています。

iscsiターゲット側(接続先)にアクセスする場合、イニシエータ側(接続元)での手順は次の2段階によって設定します。

前提

  • iscsiadmコマンドを実行時は、iscsidデーモンが起動していること。

接続手順

1.ターゲットを検知します。

iscsiadmコマンドに次のオプションを指定します。

  • モード(-m)=「discovery」モード
  • タイプ(-t)=「sendtargets」タイプ
iscsiadm -m discovery -t sendtargets -p 192.168.1.2

※補足

一度検知したターゲット情報は「/var/lib/iscsi」、ディストリビューションによっては、「/etc/iscsiディレクトリ配下のDBに保持されます。   

2.検知したターゲットにログインします。

ターゲットにログインする方法には、手動と自動の2種類があります。

設定ファイル(/etc/iscsi.conf)に次の指定をすることで、ログインの挙動を変更することが可能です。

  • 自動 = node.startup=automatic
  • 手動 = node.startup=manual

手動でログインする場合は、iscsiadmコマンドに次のオプションを指定します。

  • モード(-m)=「node」モード
  • ログイン(--login)
  • ターゲット(-p)=ホスト名、IPアドレス
iscsiadm -m node --login -p 192.168.1.2

接続確認

ログインセッションが確立したことを確認する場合、iscsiadmコマンドに次のオプションを指定します。

  • モード(-m)=「node」モード
iscsiadm -m session
tcp: [1] 192.168.1.2:3260,1 iqn.2016-10.mystrage.exzample.com:target

メモ. iSCSIの識別子に関する知識

iscsiのターゲットやイニシエータには、一意に識別するために、次の2種類が存在します。

iqn(iSCSI Qualified Name)

書式

iqn.yyyy-mm.<reversed domain name>:identifier

yyyy-mm:ドメイン取得日、identifier:任意の名前
eui(Extended Unique Identifier)

書式

eui.<IEEE EUI-64フォーマット(16桁16進数>
上位6桁:IEEEが企業に発行したOUI、下位10桁:企業内に一意で割り当てる番号

CentOS7.1 minimal インストールした環境にGUIを導入する手順

概要

CentOS7.1 minimal でインストール後、OracleのOUIを利用したインストールなどでGUIが必要になる場合があります。 今回は、GNOMEデスクトップ環境を導入する手順を記述します。

インストール手順

X Windows 関連のパッケージインストール

# yum -y groupinstall "X Window System"

# yum -y groupinstall "GNOME Desktop"

CUIGUI切り替え

一時的にGUIへ切り替える場合

  • Xウィンドウシステムを起動する。
# startx 

永続的にGUIへ切り替える場合

CentOS7からは、/etc/inittabの編集でなく、systemdが起動するときのパラメータを変更することで切り替えられます。

  • パラメータを「graphical.target」へ変更します。
# systemctl set-default graphical.target
  • パラメータが書き換わったことを確認します。
# systemctl get-default

graphical.target
  • 再起動します。
# reboot
or
# systemctl reboot
  • GUIで起動できることが確認できます。

f:id:abcmark2010:20160213103505j:plain

補足

CUI起動に切り替える場合

# systemctl set-default multi-user.target

oracle database client 11gR2 インストール 手順(windows10)

はじめに

今回は、Oracle Databaseをネットワーク越しにOracleデータベース(サーバ)をオペレーションしたり、管理したり、開発するためのツールが入っているソフトウェアとして、Oracle Database Client 11gR2を、Windows 10上へインストールする手順を記載します。

ツールは、「SQL*Plus」と「Oracle Netユーティリティ(tnsping,tnstrace)」のみインストールします。

ダウンロード

アカウント取得後、以下のサイトより、「win64_11gR2_client.zip」をダウンロードします。

Oracle Database 11g Release 2 for Microsoft Windows (x64)

f:id:abcmark2010:20160211225232j:plain

手順

インストール

  • 必要なコンポーネントのみインストールするため、「カスタム」インストールを選択後、「次へ」をクリックします。

f:id:abcmark2010:20160211225318j:plain

  • 「選択された言語」に「日本語」「英語」が選択されていることを確認し、「次へ」をクリックします。

f:id:abcmark2010:20160211225337j:plain

  • Oracleベースとソフトウェアの場所を選択し、「次へ」をクリックします。

f:id:abcmark2010:20160211225343j:plain

f:id:abcmark2010:20160211225607j:plain

  • 設定内容を確認し、「終了」をクリックします。

f:id:abcmark2010:20160211225614j:plain

  • インストールが開始されます。

f:id:abcmark2010:20160211225620j:plain

  • インストールが完了したことを確認し、「閉じる」をクリックします。

f:id:abcmark2010:20160211230059j:plain

tnsname.oraの配置

  • 次のフォルダ配下に、「tnsname.ora」ファイルを作成します。
    • <ソフトウェアの場所>\network\admin

f:id:abcmark2010:20160211230417j:plain

f:id:abcmark2010:20160211230654j:plain

ORCL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ★接続先ホスト名★)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl.exzample.com)
    )
  )

動作確認

>tnsping orcl

TNS Ping Utility for 64-bit Windows: Version 11.2.0.1.0 - Production on 11-2月 -2016 23:13:47

Copyright (c) 1997, 2010, Oracle.  All rights reserved.

パラメータ・ファイルを使用しました:
E:\oracle\app\product\11.2.0\client_1\network\admin\sqlnet.ora


エイリアスを解決するためにTNSNAMESアダプタを使用しました。
(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ★ホスト名★)(PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl.exzample.com)))に接続の試行中
OK (60ミリ秒)
  • SQL*Plusにて、SYSユーザでログインします。

>sqlplus sys@orcl as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on 木 2月 11 23:15:16 2016

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

パスワードを入力してください:


Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
に接続されました。
SQL> show user;
ユーザーは"SYS"です。

VMware-Toolsのインストール手順

はじめに

CentOS7.X系に、open-vm-toolsをインストールする手順になります。

既に、ご存じの方が多いと思いますが、ESXiにバンドルされているVMware Toolsではなく、 open-vm-tools を利用した運用が推奨されています。以下の記事をご参照ください。

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2074713

なお、当手順は、以下のOSバージョンをサポートしています。

インストール手順

キーのインポート

# rpm --import http://packages.vmware.com/tools/keys/VMWARE-PACKAGING-GPG-RSA-KEY.pub

リポジトリ追加

# vi /etc/yum.repos.d/vmware-tools.repo
[vmware-tools]
name = VMware Tools
baseurl = http://packages.vmware.com/packages/rhel7/x86_64/
enabled = 1
gpgcheck = 1

パッケージインストール

# yum update
# yum install open-vm-tools-deploypkg
Installed:
open-vm-tools-deploypkg.x86_64 0:9.4.10-3

Dependency Installed:
libdnet.x86_64 0:1.12-6.el6             libicu.x86_64 0:4.2.1-9.1.el6_2
libmspack.x86_64 0:0.4-0.1.alpha.el6    open-vm-tools.x86_64 0:9.4.6-1.el6

Complete!

# service vmtoolsd restart
vmtoolsd を停止中:                                         [  OK  ]
vmtoolsd を起動中:                                         [  OK  ]
#
# vmtoolsd -v
VMware Tools daemon, version 9.4.6.33107 (build-1770165)

付録A. CentOS6.Xでインストールする方法

CentOS6.Xで、yumインストールしたい場合は、以下の通りとなります。

リポジトリの登録

1./etc/yum.repos.d/VMware-Tools.repoというファイルを作成します。

2.vi /etc/yum.repos.d/VMware-Tools.repoで下記の内容を入力します。

  [vmware-tools]
  name=VMware Tools for Red Hat Enterprise Linux $releasever   $basearch
  baseurl=http://packages.vmware.com/tools/esx/latest/rhel6/$basearch
  enabled=1
  gpgcheck=1
  gpgkey=http://packages.vmware.com/tools/keys/VMWARE-PACKAGING-GPG-RSA-KEY.pub

インストール

#yum install vmware-tools-esx-noxを実行
(※GUIの場合は# yum install vmware-tools-esx)

再起動

#shutdown -r now

確認

#vmtoolsd -v

付録B. ESXiにバンドルされているVMware Tools 手順

ESXiにバンドルされているVMware Tools インストール手順も記載します。

前提条件

  • VPN接続確立後、vSphere Client経由で仮想マシンへ接続してください。
  • VMware ToolsのインストールにはPerlが必要です。 ※CentOSPerlがインストールされていない場合は yum install perlでインストールしてください。
  • 仮想マシンをパワーオンします。
  • ゲスト OS が実行されていることを確認します。

インストール手順

  • コンソールより、「仮想マシン」-「ゲスト」-「VMwareToolsのインストール」を選択します。

  • マウントします。

# mount /dev/cdrom /mnt/cdrom
  • 圧縮されたVMware toolsのフォルダを任意の場所にコピーします。 ※今回はtar.gz形式のファルダを解凍してVMware toolsをインストールします。
# cp -f /mnt/cdrom/VMwareTools-9.4.10-2068191.tar.gz /usr/local/src/VMwareTools/.
# tar xvfz VMwareTools-9.4.10-2068191.tar.gz
  • インストーラーを起動します。 ※今回は、すべてデフォルト設定でインストールしています。 必要に応じて、設定を変更してください。
# ./vmware-install.pl
Creating a new VMware Tools installer database using the tar4 format.

Installing VMware Tools.

In which directory do you want to install the binary files?
[/usr/bin]

What is the directory that contains the init directories (rc0.d/ to rc6.d/)?
[/etc/rc.d]

What is the directory that contains the init scripts?
[/etc/rc.d/init.d]

In which directory do you want to install the daemon files?
[/usr/sbin]

In which directory do you want to install the library files?
[/usr/lib/vmware-tools]

The path "/usr/lib/vmware-tools" does not exist currently. This program is
going to create it, including needed parent directories. Is this what you want?
[yes]

In which directory do you want to install the documentation files?
[/usr/share/doc/vmware-tools]

The path "/usr/share/doc/vmware-tools" does not exist currently. This program
is going to create it, including needed parent directories. Is this what you
want? [yes]

The installation of VMware Tools 9.4.10 build-2068191 for Linux completed
successfully. You can decide to remove this software from your system at any
time by invoking the following command: "/usr/bin/vmware-uninstall-tools.pl".

Before running VMware Tools for the first time, you need to configure it by
invoking the following command: "/usr/bin/vmware-config-tools.pl". Do you want
this program to invoke the command for you now? [yes]

Initializing...


Making sure services for VMware Tools are stopped.



Found a compatible pre-built module for vmci.  Installing it...


Found a compatible pre-built module for vsock.  Installing it...


The module vmxnet3 has already been installed on this system by another
installer or package and will not be modified by this installer.

Use the flag --clobber-kernel-modules=vmxnet3 to override.

The module pvscsi has already been installed on this system by another
installer or package and will not be modified by this installer.

Use the flag --clobber-kernel-modules=pvscsi to override.

The module vmmemctl has already been installed on this system by another
installer or package and will not be modified by this installer.

Use the flag --clobber-kernel-modules=vmmemctl to override.

The VMware Host-Guest Filesystem allows for shared folders between the host OS
and the guest OS in a Fusion or Workstation virtual environment.  Do you wish
to enable this feature? [no]

Found a compatible pre-built module for vmxnet.  Installing it...


The vmblock enables dragging or copying files between host and guest in a
Fusion or Workstation virtual environment.  Do you wish to enable this feature?
[no]

VMware automatic kernel modules enables automatic building and installation of
VMware kernel modules at boot that are not already present. This feature can be

enabled/disabled by re-running vmware-config-tools.pl.

Would you like to enable VMware automatic kernel modules?
[no]

No X install found.

Creating a new initrd boot image for the kernel.

Creating a new initrd boot image for the kernel.
vmware-tools start/running
The configuration of VMware Tools 9.4.10 build-2068191 for Linux for this
running kernel completed successfully.

You must restart your X session before any mouse or graphics changes take
effect.

You can now run VMware Tools by invoking "/usr/bin/vmware-toolbox-cmd" from the
command line.

To enable advanced X features (e.g., guest resolution fit, drag and drop, and
file and text copy/paste), you will need to do one (or more) of the following:
1. Manually start /usr/bin/vmware-user
2. Log out and log back into your desktop session; and,
3. Restart your X session.

Enjoy,

--the VMware team

Found VMware Tools CDROM mounted at /mnt/cdrom. Ejecting device /dev/sr0 ...
No eject (or equivilant) command could be located.
Eject Failed:  If possible manually eject the Tools installer from the guest
cdrom mounted at /mnt/cdrom before canceling tools install on the host.
  • 起動確認します。
# status vmware-tools
vmware-tools start/running
  • 再起動します。
# reboot

動作確認

  • vSphere Client インベントリで仮想マシンを選択し、[サマリ] タブをクリックします。
  • VMware Tools:」が「実行中(現在)」にステータスが変わっている事を確認します。

Maven環境構築手順

概要

Javaベースのオープンソース製プロジェクト管理ツール

ビルドツールApache Antのようにbuild.xmlを自分で手間をかけて記述することなくプロジェクトのビルドやデプロイ、テストレポートなどの生成を容易にすることができます。

PerlCPAN, PHPPEARWindows UpdateFedora Coreyumのように登録された外部のライブラリを簡単に自分のプロジェクトへ、 自動ダウンロード/自動インストール/自動クラスパス追加が可能です。

Mavenは、とくにチームでの開発には有用で、開発者の各マシンにMavenをインストールさえしておけば、Mavenの設定ファイル(pom.xml)を チーム内メンバーに配布するだけです。 後は開発者がMavenのコマンドを一回実行することでソースコードやJARライブラリなどを自動的に用意してくれる優れた便利なツールです。

このツールのおかげで、開発環境と本番環境のJARライブラリのバージョン違いによるリリース後に問題が発生するといったことを防ぐことができます。

今回は、そんなMavenのインストール手順を備忘録を兼ねて記載します。

前提

OS

実行ユーザ

  • root権限を持つ任意のユーザ

SW

|ソフトウェア|バージョン|備考| |java|1.8.0_51|| |Maven|3.3.3||

インストール作業

Javaインストール

# mkdir /usr/local/src/java
# cd /usr/local/src/java
# tar xvfz /tmp/jdk-8u51-linux-x64.tar.gz
# vi /etc/profile
(以下、編集)
export JAVA_HOME=/usr/java
export JAVA=${JAVA_HOME}/bin
export PATH=$PATH:${JAVA_HOME}
  • 設定を反映する。
# source /etc/profile
# ln -s /usr/local/src/java/jdk1.8.0_51 /usr/java
  • バージョンを確認する。
# java -version
java version "1.8.0_51"
Java(TM) SE Runtime Environment (build 1.8.0_51-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)

Mavenインストール

  • ダウンロードする。
# curl -O http://ftp.jaist.ac.jp/pub/apache/maven/maven-3/3.3.3/binaries/apache-maven-3.3.3-bin.tar.gz
  • ダウンロードしたtarballを任意のフォルダに格納し、解凍する。
# mkdir /usr/local/src/maven
# cd /usr/local/src/maven
# tar xvfz /tmp/apache-maven-3.3.3-bin.tar.gz
# ln -s /usr/local/src/maven/apache-maven-3.3.3 /usr/local/maven

# vi /etc/profile
(以下、編集)
export M2_HOME=/usr/local/maven
export M2=${M2_HOME}/bin
export PATH=$PATH:${RUBY}:${JAVA }:${M2}
  • 設定を反映する。
# source /etc/profile
  • バージョンを確認する。
# mvn --version
Apache Maven 3.3.3 (7994120775791599e205a5524ec3e0dfe41d4a06; 2015-04-22T20:57:37+09:00)
Maven home: /usr/local/maven
Java version: 1.8.0_51, vendor: Oracle Corporation
Java home: /usr/local/src/java/jdk1.8.0_51/jre
Default locale: ja_JP, platform encoding: UTF-8
OS name: "linux", version: "2.6.32-573.8.1.el6.x86_64", arch: "amd64", family: "unix"

Maven設定

Mavenの設定は、Settings.xmlへ記述する。ここでは、必要最低限の設定しか記述していないが、詳細は、以下のサイトを参考にしていただきたい。

サイトURL:http://maven.apache.org/settings.html

プロキシ設定(プロキシ経由でダウンロードする場合のみ)

  • 「settings.xml」へプロキシの設定を記述する。
# vi /usr/local/maven/conf/settings.xml
(以下、編集)
  
    
      optional
      true
      http
      
      
      proxy.exzample.com
      8080
      *.exzample.com
    
  

動作確認

動作確認のため、mvnコマンドを利用してみます。

プロジェクト作成

  • 任意のフォルダを作成し、プロジェクトのひな形を作成する。
mvn archetype:generate -DgroupId=myapp.hello -DartifactId=myapp-hello -DinteractiveMode=false

※補足.  mvnコマンド実行時の結果Msgは次のとおりである。

【正常終了の場合】
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------


【異常終了の場合】

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------

今日は、ここまで!

OpenJDK 64-Bit Server VM warning

f:id:abcmark2010:20160122233643j:plain

現象

日本語環境で、DBCAが文字化けしたため、以下の手順で解決後、

# whereis java
java: /usr/bin/java /etc/java /usr/lib/java /usr/share/java /usr/share/man/man1/java.1.gz
# readlink -e /usr/bin/java
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-1.b15.el6_7.x86_64/jre/bin/java

# cat dbca | grep JRE_DIR
69 JRE_DIR=/u01/app/oracle/product/11.2.0/dbhome_1/jdk/jre

# vi dbca
JRE_DIR=/u01/app/oracle/product/11.2.0/dbhome_1/jdk/jre
↓↓↓
JRE_DIR=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-1.b15.el6_7.x86_64/jre

DBCAを立ち上げると次の警告メッセージが出力される。

$ dbca
OpenJDK 64-Bit Server VM warning: You have loaded library /u01/app/oracle/product/11.2.0/dbhome_1/lib/libnjni11.so which might have disabled stack guard. The VM will try to fix the stack guard now.
It's highly recommended that you fix the library with 'execstack -c ', or link it with '-z noexecstack'.

原因

「/u01/app/oracle/product/11.2.0/dbhome_1/lib/libnjni11.so」の実行スタックフラグが問題らしい。

対策

警告メッセージの通り、実行スタックフラグを変更するためのコマンドをインストールする。

yum install prelink

次の通り、該当する共有ライブラリを実行可​​能なスタックとしてフラグを変更する。

# execstack -c /u01/app/oracle/product/11.2.0/dbhome_1/lib/libnjni11.so
# execstack -c /u01/app/oracle/product/11.2.0/dbhome_1/lib/libldapjclnt11.so
# execstack -c /u01/app/oracle/product/11.2.0/dbhome_1/lib/libsrvmocr11.so

再度、DBCAツールを起動する。

$dbca

f:id:abcmark2010:20160120233508j:plain

警告が表示されずに、dbcaツールが起動できることを確認する。

参考サイト

linux.die.net