インフラエンジニアの技術ブログ

日々学んでいることをブログでまとめていきます。

aws_s3_ライフサイクルマネジメント(LCM)の設定

Sライフサイクルマネジメントの設定
用途:一定期間が経過したファイルを削除

事前準備
1.AWSログイン後,S3サービスから新規でバケットを作成
パケット名---ユニークな名称をつける
リージョン---アジアパシフィック(東京)
「同じバケット内でオブジェクトのすべてのバージョンを保持します」---チェックつける

事前準備で用意したバケット名をクリック
管理タブをクリック→[ライフサイクルルールの追加]をクリック

以下の設定を実施
名前とスコープ 編集 

①名前とスコープ
[ルール名を入力する]
→任意の値を入力

②移行
[現行バージョン]にチェック
[移行を追加する]をクリック
[オブジェクト作成]→[標準-IAへの移行の期限]を選択
オブジェクト作成からの日数---30を選択
[移行を追加する]をクリック
[オブジェクト作成]→[Amazon Glaclerへの移行の期限]を選択
オブジェクト作成からの日数---60を選択

[以前のバージョン]にチェック
後は現行バージョンと同じ設定を実施

③有効期限
[現行バージョン]にチェック
([オブジェクトの現行バージョンを失効するもチェックありを確認すること])
[以前のバージョン]にチェック
([オブジェクトの現行バージョンを失効するもチェックありを確認すること])

④確認
[保存]をクリック

ライフサイクルルールがひとつ作成される。

aws_s3_バケット作成_画像公開

AWSのS3から、バケット作成→画像をアップロード→公開までをやってみた。

 

awsログイン(IAMで作成したアカウント利用)

 

画面左上部分[サービス]-[S3]をクリック

 

1.バケット作成
[バケットを作成する]をクリック

①名前とリージョン
バケット
ユニークな値を設定

リージョン
アジアパシフィック(東京)

[次へ]

②オプションの設定
Tags
のテキストボックス2箇所に各々任意の値を設定→メモしておく

③アクセス許可設定
デフォルト(4つのチェックボックスにチェックあり)

④確認
設定に問題なければ[パケットを作成]をクリック

該当パケット名をクリック

 

2.画像アップロード

 

[アップロード]をクリック

①ファイルの選択
[ファイルを追加]をクリック→公開したい画像を選択

②アクセス許可を設定する
デフォルトのまま

③プロパティを設定する
デフォルトのまま

④アップロード
設定に問題なければ[アップロード]をクリック

 

3.公開
画像ファイル名左横のチェックボックスにチェックを入れる

 

画面中央あたり[アクション]-[公開する]をクリック

 

別ウィンドウが表示。[公開する]をクリック

 

バケット名左横のチェックボックスにチェックを入れる

 

[パブリックアクセス設定を編集する]をクリック

 

別ウィンドウが表示。[保存]をクリック

 

別ウィンドウが表示。テキストボックスに

確認
と入力後、画面右下の[確認]をクリック

再度該当バケット名→公開した該当画像ファイルのチェックボックスをつける
→画面中央あたり[アクション]-[公開する]をクリック
→[公開する]をクリック

 

該当画面ファイル名をクリック

 

画面下部にある[オブジェクトURL]に記載されたURLをクリック

 

画面が表示

 https://s3-ap-northeast-1.amazonaws.com/t0nyu-satsuma190211-backet/touseki-tonyu.jpg 

 

休憩_sfcのソフトをエミュレータで触ってみる。

スーパーファミコンのソフトが、PC上で遊べるらしい。

 

その際エミュレータなるソフトを利用を利用すればよいらしい。

 

以下のサイトで、まずはセットアップをこころみたい。

 

スーパーファミコン エミュレータ Snes9x の使いかた : Windows 10 編bbb9780.wordpress.com

 

独学プログラマー_15章_知識を一つにまとめる_カードゲーム(戦争)

独学プログラマー15章掲載されていたコードを手元で、入力して無事に実行できた。

ここで掲載しておく

 

作成およそ2時間

まずは作成環境とそのコード内容

-----

[root@centos]# cat /etc/redhat-release
CentOS release 6.9 (Final)

[root@centos]# ls -l |grep war
-rw-r--r-- 1 root root 2901  2月 10 14:59 2019 war.py

[root@centos]# cat war.py
from random import shuffle

class Card:
    suits = ["spades", "hearts", "diamonds", "clubs"]
    values = [None, None, "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King", "Ace"]

    def __init__(self, v, s):
        """スート(マーク)も値も整数値です"""
        self.value = v
        self.suit = s

    def __lt__(self, c2):
        if self.value < c2.value:
            return True
        if self.value == c2.value:
            return True
        else:
            return False
        return False

    def __gt__(self, c2):
        if self.value > c2.value:
            return True
        if self.value == c2.value:
            if self.suit > c2.suit:
                return True
            else:
                return False
        return False

    def __repr__(self):
        v = self.values[self.value] + " of " \
            + self.suits[self.suit]
        return v

class Deck:
    def __init__(self):
        self.cards = []
        for i in range(2, 15):
            for j in range(4):
                self.cards.append(Card(i, j))
            shuffle(self.cards)

    def rm_card(self):
        if len(self.cards) == 0:
            return
        return self.cards.pop()


class Player:
    def __init__(self, name):
        self.wins = 0
        self.card = None
        self.name = name


