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) -- クライアントが動作する領域。
警告
region
がNone
の場合、リクエストは、全体ではなく、デフォルト領域に送信されます。リクエストを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
パラメータは、ec2
がNone
の場合にのみ使用可能。
- 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 を複数の領域にコピーします。
- 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) -- バケットが含まれる領域。
- 戻り値
取得したイメージ設定のリスト。
- 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