Airflow の Connections と Hook の概念を理解する

Airflow の apache-airflow-providers-google を利用しながら、Airflow における Connection と Hook の概念について確認します。 環境 Apache Airflow 2.3.2 apache-airflow-providers-google 7.0.0 Connections とは Connections とは、Airflow から Airfl…

Apache Airflow をローカル環境にインストールする

ローカル環境に Airflow をインストールします。 Installation from PyPI 環境 Ubuntu 20.04.4 LTS (WSL2) pyenv 2.3.1-20-g572a8bcf Python 3.7.13 Apache Airflow 2.3.2 Poetry で管理できれば、と思いましたが、未サポートとのことです。だとしても利用で…

Airflow の DAG 間で依存関係を設定する

Airflowにて、DAG の依存関係を設定する方法を確認します。今回も Astronomer 社のサイトより、下記ページを参考にしています。 Cross-DAG Dependencies 環境 Apache Airflow 2.3.2 TriggerDagRunOperator を利用する方法 TriggerDagRunOperator は、異なる …

Airflow でタスクの条件分岐を行う

Airflow の DAG 定義内で、タスクの条件分岐する方法を確認します。Astronomer 社のサイトを参考にしています。 Branching in Airflow 環境 Airflow 2.3.2 BranchPythonOperator を利用する BranchPythonOperator を利用する方法を確認します。以下は参考に…

Python の queue 関連のライブラリを確認する

Python の標準モジュールで用意されている queue 関連のライブラリについて確認します。 環境 Python 3.9.13 queue 関連のライブラリ 以下があります。 種類 queue モジュール その他モジュール スタック queue.Queue collections.deque キュー queue.LifoQu…

Airflow の DAG 定義ファイルに入門する

公式ドキュメントにある tutorial の参考にしつつ、 Airflow の DAG 定義ファイルの書き方を確認します。 tutorial 環境 Apache Airflow 2.3.2 Python 3.7 DAG 定義ファイルの必要要素 必要となる要素の確認。 Python Library のインストール DAG オブジェク…

Apache Airflow に入門する

Apache Airflow を理解するため、公式ドキュメントの Quick Start を試してみます。Docker Compose を利用して Airflow 環境の作成ができるようです。 Running Airflow in Docker 環境 Ubuntu 20.04.4 LTS (WSL2) Docker 20.10.16 Docker Compose 2.6.0 Airf…

BigQuery でプロジェクト毎に少しだけ違う SQL を実行する方法

備忘録です。 目的 Google Cloud のプロジェクトを環境毎に作成していて、BigQuery の設定名がプロジェクト単位で若干違う、という事があると思います。今回の下記例では、プロジェクト毎にデータセット名が異なっていて、それ以外は全く同一の SQL を実行し…

Poetry に入門する

公式ドキュメントを参考に、基本的な部分を確認します。 https://python-poetry.org/ 環境 Ubuntu 20.04.4 LTS Python 3.8.10 Poetry 1.1.13 Poetry のインストール $ curl -sSL https://install.python-poetry.org | python3 - $ echo 'export PATH="/home/…

Google CloudでTerraformを利用する

Google CloudでTerraformを利用するにあたり、基本的な部分について確認します。 Terraform、Gooble CloudそれぞれのGetting Start資料が下記です。 Terraform: Getting Started with the Google Provider Google Cloud: Getting started with Terraform on …

BigQueryのクエリ実行に関するメモ

BigQueryのクエリ実行に関する公式ドキュメントを読んでいて、気になった箇所を試してみたメモです。 バッチクエリの実行 SQLクエリをfire-and-forgetで実行できる機能。 BigQuery はユーザーに代わって各バッチクエリをキューに格納し、アイドル状態のリソ…

FastAPI入門

FastAPIの基本的部分のメモ。公式ドキュメントがわかりやすいため、公式ドキュメントのリンク集くらいのつもりでまとめています。 FastAPI FastAPIの仕組みについて、分かりやすくまとめてくれている投稿。 FastAPIでStarletteとPydanticはどのように使われ…

BigQueryでパーティション分割テーブルを作成する

BigQueryでパーティション分割テーブルの作成方法を確認します。 パーティション分割できる種類 BigQueryでは、以下の条件でテーブルをパーティションできます。 時間単位の列 TIMESTAMP、DATE、DATETIME列に基づいて 取り込み時間 BigQueryにデータを取り込…

Cloud TasksのワーカーとしてCloud Runを利用する

Cloud TasksのQueueに投入されたタスクを、Cloud Run上のコンテナ環境で実行する手順を調べます。 構成 構成図です。 環境 Python 3.8.10 google-cloud-tasks 2.5.0 google-api-core 1.31.0 protobuf 3.17.3 Cloud Runにコンテナのデプロイ Cloud Run上のコ…

BigQueryでExternal Tableを作成する

Cloud Storage上にアップロードしたCSVファイルに対して、External Tableの機能を利用し、BigQueryのクエリを実行してみます。BigQuery External Tableとは、AWSで言うところの、Redshift Spectrumとなります。 利用したファイル 利用したファイルは、kaggle…

Cloud Storage NotificationをCloud Run上コンテナで受け取る