class Game:
    def __init__(self):
        name1 = input("プレーヤー1の名前 ")
        name2 = input("プレーヤー2の名前 ")
        self.deck = Deck()
        self.p1 = Player(name1)
        self.p2 = Player(name2)

    def wins(self, winner):
        w = "このラウンドは {} が勝ちました"
        w = w.format(winner)
        print(w)

    def draw(self, p1n, p1c, p2n, p2c):
        d = "{} は {}、{} は {} を引きました"
        d = d.format(p1n, p1c, p2n, p2c)
        print(d)

    def play_game(self):
        cards = self.deck.cards
        print("戦争を始めます")
        while len(cards) >= 2:
            m = "q で終了、それ以外のキーでPlay:"
            response = input(m)
            if response == 'q':
                break
            p1c = self.deck.rm_card()
            p2c = self.deck.rm_card()
            p1n = self.p1.name
            p2n = self.p2.name
            self.draw(p1n, p1c, p2n ,p2c)
            if p1c > p2c:
                self.p1.wins += 1
                self.wins(self.p1.name)
            else:
                self.p2.wins += 1
                self.wins(self.p2.name)

        win = self.winner(self.p1, self.p2)
        print("ゲーム終了、{} の勝利です!".format(win))

    def winner(self, p1, p2):
        if p1.wins > p2.wins:
            return p1.name
        if p1.wins < p2.wins:
            return p2.name
        return "引き分け!"

game = Game()
game.play_game()
[root@centos69]#

------

 

以下実行結果

注意点

実行コマンドが

python war.py

だとpython2.7で実行されてしまいうまく動かない。

該当エラー

SyntaxError: Non-ASCII character '\xe3' in file war.py on line 8, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

 

手元のデフォルトのpythonバージョン

[root@centos]# python --version
Python 2.7.9

 

・以下が表示されたら[Enter]キーを押下している

q で終了、それ以外のキーでPlay:

・taroとjiroは手入力文字

------

[root@centos]# /usr/bin/python3.6 war.py
プレーヤー1の名前 taro
プレーヤー2の名前 jiro
戦争を始めます
q で終了、それ以外のキーでPlay:
taro は King of hearts、jiro は 5 of clubs を引きました
このラウンドは taro が勝ちました
q で終了、それ以外のキーでPlay:
taro は 5 of diamonds、jiro は 9 of clubs を引きました
このラウンドは jiro が勝ちました
q で終了、それ以外のキーでPlay:
taro は Ace of hearts、jiro は 6 of spades を引きました
このラウンドは taro が勝ちました
q で終了、それ以外のキーでPlay:
taro は 10 of diamonds、jiro は King of clubs を引きました
このラウンドは jiro が勝ちました
q で終了、それ以外のキーでPlay:
taro は 7 of spades、jiro は 9 of spades を引きました
このラウンドは jiro が勝ちました
q で終了、それ以外のキーでPlay:
taro は 4 of hearts、jiro は Ace of diamonds を引きました
このラウンドは jiro が勝ちました
q で終了、それ以外のキーでPlay:
taro は 6 of diamonds、jiro は Queen of diamonds を引きました
このラウンドは jiro が勝ちました
q で終了、それ以外のキーでPlay:
taro は 10 of clubs、jiro は 9 of hearts を引きました
このラウンドは taro が勝ちました
q で終了、それ以外のキーでPlay:
taro は 2 of hearts、jiro は Jack of diamonds を引きました
このラウンドは jiro が勝ちました
q で終了、それ以外のキーでPlay:
taro は 3 of clubs、jiro は 4 of diamonds を引きました
このラウンドは jiro が勝ちました
q で終了、それ以外のキーでPlay:
taro は 6 of hearts、jiro は Jack of hearts を引きました
このラウンドは jiro が勝ちました
q で終了、それ以外のキーでPlay:
taro は 8 of diamonds、jiro は 3 of diamonds を引きました
このラウンドは taro が勝ちました
q で終了、それ以外のキーでPlay:
taro は 7 of hearts、jiro は 3 of spades を引きました
このラウンドは taro が勝ちました
q で終了、それ以外のキーでPlay:
taro は 4 of spades、jiro は Queen of clubs を引きました
このラウンドは jiro が勝ちました
q で終了、それ以外のキーでPlay:
taro は 6 of clubs、jiro は Queen of spades を引きました
このラウンドは jiro が勝ちました
q で終了、それ以外のキーでPlay:
taro は 2 of spades、jiro は 8 of hearts を引きました
このラウンドは jiro が勝ちました
q で終了、それ以外のキーでPlay:
taro は King of diamonds、jiro は 8 of clubs を引きました
このラウンドは taro が勝ちました
q で終了、それ以外のキーでPlay:
taro は 8 of spades、jiro は 2 of clubs を引きました
このラウンドは taro が勝ちました
q で終了、それ以外のキーでPlay:
taro は Ace of spades、jiro は Jack of clubs を引きました
このラウンドは taro が勝ちました
q で終了、それ以外のキーでPlay:
taro は 9 of diamonds、jiro は Queen of hearts を引きました
このラウンドは jiro が勝ちました
q で終了、それ以外のキーでPlay:
taro は 5 of spades、jiro は 7 of diamonds を引きました
このラウンドは jiro が勝ちました
q で終了、それ以外のキーでPlay:
taro は Ace of clubs、jiro は Jack of spades を引きました
このラウンドは taro が勝ちました
q で終了、それ以外のキーでPlay:
taro は 3 of hearts、jiro は 4 of clubs を引きました
このラウンドは jiro が勝ちました
q で終了、それ以外のキーでPlay:
taro は 5 of hearts、jiro は 10 of spades を引きました
このラウンドは jiro が勝ちました
q で終了、それ以外のキーでPlay:
taro は King of spades、jiro は 7 of clubs を引きました
このラウンドは taro が勝ちました
q で終了、それ以外のキーでPlay:
taro は 10 of hearts、jiro は 2 of diamonds を引きました
このラウンドは taro が勝ちました
ゲーム終了、jiro の勝利です!
[root@centos69 dokugaku]#