Python(boto3)を用いたAWS利用のためセットアップメモ(S3の起動とAIサービスの利用)

AWSのセットアップ

  1. AWSに登録
    https://aws.amazon.com/
    
  2. IAMユーザーコンソールを開く
  3. グループを作成
    # サンプル
    グループ名:admin
    ポリシー:AdoministratorAccess
    
  4. ユーザーの追加
    アクセスキーIDとシークレットアクセスキーをメモ シークレットアクセスキーはこの時しか表示されない

Python環境のセットアップ

  1. AWS CLIをインストール

    $ pip install awscli
    
  2. アクセスキーを設定

    $ aws configure
    

    設定事項

    AWS Access Key ID [****************]: [アクセスキーID]
    AWS Secret Access Key [************]: [アクセスキーID]
    Default region name [ap-northeast-1]: ap-northeast-1
    Default output format [json]: json
    
  3. Boto3をインストール

    $ pip install boto3
    
  4. その他
    以下のコマンドでアクセスキーIDとアクセスキーIDを確認できる

$ aws configure get aws_access_key_id
$ aws configure get aws_secret_access_key

S3(Simple Storage Service)の起動

  1. バケットの作成
    import boto3
    import random
    
    s3 = boto3.client("s3",region_name="ap-northeast-1")
    bucketName = "mybucket"+str(random.uniform(0,10**5)) #名前空間が共有されているため一意の名前が必要
    s3.create_bucket(Bucket=bucketName, CreateBucketConfiguration={'LocationConstraint': 'ap-northeast-1'},)
    
  2. 作成されたバケットの確認
    s3.list_buckets()
    
  3. バケットの削除
    s3.delete_bucket(Bucket=bucketName)
    

AIサービスの利用

AWSが提供する一部のサービスを使ってみた.

  1. Translate
    テキストを翻訳する機能
    import boto3
    translate = boto3.client("translate")
    text = "こんにちは"
    result = translate.translate_text(Text=text, SourceLanguageCode="ja", TargetLanguageCode="en")
    print(result["TranslatedText"])
    
  2. Polly
    テキストから音声を合成する機能
    import boto3
    import contextlib
    import os
    
    polly = boto3.client("polly")
    text = "お元気ですか"
    result = polly.synthesize_speech(Text=text, OutputFormat="mp3", VoiceId="Mizuki")
    path = "polly_synth.mp3"
    with contextlib.closing(result["AudioStream"]) as stream:
        with open("path", "wb") as file:
            file.write(stream.read())
    os.startfile(path)
    
  3. Comprehend
    自然言語処理を行う機能
    import boto3
    import json
    
    comprehend = boto3.client("comprehend", "us-east-2")
    text = "I'm looking forward to visiting Japan next summer"
    
    # 文字列の言語を検出
    result = comprehend.detect_dominant_language(Text=text)
    # 文字列の感情を分析
    result = comprehend.detect_sentiment(Text=text,LanguageCode="en")
    # 文字列の構文を解析
    result = comprehend.detect_syntax(Text=text, LanguageCode="en")
    

参考

Tags: