genvid.toolbox.AWSTool

class genvid.toolbox.AWSTool(*, default_region=None, **kwargs)

ベースクラス: BaseTool

AWS リソースにアクセスして操作するためのユーティリティ。

パラメータ

default_region (str) -- デフォルト AWS 領域を上書き。

バージョン 1.20.0 で変更: ドキュメントの更新。*セッションとインスタンスが必要に応じて遅延インスタンス化。適用可能なすべてのメソッドに、オプションでキーワードのみのパラメータ `region=None` が追加され、どのリージョンで処理を行うかを指定できるようになりました。 クラスのデフォルトリージョンは、AWS の設定によって定義されたデフォルトリージョンからオーバーライドすることができます。

バージョン 1.33.0 で変更: AWSの依存関係をオプションにする。

NAME = 'aws'

このツールのロガー名。子 class (children) で再定義する必要があります。

DESCRIPTION = 'Utilities to access and manipulate AWS resources.'

ヘルプパーサーで使用されるツールの説明。子 class (children) で再定義する必要があります。

AWS_GLOBAL_REGION = 'global'

AWS グローバル領域の参照に使用するキー。

AMI_NAME_TMPL = '{prefix}-{type}-{version}-{timestamp}'

AMI 名のテンプレート。

AMI_NAME_RE = re.compile('(?P<prefix>.*)-(?P<type>[^-]*)-(?P<version>[^-]*)-(?P<timestamp>\\d{8}-\\d{6})')

AMI と一致する正規表現。

EXITCODE_MESSAGE_RE = re.compile('ExitCode of User Data with PID: (?P<PID>\\d+) is (?P<ExitCode>\\d+)')

ユーザーデータスクリプトの終了コードと一致する正規表現。

property aws_default_region
戻り値

デフォルトの領域名。

property aws_session
戻り値

デフォルト AWS セッション

注釈

このメソッドで返されるオブジェクトについては、boto3 Session API documentation を参照してください。

property aws_ec2
戻り値

デフォルト領域の AWS EC2 リソースサービスクライアント。

注釈

このメソッドで返されるオブジェクトについては、boto3 EC2 API documentation を参照してください。

property aws_s3
戻り値

デフォルト領域の AWS S3 リソースサービスクライアント。

注釈

このメソッドで返されるオブジェクトについては、boto3 S3 API documentation を参照してください。

property aws_sts
戻り値

デフォルト領域の AWS STS クライアント。

警告

リクエストは、全体ではなく、デフォルト領域に送信されます。リクエストを sts.amazonaws.com に送信するには、 aws_sts_global() を使用してください。

注釈

このメソッドで返されるオブジェクトについては、boto3 STS API documentation を参照してください。

property aws_sts_global
戻り値

AWS STS グローバルクライアント。

注釈

このメソッドで返されるオブジェクトについては、boto3 STS API documentation を参照してください。

aws_session_in(region=None)
戻り値

AWS セッション。

パラメータ

region (str) -- セッションが動作する領域。

注釈

このメソッドで返されるオブジェクトについては、boto3 Session API documentation を参照してください。

aws_ec2_in(region=None)
戻り値

AWS EC2 リソースサービスクライアント。

パラメータ

region (str) -- クライアントが動作する領域。

注釈

このメソッドで返されるオブジェクトについては、boto3 EC2 API documentation を参照してください。

aws_s3_in(region=None)
戻り値

AWS S3 リソースサービスクライアント。

パラメータ

region (str) -- クライアントが動作する領域。

注釈

このメソッドで返されるオブジェクトについては、boto3 S3 API documentation を参照してください。

aws_sts_in(region=None)
戻り値

AWS STS クライアント。

パラメータ

region (str) -- クライアントが動作する領域。

警告

regionNone の場合、リクエストは、全体ではなく、デフォルト領域に送信されます。リクエストを sts.amazonaws.com に送信するには、 aws_sts_global() を使用してください。

注釈

このメソッドで返されるオブジェクトについては、boto3 STS API documentation を参照してください。

aws_tag_ami_snapshot(ami, ec2=None, *, region=None)

AMI タグを EBS スナップショットにコピーします。

コピーするタグ:

  • Name

  • Version

  • InstanceType

パラメータ
  • ami -- タグをスナップショットにコピーする EC2 イメージ。 .. 注意:: AMI (EC2 イメージ) の API APIは、boto3 EC2.Image API documentation からアクセスできます。

  • ec2 -- 使用する EC2 リソースサービスクライアント。 .. :: 1.20.0 で廃止。 このパラメータは、region パラメータを設定して、AWSTool に正しいクライアントを提供させるだけで、代用可能。

  • region (str) -- スナップショットを入れておく領域。 .. 注意:: region パラメータは、ec2None の場合にのみ使用可能。

static aws_publish_image(ami)

AMI を公開します。

パラメータ

ami -- 動作する EC2 イメージ。 .. 注意:: AMI (EC2 イメージ) の API は、boto3 EC2.Image API documentation からアクセスできます。

aws_list_amis(ami_type: str, owner: str = '', prefix: str = '', version: str = '', *, region=None)

利用可能な AMI のリスト。

パラメータ
  • ami_type (str) -- AMI のタイプ。以下のいずれか: * wingame * server

  • owner (str) -- 指定すると、owner でフィルタリングします。 .. 注意:: genvidtech の値は Genvid Technologies Account の特殊なエイリアスです。

  • prefix (str) -- フィルタの接頭辞。 '*' を指定可能。 .. 重要:: 指定しない場合: wingame AMI では * default、それ以外は * genvidtech となります。

  • version (str) -- フィルタリングするバージョン。デフォルトは GENVID_TOOLBOX_VERSION

  • region (str) -- 検索する領域を指定します。

戻り値

EC2 イメージのリスト。

aws_copy_ami(ami_id, regions, public=False, force=False, *, region=None)

AMI を複数の領域にコピーします。

パラメータ
  • ami_id -- ソースを検索する AMI 識別子

  • regions -- 対象領域への iterable。

  • public (bool) -- すべての AMI を公開するかどうか。 .. 警告:: ソース AMI が公開されます。

  • force (bool) -- 指定先が存在する場合は上書きされます。

  • region (str) -- ソース AMI 領域の指定に使用します。

戻り値

コピーを含むリスト。

aws_rename_ami(ami_id, prefix, public=False, force=False, *, region=None)

AMI をコピーし、初期接頭辞を変更します。

パラメータ
  • ami_id -- ソースを検索する AMI 識別子

  • prefix -- コピー後に新しく付けるプレフィックス。.. 警告:: 新しい接頭辞は、 AMI_NAME_TMPL のフォーマットに使用されます。新しい名前は、 AMI_NAME_RE で定義する正規表現と一致している必要があります。

  • public (bool) -- コピー後の AMI を公開するかどうか。

  • force (bool) -- 指定先が存在する場合は上書きされます。

  • region (str) -- ソース AMI 領域の指定に使用します。

戻り値

コピー後の AMI。

aws_ami_snapshots(ami)

EC2 イメージに関連付けられた EBS スナップショットのリストを生成します。

パラメータ

ami -- 動作する EC2 イメージ。 .. 注意:: AMI (EC2 イメージ) の API は、boto3 EC2.Image API documentation からアクセスできます。

バージョン 1.13.0 で追加.

aws_modify_ami_permissions(ami_id: str, user_ids: Optional[List[str]] = None, *, public: bool = False, region: Optional[str] = None, remove: bool = False, reset: bool = False)

AMI のアクセス許可を設定します。

パラメータ
  • ami_id -- AMI の ID。

  • user_ids -- アクセスを設定するためのアカウント ID のオプションリスト。

  • public -- Group: all の許可を追加します。

  • region -- AMI のリージョン。 デフォルトは現在のリージョン。

  • remove -- 許可を追加する代わりに削除します。

  • reset -- 追加する前に許可をリセット。削除が True の場合は無効。

バージョン 1.30.0 で追加.

aws_describe_ami_permissions(ami_id: str, *, region: Optional[str] = None) Tuple[bool, List[str]]

AMI のアクセス許可を設定します。

パラメータ
  • ami_id -- AMI の ID。

  • region -- AMI のリージョン。 デフォルトは現在のリージョン。

戻り値

最初のメンバーとして、また AMI が 2 番目のメンバーとしてパブリックである場合の、ユーザー ID のリスト (空の場合があります) があるタプル。

バージョン 1.30.0 で追加.

aws_delete_ami(ami, dryrun: bool = False, *, region=None)

イメージと関連するスナップショットを登録解除します。

注釈

このメソッドはすべての処理を記録します。

パラメータ
  • ami -- 動作する EC2 イメージ。 .. 注意:: AMI (EC2 イメージ) の API は、boto3 EC2.Image API documentation からアクセスできます。

  • dryrun (bool) -- 表示のみ。実際には削除されません。

  • region (str) -- ソース AMI 領域の指定に使用します。

