投稿

2022の投稿を表示しています

【GoogleAPPScript】デシジョンテーブルの作成を自動化してみた

イメージ
前回から4か月空きました・・・。 ネタがないというところと仕事に忙殺されて時間がなくて、ブログに割く余力がありませんでした。久しぶりにGoogleAppScriptネタです。   テストケースの洗出しで デシジョンテーブル を作成する必要が出てきて、 GIHOZ を使えれば簡単に作成できるものの、そういうテストツールにはお金を出してくれない環境なので、何とかできないか考えてみた。最初はEXCELで何とかしようと考えてVBAでデシジョンテーブル作成してくれる まんまのもの があったものの欲しかったものと違う。 会社では Googleスプレッドシート を使っているのでまぁ関数をコピペするだけで何とかできないかと思ったものの、そもそもEXCELですらVBAを使ってやっておられるくらいなのでそういう関数もなく。自分は頭悪いのでそういう内容も思いつかず GAS 使って何とかするしかないよなということで探しましたが見つからず・・・・。困り果てていたところでpythonで デシジョンテーブル作成されている方 がいらっしゃってそこでアイデアコピペでググりましたよ。 フルコピペでGAS作成しました。まぁ意図通りのができたのでめでたしめでたしです。 ■GASコード function myFunction() { const SHEET_URL = SpreadsheetApp.getActiveSpreadsheet().getUrl(); const ss = SpreadsheetApp.openByUrl(SHEET_URL); const cs = ss.getSheetByName('デシジョンテーブル検討'); const START_ROW = 3; const CONDITION_COL = 1; const ACTION_COL = 2; const SHEETNAME_CELL = 'B1' // conditional partial generation const TRUE_MARK = 'Y'; const FALSE_MARK = 'N'; const packet = {}; let combinationSubtract = 2;

【最終回】(続)静的Webサイトホスティング二重化してみる(その5)

 静的サイトWebホスティングシリーズもこれで最後です。 最後の難関 Terrform です。GCPの時に AWSの部分 は作っていて、そのまま動くか不安でしたが、ほぼそのまま動いてくれたのでAWSはほぼ流用です。 Azureでこちらの作成がメインです。自分が弱いだけに方々からコピペして作成しています。日本語の情報があまりない(自分の探し方が下手)ので英語のサイトばっか漁りましたが 英語が絶望的なのでほとんど情報が見つけられませんでした。 もっと気が利いた表現が英語でできればかなり早く調べられるのになぁ。 50近いおっさんがそんなすぐにツヨツヨにはなれないので地道に調べるしかないです。 まぁ、今回の構成は世間で既に誰かがやっているかもしれませんが・・・残念ながら見つけられませんでした。 ◆シリーズ その1:AWSでCloudFront+S3構成を作る その2:AzureでApplicationGateway+Blob構成を作る その3:DNSでフェイルオーバー設定 その4:S3とBlobにGitHubActions使ってコンテンツ同期 その5:TerraformでIaC化 ◆Version関連 Ubuntu20.04LTS Client: Docker Engine - Community Version: 19.03.13 docker-compose version 1.24.0, build 0aa59064 Terraform v1.2.2 ◆事前準備 #Azureコンテナ起動 $ docker container run --name azure-terraform-dev -h \ terraform-dev -it -d \ --mount type=bind,src=$(pwd)/aws_azure,dst=/aws_azure \ --restart=always \ -e TZ=Asia/Tokyo multicloud-ubuntu /bin/bash $ docker exec -it azure-terraform-dev /bin/bash #1.AWS認証情報設定 # aws configure AWS Access Key ID [None]: YOURACCESSKEY AWS Secret A

AzureのARMTemplateでApplicationGatewayの静的Webサイトやってみた

AWS でも GCP でも標準の IaC やってみたのでAzureでも やらなきゃダメでしょということでAzureのIaCである ARMTemplate 試してみました。 構成としてはApplicationGateway+BlobStorageので、ついでにDNSもARMTemplateやってみました。SSL証明書は ZEROSSL で発行し、ドメインは freenom で発行しています。 ARMTemplate自体はAWSとかGCPと違ってJSON形式みたいですが、今後は Bicep とかいうやつが標準になる様です。ではいってみましょう。 ◆作業およびARMテンプレート 1.事前準備 #PowerShellインストール $ mkdir armtemplate $ cd armtemplate $ sudo apt-get update $ sudo apt-get install -y wget apt-transport-https software-properties-common $ wget -q https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb $ sudo dpkg -i packages-microsoft-prod.deb $ sudo apt-get update $ sudo apt-get install -y powershell $ pwsh #テストツールダウンロード PS /home/user/armtemplate> cd armtemplate PS /home/user/armtemplate> git clone https://github.com/Azure/arm-ttk.git 2.DNS ・ARMテンプレート $ vi dns__template.json ------------------------------------------------ { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", &

(続)静的Webサイトホスティング二重化してみる(その4)

イメージ
前回までで おおよそ意図した構成は完成したものの。やっぱりコンテンツを二重投稿するのはイヤだということで GCSのときと同様 にGitHubActions使ってmainブランチにコンテンツをpushすると S3 と Blob に同時にコンテンツをアップロードするという構成を作ります。 AWSのIAMでS3にオブジェクトアップロードできる権限を作るとこと GitHubActions の設定やなんかは GCSのとき のを参考にシークレットとか設定します。 最終的に↓感じの構成になりました。 ◆シリーズ その1:AWSでCloudFront+S3構成を作る その2:AzureでApplicationGateway+Blob構成を作る その3:DNSでフェイルオーバー設定 その4:S3とBlobにGitHubActions使ってコンテンツ同期(今回) その5:TerraformでIaC化 ◆環境 azure-cli 2.14.0 Ubuntu20.04.4LTS ◆作業内容 1.AzureのCREDENTIALSを発行 ローカルで発行しようとしたもののエラーが発生したて解消できませんでした。どんだけあがいてもうまく行かなかったのでAzureのCloudShell上でコマンドを叩きます。 $ az ad sp create-for-rbac --name tohonokai_tk --role contributor \ --scopes /subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${RESOURCE_GROUP_NAME} \ --sdk-auth The underlying Active Directory Graph API will be replaced by Microsoft Graph API in Azure CLI 2.37.0. Please carefully review all breaking changes introduced during this migration: https://docs.microsoft.com/cli/azure/microsoft-gr

(続)静的Webサイトホスティング二重化してみる(その3)

イメージ
 前回 まででAzureのBlobによる静的サイトホスティング構成が完了しました。いよいよ今回でDNSの設定を書き替えてフェイルオーバ環境を構築します。 登録されているAWSのAliasレコードのAレコードを削除してからヘルスチェックを登録してAレコードにフェイルオーバーの設定を施してから登録を行うという内容です。 最終的にこういう構成になります。 ◆シリーズ その1:AWSでCloudFront+S3構成を作る その2:AzureでApplicationGateway+Blob構成を作る その3:DNSでフェイルオーバー設定(今回) その4:S3とBlobにGitHubActions使ってコンテンツ同期 その5:TerraformでIaC化 ◆環境 aws-cli/2.4.27 Python/3.8.8 Linux/5.4.0-104-generic exe/x86_64.ubuntu.20 prompt/off Python 3.10.3 Ubuntu20.04.4LTS ◆作業内容 コマンドラインでの作業となります # 1.Route53ヘルスチェック #・クラウドフロント情報取得 $ CLOUDFRONT_URL=$(aws cloudfront list-distributions \ --query "DistributionList.Items[].{DomainName: DomainName, OriginDomainName: Aliases.Items[0]}[? OriginDomainName == '${YOUR_DOMAIN}'] | [0].DomainName"\ --output=text \ ) && echo $CLOUDFRONT_URL #・ヘルスチェック作成 $ cat << EOF > create-health-check.json { "Type": "HTTPS_STR_MATCH", "ResourcePath": "/", "FullyQualifiedDomainName": "$CLOUDFRONT_URL&

(続)静的Webサイトホスティング二重化してみる(その2)

イメージ
  前回 はAWS-CLIでAWS上に静的サイトホスティングの構成を作るところまでを終わらせました。今回は Azure-CLI を使って、Blob+ApplicationGatewayの構成で静的Webサイトホスティングを有効化してSSL証明書をぶち込むところまでをやってみます。SSLは ZeroSSL を使用します。(自動更新の仕組みまでは作れませんでした。残念) ◆シリーズ その1:AWSでCloudFront+S3構成を作る その2:AzureでApplicationGateway+Blob構成を作る(今回) その3:DNSでフェイルオーバー設定 その4:S3とBlobにGitHubActions使ってコンテンツ同期 その5:TerraformでIaC化 ◆環境 azure-cli 2.14.0 Python 3.10.2 Ubuntu20.04.4LTS ◆作業内容 1.事前準備(SSL準備) (1)ZeroSSLでCNAME用文字列取得 ・ZeroSSLに新規登録し、[NewCertificate]で新規証明書の発行を開始する ・ドメインを入力して[NextStep]をクリックする ・[90-Day Certificate]を選択して[Next Step]をクリック ・[CSR&Contract]で[Auto-Generate CSR]が有効であることを確認し[Next Step]をクリック ・Freeを選択して[Next Step]をクリック ・[DNS(CNAME)]を選んで表示された内容をメモし[Next Step]をクリックする (2)AWSのRoute53にZeroSSLのCNAME登録 $ cat << EOF > createcnamerecode.json { "Comment": "Creating Alias resource record sets in Route 53", "Changes": [{ "Action": "CREATE", "ResourceRecordSet": {

(続)静的Webサイトホスティング二重化してみる(その1)

イメージ
 以前、 AWSとGCPで静的Webサイトホスティングを冗長化 していました。 けど GCP じゃなくて Azur なんだよAzureとか言われそうなところもあるのでAzureでできないものかと悶々としておりました。 そんな中Azureにも ApplicationGateway なるものが存在しバックエンドに AzureBlob の静的サイトホスティングを配置しIPアドレスも割当可能とのことから、これ行けるんじゃなかろうかと思って少し取り組んでみようと思いました。 まずは前回はマネジメントコンソールからスタートしたので、思い切って今回は AWS-CLIv2 でやってみます。なんか AWS で静的Webサイトホスティングやるの久しぶりだな。 何回かシリーズになるかどうか謎ですが、気が向いたらお付き合いいただけると幸いです。ドメインは freenom で取得しています。(お約束の無料ドメイン) ◆シリーズ その1:AWSでCloudFront+S3構成を作る(今回) その2:AzureでApplicationGateway+Blob構成を作る その3:DNSでフェイルオーバー設定 その4:S3とBlobにGitHubActions使ってコンテンツ同期 その5:TerraformでIaC化 ◆環境 aws-cli/2.4.27 Python/3.8.8 Linux/5.4.0-104-generic exe/x86_64.ubuntu.20 prompt/off Python 3.10.3 Ubuntu20.04.4LTS ◆作業内容 1.事前準備 # 1.AWS-CLIのv1系アンインストール $ pip uninstall awscli Proceed (y/n)?y Successfully uninstalled awscli-1.18.39 # 2.AWS-CLIのv2系インストール $ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" $ unzip awscliv2.zip $ sudo ./aws/install --update $ /usr/local/bin/aws --version