Cloud Storageが発行してくれるNotificationを、Cloud Pub/Subを介して、Cloud Run上で起動しているFlaskで受け取ります。 環境 Google Cloud SDK 348.0.0 Python 3.9 Flask 2.0.1 gunicorn 20.1.0 構成 構成です。 Cloud Run上にコンテナを建てる Cloud Pub…

Pythonのunittestの使い方を確認

Pythonのunittestの使い方を確認します。 環境 Python 3.8.5 サンプルプログラム 公式ドキュメントを参考。 unittest --- ユニットテストフレームワーク テスト対象のプログラム テスト対象とするコードを記述。 hololive.py class HololiveMember(): def __…

Neo4jの基本的操作方法の確認

Neo4jをインストールして、基本的な操作方法を確認します。 環境 Ubuntu 20.04.2 LTS Neo4j Community Edition 4.3.2 openjdk 11.0.11 Neo4jのインストール openjdkのインストール Neo4jはjavaらしいので、Neo4j ver4.xの動作環境であるopenjdk 11をインスト…

Google Cloud Associate Cloud Engineer試験時の学習メモ

Google Cloud Associate Cloud Engineer受験時の学習内容をまとめたもの。公式の試験概要より、指定されている範囲のサービスを触ってみた記録です。 目次 目次 1. クラウド ソリューション環境の設定 1.1 クラウド プロジェクトとアカウントを設定する。以…

Amazon Simple Email ServiceをSMTPプロトコルで利用する

SESをSMTPで利用した時のメモです。Bounce Mailの管理も設定します。 送信先として利用するテスト用Emailアドレスの検証 初回利用開始時、SESはsandbox状態となっています。sandbox状態では、送信先となるEmailアドレスに対して制限をかけられており、事前に…

AWS Client VPNを、Azure ADとのSSOで利用する

AWS Clinet VPNを、Azure AD側ユーザーにてシングルサインオンして利用する手順を確認しています。AWSとAzureそれぞれで、必要手順を紹介しているページがあります。 AWS側の資料はこちら。 How to Integrate AWS Client VPN with Azure Active Directory Az…

Kubernetes Cluster管理用のコマンドたち

Kubernetes Cluserを管理する上で、覚えておくと便利なコマンドをメモしておきます。 目次 目次 参考資料たち 環境 リソースタイプの、短縮名やAPIバージョンを表示 ラベルの表示 追加情報の表示 表形式ぽく表示 条件を指定して検索 JSONPathの利用 ソートし…

Kubernetesマニフェストファイルの雛形作成コマンドたち

マニフェストファイルの雛形を、kubectlにて取得するコマンドをメモしておきます。 目次 目次 環境 基本的な情報 公式の参考ページ Namespace Resource Quota Pod Deployment ReplicaSet DaemonSet Service: ClusterIP Service: NodePort ConfigMap Secret R…

kubeadm環境のKubernetesのアップグレード

kubeadmにて作成したKubernetes Clusterをアップグレードしてみます。下記は参考の公式ドキュメント。 Upgrading kubeadm clusters 環境 構成 マスターノード 1台 ワーカーノード 1台 バージョン OS Ubuntu 20.04.1 LTS kubernetes 現行 1.19.0 アップグレー…

kubeadm環境のKubernetesにてユーザーを追加

kubeadmにて作成したKubernntes Clusterに、Normal Userを追加する方法を確認します。 環境 kubernetes v1.20.0 実際の追加作業を実施する前に、Kubernetesにおける認証方式やユーザーの扱いについて確認しておきます。 Kubernetesにおける認証方式 kube-api…

kubernetes内のetcdをバックアップ・リストアする

Kubernetes Cluster内のetcdをバックアップ、リストアする方法を確認します。 環境情報 前提として、対象のetcdはシングル構成で、1台のkubernetesのマスターノードで動作しています。kubernetes環境は、kubeadmにて作成しました。 バージョンは下記。 OS Ub…

kubeadmによるKubernetes Clusterの作成

kubeadm を利用して、kubernetes clusterをゼロから作成してみます。 kubeadm とは、kubernetes ClusterのBootstrap Toolとなっています。 Kubeadm is a tool built to provide best-practice "fast paths" for creating Kubernetes clusters. It performs t…

Amazon CognitoとADFSをSAML連携して、WEBサイトの認証処理として利用する

CognitoとADFSをSAML連携して、ActiveDirectory側のユーザー情報で認証処理をさせよう、というものです。下記あたりのドキュメントを読みながら、必要手順を確認しました。 Amazon Cognito ユーザープールを使用して AD FS を SAML ID プロバイダーとして設…

EDINET APIの利用方法

EDINET APIの利用方法について、僕なりにまとめたメモ。 参考資料 EDINET API仕様書 (Version 1) APIの種類 書類一覧API 提出書類の一覧情報、およびそのメタデータを取得可能 日付単位で指定(過去5年分) 書類取得API 実際に提出書類を取得可能 書類単位で指…

AWS IoT GreengrassにてLambdaの実行

GreengrassをインストーしたデバイスにLambdaをデプロイし、AWS IoT CoreとMQTT通信を実施します。以下の公式ドキュメントを参考に作業を進めます。 モジュール 3 (パート 1): AWS IoT Greengrass での Lambda 関数 環境 既にGreengrass環境は作成されている…