yuji0602’s blog

日々思っていることなど。

pythonでAWS シークレットマネージャーの値の取得と更新を試す

概要

最近AWS シークレットマネージャーを使い始めたのですが、値を取得するサンプルコードはシークレットマネージャー上で見れるものの、更新はどうやるのかなと思ったのでサンプルを書いてみました。

サンプルコード

とりあえずこんな感じで動きました。<SECRET_NAME>となっている部分は任意で書き換えてもらえればと思います。エンドポイントとリージョンもですね。

import boto3
import json
from botocore.exceptions import ClientError


class SecretsManager(object):
    def __init__(self):
        endpoint_url = "https://secretsmanager.us-west-2.amazonaws.com"
        region_name = "us-west-2"
        session = boto3.session.Session()
        self.client = session.client(
            service_name='secretsmanager',
            region_name=region_name,
            endpoint_url=endpoint_url
        )

    def get_secret(self, secret_name):
        get_secret_value_response = self.client.get_secret_value(
            SecretId=secret_name
        )

        if 'SecretString' in get_secret_value_response:
            return get_secret_value_response['SecretString']

        return get_secret_value_response['SecretBinary']

    def update_secret(self, secret_name, update_json):
        try:
            return self.client.update_secret(
                SecretId=secret_name,
                SecretString=update_json
            )
        except ClientError as e:
            print('Error!!!')
            print(e)


def main():
    secret_name = "<SECRET_NAME>"

    # シークレット値を取得
    sm = SecretsManager()
    secret = sm.get_secret(secret_name)
    print(secret)

    # シークレット値を更新
    secret_dict = json.loads(secret)
    secret_dict['xxxxx'] = 'piyo'
    sm.update_secret(secret_name, json.dumps(secret_dict))


if __name__ == '__main__':
    main()

まとめ

更新する方法も分かってしまえば難しいことではなかったようでした。辞書型で任意の値を設定した後にjson.loadsで変更すると意図した値で更新することが出来ました。 あとは用途を考えて、値を更新することがあればしていこうと思います。

週末に撮った写真

OLYMPUS OM-D E-M10 Mark Ⅲを買ってから雨の日以外は毎日カメラを持って散歩に出ています。

yuji0602.hatenablog.jp

メインで撮っているのはうちの小麦さんなので、大体の写真はこちらに載せています。

shibainu-komugi.hatenablog.com

小麦さん以外に極稀に他の写真を撮っているので、それをただ貼っていこうと思います。

まずは道に咲いてた花から。名前は分からないのですが良い色だったので撮ってみました。

f:id:yuji0602:20180520215231j:plain

次はあじさい2枚。ようやく色がついたあじさいが咲いてきましたね。

f:id:yuji0602:20180520215311j:plain

f:id:yuji0602:20180520215356j:plain

その次は林道で撮った2枚。最近朝から暑いので木陰で散歩すると涼しくて良いんですよね。

f:id:yuji0602:20180520215427j:plain

f:id:yuji0602:20180520215454j:plain

犬の散歩をしながらなので、左手にリードを持って右手でカメラで写真を撮ろうとしているので何気に忙しい感じです。とはいえカメラが良いので具合よくピントが合ってくれるので良いですね。

いつかレンズをM.ZUIKO DIGITAL ED 12-100mm F4.0 IS PROにしてみたいのですが、宝くじが当たったらかな。

まだまだカメラを使いこなせてないので明日もまた写真を撮っていきます。

BigQueryで複数記載したSQLの中から選択したSQLを実行する

今日、BigQueryのアルファ版に登録している人向けのメールが届いた。メール内容については以下のようになっています。

Dear BigQuery UI Alpha users,

Since the last update a month ago, we've rolled out more features and improvements to the BigQuery Cloud Console UI. If you haven't tried it in a while, or are new to it, please try it out, and let us know what you think!

* Redesigned query results. You will see a more tabular format, with a fixed pagination footer, a default of 50 rows per page, and clear indication of null values (as opposed to strings with "null" as the value, or missing record fields). We're still iterating on this, so it'll look even better soon!
* A few missing features are now implemented:
    * Save to Sheets for query results.
    * Column-based partitioning options in Create Table.
    * Run selected in the Query Editor.
* We've fixed several bugs, including:
    * Various issues with Saved Queries.
    * Better support for hiding and showing the query editor without losing your query job state.
    * Better table lookup behavior in the query editor's autocomplete functionality.
    * Better polling of queries, which should result in slightly more responsive "run query query" behavior, as well as fixed bugs around queries appearing to run forever (please report them if you see them). 
    * Wildcard GCS URLs are now allowed in Create Table.
    * Layout fixes for small screens.

We're still working hard towards our Beta release. You will see a <BETA> badge in the UI, but we haven't officially launched yet! That's there for the public launch; we apologize for any confusion.

If you see things that you've reported and are still missing or not fixed, please know that we will get to them! In the meantime, please continue reporting issues or sending us feature requests to bqui-feedback@google.com.

Thank you for being an BigQuery UI Alpha customer! 

Your BigQuery UI Team

この中で、 Run selected in the Query Editor. が個人的には嬉しかったので実際に試してみました。

BigQueryを開いて、New Queryの中に次のようなクエリを書いてみます。

-- 昨日日付
SELECT
  DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY) as yesterday,
  FORMAT_DATE('%Y/%m/%d', DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)) as formated_yesterday;

-- 数値にカンマを埋める
SELECT 
  input,
  FORMAT("%'d", input) as formatted
FROM (
  SELECT 123 AS input UNION ALL 
  SELECT 1234 AS input UNION ALL
  SELECT 12345 AS input UNION ALL
  SELECT 123456 AS input UNION ALL
  SELECT 1234567 AS input UNION ALL
  SELECT 12345678 AS input UNION ALL
  SELECT 123456789 AS input
);

このクエリを書いたまま、RUN QUERYボタンを押して実行するとエラーになりました。

f:id:yuji0602:20180517115100p:plain

なので、どちらかのクエリをコメントアウトして実行していました。

今回のメールで来ていた内容はクエリを選択した状態で実行すると良いようです。

f:id:yuji0602:20180517115511p:plain

選択した部分だけ実行できるのでだいぶ便利な気がしますね。

作業が捗りそうです。

shopifyでショップ開設までにやっていること

これはなに?

shopifyで何回かECサイトを作成しているので、よく見るところとか設定するところをメモしていきます。ショップを開設してからの作業となります。

ショップ作成した時にやること

ショップ作成した段階だとまだ一般の人にはパスワードページが表示される状態なので気兼ねなく設定周りを触ることが出来ます。

アカウント

言語設定

はじめは英語表示なので日本語表示に設定することが出来ます。画面右上のアカウントをクリックしてYour Profileをクリックするとプロフィール設定画面に遷移します。そこでLanguageという項目を見つけて、日本を設定してsaveすると日本語表示になります。

ただ、ヘルプページは英語なので英語力が必要となります。

設定

決済設定

管理画面の設定 > 決済設定にて設定できます。会社ではstripeとPayPalを利用しているので、それを連携するようにします。

stripe.com

www.paypal.com

配送設定

配送エリアによって送料を変えたい場合に設定します。管理画面の設定 > 配送にて設定できます。会社ではアメリカの場合は送料無料で、その他の地域は配送料の設定をしています。

通貨

日本以外をメインとする場合、通貨を変更します。管理画面の設定 > 一般設定にて設定できます。基準とフォーマットという項目にタイムゾーンや通貨の設定ができます。

決済放置

カートに商品を入れたまま放置しているユーザにメールを送信することが出来るようです。管理画面の設定 > チェックアウトにて設定できます。決済放置という項目にて、決済放置のメールを自動的に送信というチェックボックスにチェックを入れて、10時間後にメールをそうしんするようにしました。メールテンプレートは特に変えてないです。

販売チャネル

ショップテーマ

ショップテーマは無料のものと有料のものがあるのですが、無料の方を使っています。色々とテーマを確認したい場合は、管理画面のオンラインストア > テーマにて設定できます。

無料版で幾つかテーマを変えてみたりしたのですが、初期設定されているDebutで現状は運用しています。

ページをカスタマイズ

ショップテーマを選んだら、自分の好みに合わせてカスタマイズしてしまいましょう。管理画面のオンラインストア > テーマ > カスタマイズにて設定できます。また、liquidというテンプレートを直接触ってHTMLの変更やJavaScript, CSSの追加、変更をすることも出来ます。(ややハードルは高いです)

ページタイトル

ショップページのタイトルやメタディスクリプションを設定します。管理画面のオンラインストア > 各種設定にて設定できます。

Googleアナリティクス

Googleアナリティクスのタグを設定することが出来ます。管理画面のオンラインストア > 各種設定にて設定できます。拡張eコマースを有効にするとGoogleアナリティクスにてコンバージョンが表示されるようになります。

設定については以下URLの通りに行うと具合良く出来ます。

help.shopify.com

商品管理

商品を追加

画像を複数枚準備してここは粛々と登録していきます。管理画面の商品管理 > すべての商品 > 商品を追加するにて設定できます。

タイトルについては商品名を入れて、説明については記載したいことを色々書くことも出来ますし、現状サイトがあるようでしたらサイトから文章をコピペすると良いと思います。

価格の設定を間違えないようにしましょう。

コレクション

商品カテゴリを分ける時に使用するものなのかなと思って利用しています。管理画面の商品管理 > コレクション > コレクションを作成にて設定できます。ここで設定した条件と合うと自動で商品を引っ張ってきて表示してくれるようです。私はそれが最初分からず、手動で設定していました・・。

