かべぎわブログ

ブログです

Invoke-Expressionでも終了ステータスを取得したい

概要 PowerShellでInvoke-Expressionでも終了ステータス(ExitCode)を取得してみます。 終了ステータスとれない問題 たとえばこんなかんじのPowerShellスクリプトがあったとする。 Write-Host 'wawawa' exit 2 実行して終了ステータスとると当然Falseになる。…

Terraformで最新版のAmazonLinux2を取得する

概要 Terraformで最新版のAmazonLinux2をつかってEC2インスタンスを作成します。 こんなかんじ filterでしぼっています。 provider "aws" { region = "ap-northeast-1" } data "aws_ami" "recent_amazon_linux2" { most_recent = true owners = ["amazon"] f…

Terraformで変数をつかう

概要 Terraformで変数をつかってみます。 variableを使うと変数が定義できます。 きほんのかたち インスタンスタイプをt3.microの変数を設定している。 provider "aws" { region = "ap-northeast-1" } variable "instance_type" { default = "t3.micro" } re…

Pythonでコンソールのサイズを取得する

概要 Pythonを利用してコンソールのサイズを取得してみたいと思います。 こんなかんじ こんなかんじです import os columns,lines = os.get_terminal_size() ゆーすけーす こんなかんじでぼくはつかっている こうすることでコンソールサイズがどんなかんじで…

S3バケットの中のオブジェクトを数えてくれるPythonをかきました

概要 S3バケットの中にあるオブジェクトを数えてくれるPythonをかきました。 これです これです 値はCloudWatchメトリクスから持ってきています。 github.com つかいかた こうやってつかうのだ $ python get_object_count.py --help usage: get_object_count…

CloudWatch Logs InsightsでLambdaの実行時間の長いものを取得する

AWS

関数 CloudWatch Logs InsightsをつかってLambda関数の実行時間の長いものを取得してみたいと思います。 やってみる やってみる。 クエリ クエリはこんなかんじです。 filter @type = "REPORT" | fields @requestId, @billedDuration, @duration | sort by @…

DockerでCentOS8のAWSCLI環境を作成する

概要 DockerでCentOS8のイメージをつかってAWSCLIの動作環境を作ってみたいと思います。 Dockerfile こんなかんじ。 FROM centos:8 RUN dnf install -y wget python3 RUN wget https://bootstrap.pypa.io/get-pip.py RUN python3 get-pip.py RUN pip install…

S3バケットのサイズを取得してくれるPythonをかいた

概要 S3バケットのサイズ(オブジェクトのサイズの合計)を取得してくれます。 CloudWatchメトリクスの値をもとにしています。 コード これです。 github.com つかいかた usage: 'get_bucket_size.py [-h] --bucket BUCKET [--profile [PROFILE]] optional arg…

AWSマネジメントコンソールのヘッダーに色をつけるChrome/Firefox拡張

概要 AWSのマネジメントコンソールのヘッダーに色つけてくれるChrome/Firefox拡張です。 AWS console regions colorです。 リージョンがわかりやすくなります。 まねこんポチポチしてたらオレゴンにインスタンスつくってたわみたいなことがたぶんなくなりま…

オブジェクトをすべて削除してからS3バケットを削除してくれるPythonをかきました

概要 かんたんにS3バケットを削除してくれるPythonをかきました。 バケットを削除するときはすべてのオブジェクトを削除してからじゃないと削除できなくてめんどくさいなーってかんじだったのでかいた。 スクリプト これです。 github.com import boto3, arg…

S3上のアーカイブファイルの中身を展開して出力してくれるPythonを書きました

概要 S3上のアーカイブファイルの中身を展開して出力してくれるPythonを書きました。 github.com つかいかた $ python uncomp_s3.py --help usage: uncomp_s3.py [-h] [--profile [PROFILE]] path required arguments: path example s3://mybucket/archive.z…

CLIでうごくAuthenticatorをつくりました

概要 CLIでうごくAuthenticatorをつくりました これです github.com つかいかた こんなかんじ $ python ./auth.py --help usage: ./auth.py [-h] [--name NAME] optional arguments: --name NAME Name of AWS account (default: ALL) オプションを指定しない…

AZIDを確認する方法

AWS

概要 AZIDを確認する方法まとめです。 マネジメントコンソール Resource Access Managerから確認することができます。 AWSCLI こんなかんじで確認できます。 aws ec2 describe-availability-zones { "AvailabilityZones": [ { "State": "available", "Messag…

motoでboto3のテストをする

AWS

概要 motoをつかってboto3のテストをしてみたいと思います。 そもそもmotoとは AWSサービスのモックをつくることができるやつです。 mock botoでmotoです(たぶん) motoでテストしてみる 実際にやってみます。 こんかいはS3にオブジェクトを置くスクリプトの…

PowerShellでhistoryを表示する

概要 PowerShellでコマンド履歴を表示します。 コマンド こうすればみれる PS1> Get-History Id CommandLine -- ----------- 1 echo 'wawawa' 2 echo 'sasasa' 3 echo 'dadada' おわりに わすれがち Windows PowerShellクックブック作者: Lee Holmes,マイク…

pytestでPythonスクリプトをテストする

概要 PythonのテストツールのpytestをつかってPythonスクリプトのテストをしてみたいと思います。 インストール pytestはpipでインストールできます。 $ pip install pytest テストしてみる 実際にpytestでテストしてみます。 前提 こんなかんじのスクリプト…

Pythonから別のPythonファイルを呼び出す

概要 Pythonスクリプトから別のPythonファイルのスクリプトを呼び出してみたいと思います。 こんなかんじ こんなかんじでできます。 呼び出すPythonファイルがどこにあるかによって指定の仕方がすこしちがいます。 同一階層のPythonを呼び出す こんなかんじ…

argparseで2つの引数のどちらかのみオプションとして指定させる

概要 Pythonでargparseをつかって2つの引数のうちどちらかののみを指定している場合のみOKとしてみます。 文章で書くとよくわかんない。 こんなかんじにしたい。 $ ./wawawa.py --wawawa # これはOK $ ./wawawa.py --sasasa # これもOK $ ./wawawa.py --wawa…

プルリクエストを投げるまで(git switch対応版)

Git

プルリクエストを投げるまでの手順です。 git switch対応版です。 手順 手順 ブランチをつくってきりかえる addしてcommitしてpushする プルリクエストなげる チェックしてマージする 後処理 おしまい ブランチをつくってきりかえる 一気にできる。 $ git sw…

PowerShellで管理者権限でしか実行できないようにする

概要 PowerShellのスクリプトを管理者権限でしか実行できないようにしてみます。 前提 PowerShell v4 以上 スクリプト こんなかんじ #Requires -RunAsAdministratorを書いてあげる。 #Requires -RunAsAdministrator # ↓確認用 Write-Host 'wawawa' 実行して…

PythonでIAMグループとかIAMロールをかんたんに削除してくれるPythonをかいた

概要 PythonでIAMグループとかIAMロールをかんたんに削除してくれるPythonをかきました。 これと IAMグループをかんたんに削除してくれるPythonをかいた - かべぎわブログ これ IAMロールをかんたんに削除してくれるPythonを書いた - かべぎわブログ りょう…

PowerShellで管理者権限かどうか判定する

概要 PowerShellでAdministratorかどうかを判定してみます。 スクリプト こんなかんじ。 $currentPrincipal = New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent()) $bool_admin = $currentPrincipal.IsInR…

IAMグループをかんたんに削除してくれるPythonをかいた

概要 IAMグループをかんたんに削除してくれるPythonをかきました。 グループを削除する際にはポリシーをデタッチしたりユーザをリムーブしたりいろいろしなければいけないですがこのスクリプトはそれらを解決します。 いろいろデタッチしたりしてからグルー…

VSCodeで引数を与えてデバッグする

概要 VSCodeで引数を与えてデバッグしてみます。 手順 VSCodeのデバッグ画面の設定画面をクリックします。 launch.jsonが開くのでそこに"args":["--group-name", "test_group"],こんなかんじで入力してあげます。 この例だと./wawawa.py --group-name test_g…

IAMロールをかんたんに削除してくれるPythonを書いた

概要 IAMロールをかんたんに削除してくれるPythonをかきました。 ロールを削除する際にはポリシーをデタッチしたりインスタンスプロファイルをリムーブしたりいろいろしなければいけないですがこのスクリプトはそれらを解決します。 いろいろデタッチしたり…

自分のインスタンスIDを取得する方法まとめ

AWS

自分のインスタンスIDを取得する方法をまとめてみた。 メタデータを取得する cloud-utilを実行する cloudinitのディレクトリを参照する メタデータを取得する メタデータをcurlなりwgetなりで取得する。 curl http://169.254.169.254/latest/meta-data/insta…

PowerShellでブレース展開みたいなことをやってみる

概要 PowerShellでブレース展開みたいなことをやってみます。 やってみる こんなかんじ。 PS C:\> 'web','db','mq' | % { "$_-server" } web-server db-server mq-server またはこう。 PS C:\> 1..3 | % { "server-$_" } server-1 server-2 server-3 フォー…

Powershellで必須の引数を定義する

概要 PowerShellをつかって必須の引数を設定してみます。 そもそも引数を設定するには こんなかんじで設定できる。 Param($ichi, $ni) # 引数を出力する Write-Host $ichi Write-Host $ni スクリプトを実行したときにたとえばこんなかんじになる。 .\script.…

PowerShellで自分のファイル名を取得する

概要 PowerShellをつかって実行中の自分のファイル名を取得してみます。 こんなかんじでできます こんなかんじでできます。 $my_script_name = $myInvocation.MyCommand.name PowerShell実践ガイドブック クロスプラットフォーム対応の次世代シェルを徹底解…

AttributeError: module 'logging' has no attribute 'basicConfig'のエラーの解消法

概要 Pythonでこんなかんじのエラーがでた。 $ python logging.py Traceback (most recent call last): File ".\logging.py", line 1, in <module> import logging File "C:\Users\takak\blog_python\logging.py", line 2, in <module> logging.basicConfig(format='%(asctim</module></module>…