バージョン 1.13.0 で追加.

aws_format_bucket_key(key: str) str

バケットキーが間違っていないことを確認してください。

キーが空白の場合には、"/" で始めるものを削除し、"/" で終わるものを追加します。

パラメータ

key (str) -- フォーマットするキー。

戻り値

フォーマットされる可能性のあるキー。

バージョン 1.20.0 で追加.

aws_upload_file(bucket, key: str, filepath: str, *, region=None)

特定の S3 バケットにファイルをアップロードします。

パラメータ
  • bucket -- ファイルをアップロードする S3 バケット。 .. 注意:: S3 バケットの API は、boto3 S3.Bucket API documentation からアクセス可能。 .. 注意:: バケットの識別子 str を提供可能。その場合、そのバケットの検索は自動で処理されます。

  • key (str) -- バケットの新しいファイルに追加するキー。

  • filepath (str) -- アップロードするファイルのパス。

  • region (str) -- バケット ID を使用した場合の検索領域。

update_s3_images(prefixes: List[str], bucket_id: str, key_prefix: str, images_folder: Optional[Union[Path, str]] = None, *, region=None)

S3 バケットに画像をアップロードします。

警告

アップデートが必要かどうかを、ファイルサイズで決定します。新しいファイルが既存のファイルと同一サイズであった場合、アップデートは失敗します。

パラメータ
  • bucket -- 処理を行う S3 バケット識別子。

  • key_prefix -- ファイルをアップロードするプレフィックスキー。

  • prefixes -- このプレフィックスのファイルのみをアップデートします。 .. 警告:: プレフィックスが一致するバケット内のすべてのファイルは、 新しいバージョンで置き換えられない場合でも、すべて削除されます。

  • images_folder -- ソースイメージが含まれるディレクトリ。

  • region (str) -- バケットが存在する領域。

バージョン 1.20.0 で変更: images_folder パラメータを追加。

bucket_exist(boto_client, bucket_id: str) bool

バケットが存在するかを確認します。

全バケットの一覧を取得し、bucket_id パラメータで指定した名前のバケットが存在するかどうかを確認します。

パラメータ
  • boto_client -- boto3 クライアントインスタンスを指定する必要があります。

  • bucket_id -- 存在を確認する必要のあるバケット名。

戻り値

バケットが存在する場合は True を返します。

get_bucket_region(bucket_id, boto_client=None) str

S3 バケットのリージョンを取得

パラメータ
  • bucket_id -- バケット名

  • boto_client -- オプション。指定しない場合は作成されます。

戻り値

S3 バケットのリージョンを返します。

get_s3_images_bucket_config(bucket: str, key_prefix='/', *, region=None) dict

S3 バケットからイメージ設定を取得します。

重要

イメージ名は、選択される DockerTool.RE_IMAGE_IMAGEID と一致する必要があります。

パラメータ
  • bucket -- 処理を行うバケット識別子。

  • key_prefix -- 比較するバケットキーのプレフィックス。

  • region (str) -- バケットが含まれる領域。

戻り値

取得したイメージ設定のリスト。

resolve_s3_domain(bucket_name, region) str
aws_wait_for_windows_instance(iid: str, timeout: float = 1800, expect: Optional[Callable[[str], Optional[int]]] = None, *, region=None) int

Windows インスタンスの準備ができるまでお待ちください。

Windows インスタンスの準備ができていると判断するには、以下の条件を満たす必要があります。

  • インスタンスが running である必要があります。

  • インスタンスが ok である必要があります。

  • インスタンスコンソールから最新のアウトプットが提供されている場合、提供された expect callable は None 以外の値を返します。

重要

callable が None の場合 (提供されていない場合)、インスタンスコンソールへのアウトプットは、EXITCODE_MESSAGE_RE と一致し、このメソッドがユーザーデータスクリプトの終了コードを取得可能です。

パラメータ
  • iid -- AWS インスタンス ID。

  • timeout -- RuntimeError が発生するまでのタイムアウト (秒)。

  • expect -- Collable はコンソールアウトプットを引数として、None (準備ができていない場合) または終了コードを返します。

  • region (str) -- Windows インスタンスの検索領域。

戻り値

EXITCODE_MESSAGE_RE 正規表現で取得した expect の戻り値または終了コード。

バージョン 1.19.0 で追加.

class aws.AWSTool

genvid.toolbox.AWSTool の実装