$30 off During Our Annual Pro Sale. View Details »

WindowsでAWS CLIのタブ補完をしようとしたら、色々引っかかった話

WindowsでAWS CLIのタブ補完をしようとしたら、色々引っかかった話

JAWS-UG朝会#38の登壇資料です

da-hatakeyama

October 06, 2022
Tweet

More Decks by da-hatakeyama

Other Decks in Technology

Transcript

  1. WindowsでAWS CLIのタブ補完を
    しようとしたら、色々引っかかった話
    JAWS-UG朝会 #38
    畠山 大治

    View Slide

  2. 自己紹介 – 基本情報
    ⚫名前: 畠山 大治
    ⚫所属: KDDI株式会社 クラウドサービス推進部
    ⚫趣味: 読書、映画・アニメ
    Perfumeを追いかける(ファンクラブ 8年目)
    ⚫好きなAWSサービス:
    Cloud9 CloudShell VPC

    View Slide

  3. 自己紹介 – 仕事関連
    ⚫職種: 法人のお客様と相対するシステムエンジニア
    cloudpack with KDDI
    https://biz.kddi.com/lp/cloudpack/
    KDDI Cloud Platform Service
    (KCPS)
    https://doc.cloud-platform.kddi.ne.jp/

    View Slide

  4. アジェンダ
    ⚫手順のご紹介
    ⚫AWS CLIのインストール手順
    ⚫AWS CLIの設定ファイル、認証情報ファイルのセットアップ手順
    ⚫WindowsでAWS CLIのタブ補完を有効化する手順
    ⚫引っかかりポイントの原因と対策
    (AWSよりもWindows要素強め。。。)

    View Slide

  5. こんなこと思ったことありませんか?
    ⚫コンソールにログインせずに AWS CLI 使ってみたい
    ⚫開発環境がローカルにあるの、なんかかっこいい
    ⚫Windows + AWS CLIの記事が少ない。。。
    何もしなくても AWS CLI が使える Cloud9、CloudShell 素晴らしい!
    でも・・・

    View Slide

  6. AWS CLIのインストール・セットアップ
    1. どちらかの方法で AWS CLI をインストールする
    i. インストーラーをダウンロードして実行する
    ii. コマンドを使ってインストール
    C:¥> msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi
    とくに問題なし
    [Next] を連打

    [Install] でインストール完了

    View Slide

  7. AWS CLIのインストール・セットアップ
    2. 設定ファイルと認証情報ファイルをセットアップする
    cf.) 設定ファイル、認証情報ファイルの保存先:C:¥Users¥ローカルユーザー名¥.aws
    $ aws configure
    AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
    AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
    Default region name [None]: us-west-2
    Default output format [None]: json
    https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-files.html
    とくに問題なし

    View Slide

  8. タブ補完有効化手順 – 概要
    1. PowerShellプロファイルを開く
    無ければ作成(PowerShell ほとんど使ってない場合は無い可能性大)
    2. プロファイルにコードを入力して保存
    ※Register-ArgumentCompleter:
    タブ補完機能を新規登録することができるコマンド、タブ補完するために実行するスクリプトを-ScriptBlockに記載
    PS C:¥> Notepad $PROFILE
    PS C:¥> if (!(Test-Path -Path $PROFILE ))
    { New-Item -Type File -Path $PROFILE -Force }
    Register-ArgumentCompleter -Native -CommandName aws -ScriptBlock {
    param($commandName, $wordToComplete, $cursorPosition)
    $env:COMP_LINE=$wordToComplete
    $env:COMP_POINT=$cursorPosition
    aws_completer.exe | ForEach-Object {
    [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_)
    }
    Remove-Item Env:¥COMP_LINE
    Remove-Item Env:¥COMP_POINT
    }
    引っかかり①

    View Slide

  9. タブ補完有効化手順 – 概要
    3. シェルをリロードするとタブ補完ができるようになる!
    補完で使用できるコマンドを一覧表示させたいときは、Ctrl + [Space] を入力
    $ aws sTab
    $ aws s3
    $ aws sCtrl + Space
    s3 ses sqs sts swf
    s3api sns storagegateway support
    引っかかり②

    View Slide

  10. 引っかかり①
    ⚫なぜかコマンドが実行できない・・・
    ⚫Windowsセキュリティからなんか通知がきた
    ⚫Windows セキュリティのフォルダアクセス制限に引っかかっていた
    PS C:¥> if (!(Test-Path -Path $PROFILE ))
    { New-Item -Type File -Path $PROFILE -Force }
    設定をオフ、もしくはアプリの追加を
    行うことでコマンドが実行できるようになった!
    もしかして・・・

    View Slide

  11. 引っかかり②
    ⚫シェルをリロードしたらエラーが・・・
    ⚫PowerShell はデフォルトでスクリプトファイルを実行できない設定になっている
    ⚫スクリプト実行ポリシーを変更しないと、タブ補完のスクリプトが動かない
    ⚫「Set-ExecutionPolicy」コマンドでポリシーの変更ができる
    このシステムではスクリプトの実行が無効になっているため、ファイル hoge¥hoge¥hoge.ps1 を読み込むことができ
    ません。詳細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/?LinkID=135170) を参照し
    てください。
    Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
    ポリシー変更の対象 割り当てる実行ポリシー

    View Slide

  12. その後・・・
    WSL2 を使うことにしました
    ⚫PowerShell のコマンドがわからなくて挫折
    ⚫コマンドプロンプトと PowerShell 、2つあるので混乱する
    ⚫コマンドプロンプトはlsできない、PowerShellはlsできるけどls -alはダメなの!?
    ⚫bash使いたい・・・
    ※WSL2(Windows Subsystem for Linux):
    Windows上でLinux(Ubuntu)を動作させるための仕組みのこと

    View Slide

  13. 手前味噌ですが・・・
    ⚫今日のLTの内容のもとになった記事を書いてます

    View Slide

  14. 最後に・・・
    ⚫JAWS DAYS 2022 ボランティアスタッフします!!
    申し込みがまだの方は是非申し込んでください!

    View Slide

  15. 素敵なAWS CLI (on Windows) ライフを!!

    View Slide