1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AWS その2Advent Calendar 2020

Day 21

AWS CloudShell を翻訳CLIとして使う

Last updated at Posted at 2020-12-20

TL;DR

動画のとおりAWS CloudShellを対話翻訳器にするコマンドです。CloudShellおじさんと呼ばれたかっただけの小ネタです。
CloudShellでTranslateCLI.gif

AWS CloudShellとは

AWS re:Invent 2020で発表された管理コンソールから無料で使えるCLIコンソールです。

参考:Amazon Web Services ブログ AWS CloudShell – AWS リソースへのコマンドラインアクセス

AWS CloudShellは管理コンソールの上の">"ボタンをおすと現れるWebUIのターミナルシェルです。
印象としては「デフォルトで用意されているちっちゃいCloud9」です。ただし、違いもあって、CDE的な機能はないし、EC2の管理画面をみてもCloudShell用のEC2インスタンスは見つからない。いまのところVPCの外で動いて管理コンソールのIAM User権限でAPIを叩ける見えない無料インスタンスといったところ。

ウィンドウペインは縦、横、タブに分割可能。ActionsにFile UploadがあるのはCloud9同様。pwshとzshが利用可能。リージョンあたり 5セッションまで同時利用可能。
CloudShellでTranslateCLI-1.jpg

揮発性のインスタンスではなくて、1GBのディスクスペースは永続的に維持されます。1GBの永続ストレージは/homeだけなので注意(シェルのワークエリアとして別に15GBが確保されている)。yumなどでのインストールも$HOMEヘのみ可能とのこと。
CloudShellでTranslateCLI-2.jpg

CloudShell上で翻訳するワンライナー

すぐにマネコンから開けるCLIができました。そうなると手元の作業はCLIで済ませたくなるのが人情。というわけで、AWS CLIのワンライナーで対話的に日英の翻訳をするシェルエイリアスを作りました。transe2jが英語から日本語、transj2eが日本語から英語です。プロンプトに翻訳元文書を入力すると日英翻訳してくれます。Ctl-Cで終了です。

実行例

実行例はCloudShellを立ち上げて、コマンド叩くだけのこんな感じです。

[cloudshell-user@ip-10-0-97-xxx ~]$ transe2j
English> It translates strings from English to Japanese interactively.
英語から日本語に文字列を対話的に翻訳します。
English> Hello, how are you?
こんにちは、元気ですか?
English> ^C

[cloudshell-user@ip-10-0-97-xxx ~]$ transj2e
Japanese> このコマンドは日本語から英語へ翻訳します。
This command translates from Japanese to English.
Japanese> 今日はいい天気ですね。
It's nice weather today.
Japanese> ^C
[cloudshell-user@ip-10-0-97-xxx ~]$ 

設定方法

~/.bashrcの末尾に以下の4行を追加してCloudShellを開きなおしてください。

# Amazon Translater CLI
export LANG=ja_JP.UTF8
alias transe2j='while true;do echo -n "English> ";read STR; aws translate translate-text --source-language-code "en" --target-language-code "ja" --query 'TranslatedText' --output text --text "$STR";done'
alias transj2e='while true;do echo -n "Japanese> ";read STR; aws translate translate-text --source-language-code "ja" --target-language-code "en" --query 'TranslatedText' --output text --text "$STR";done'

実行するIAM Userにはarn:aws:iam::aws:policy/TranslateFullAccess権限が必要です。

解説

翻訳はAWSの翻訳サービス「Amazon Translate」をAWS CLIから呼び出しています。Amazon Translateには「リアルタイム翻訳」機能があり、管理コンソールから最大5,000文字までの文章を翻訳することができます。

スクリーンショット 2020-12-20 16.28.54.png

これをCloudShell上のAWS CLIで対話的に呼びだしています。TranslateはUTF-8が前提なので、LANG環境変数を設定しています。
ぶっちゃけCloudShell上でなくてもローカルからでも同じシェルで動作します(^^; 。

参考

AWS CloudShell
Amazon Translate : AWS CLIをつかった利用開始方法

良いお年を!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?