アプリ

shopifyはアプリが多いのが魅力的です。ですが、英語力が足りずに損をしているような気もしています。今のところ無料アプリを3つ登録しています。各アプリ共にヘルプページ通りに行うと設定することが出来ます。

Instafeed

Instagramをshopifyに表示します。トップページの見栄えが良くなります。

apps.shopify.com

Product Reviews

商品に対してレビューを記載してもらったり、既存サイトからレビュー情報をCSVファイルでエクスポートしたりすることが出来ます。

apps.shopify.com

データが入るとGoogleで検索した時とかレビューの星マークが出るようになります。

Slacky by Highview Apps

商品購入があった時などにSlackに通知することが出来ます。よく売れるお店だと通知がポコポコ飛んで来ると思うので、Slackのチャンネルは考えたほうが良さそうですね。

apps.shopify.com

ショップをリリースする時にやること

ドメイン設定

ショップをいよいよリリースするその前に、ドメイン設定を行います。管理画面のオンラインストア > ドメインにて設定できます。既存のドメインがあるので、既存のドメインを設定しました。

ヘルプページを見ながら設定しました。

help.shopify.com

パスワードを無効にする

パスワードを無効にします。管理画面のオンラインストア > 各種設定にて設定できます。パスワードページを有効にするというところにチェックがついているので、このチェックを外して保存すると晴れてショッピングサイト開設となります。

まとめ

ここではすぐ忘れてしまう自分向けに簡単なショップ開設までの流れを記載していきました。トップページの作成とかが時間掛かるのですがそこについてはおいおい書いていこうと思います。

ショップ開設するまで半日くらいあると余裕で出来てしまうので本当に便利ですね。

ヘルプを滞りなく読める英語力が欲しいです。

横須賀ビールに行ってきた

神奈川県横須賀市にある、横須賀ビールというお店に行ってきました。

アクセスが制限されています[食べログ]

横須賀に住んでた頃は岡田屋モアーズに地ビールのお店があったという記憶があるのですが、最近はあちこちにクラフトビールの波が来てていいですね。

横須賀ビールがあるお店の場所は20年位前だと店の中にフェラーリが置いてあるBARだったような気もするのですが、記憶がだいぶ曖昧です。

ビールは5種類あって、全部飲んできました。次の写真はビールのメニューです。

f:id:yuji0602:20180504231941j:plain

ABVがアルコール度数で、IBUが苦味を表す数値みたいですね。アサヒスーパードライはIBUが45くらいと店員さんが言ってました。

ABV - Wikipedia

国際苦味単位 - Wikipedia


1番目のビールはドブイタハッピーです。これはまた飲みたいですね。横須賀の走水に水源地があるのですが、そのお水を使っているようです。

f:id:yuji0602:20180504232009j:plain

2番目はヨコスカフォレストジンジャーです。かなり生姜感が強いのでだいぶ好みが分かれそうでした。

f:id:yuji0602:20180504232041j:plain

3番目はハッセミツムギウィートです。他のビールは大麦を使っているのですが、これは三浦市の初声(はっせ)の小麦を使っているようでした。飲みやすくていいですね。

f:id:yuji0602:20180504232104j:plain

4番目はスーザンダークです。見た目は黒ビールですが、IBU80と記載がある通りかなり苦かった。苦いビールが好きな人にはたまらない苦さだと思います。

f:id:yuji0602:20180504232225j:plain

5番目はカマリヤシイタケエールです。横浜の釜利谷のしいたけを使っているようです。しいたけの匂いとかは無く、しいたけの旨味でいい味を出していました。

f:id:yuji0602:20180504232206j:plain

全部飲んでみて思ったのですが、2番、4番は好みが分かれそうですね。1番、3番、5番は間違いないです。


食べ物なのですが、3つ頼みました。

横須賀の野菜を使ったサラダです。お店には3人で行ったのですが、大きいので小さいサイズを頼んでも良かったような気がするくらい沢山入ってました。これくらい野菜を食べれると満足度高いですね。

f:id:yuji0602:20180504234343j:plain

次はビアチキンです。ビールに良く合います。

f:id:yuji0602:20180504234404j:plain

次は刺身のどっさり盛りです。ものすごいたくさんお刺身が載っていて1980円ととても良心的なお値段です。お刺身でお腹いっぱいになりました。

f:id:yuji0602:20180504234428j:plain

お店は22時閉店となっています。電車で帰るので終電逃すとかないくらいの時間で閉店となるので個人的にはありがたいですね。

横須賀は引っ越してから月1回お墓参りで行くくらいなのでなかなかお酒を飲む機会が無いのですが、また飲みに行きたいですね。知ってる土地のものをビールや食材に使っているのを聞くとテンション上がります。