LoginSignup
7

More than 5 years have passed since last update.

posted at

updated at

[JAWS-UG CLI] SNS:#1 トピックの作成

AWS CLIを利用して、SNSのトピックを作成してみます。

前提条件

SNSへの権限

SNSに対してフル権限があること。

AWS CLIのバージョン

以下のバージョンで動作確認済

  • AWS CLI 1.10.11
コマンド
aws --version

結果(例):

  aws-cli/1.11.70 Python/2.7.12 Linux/4.4.11-23.53.amzn1.x86_64 botocore/1.5.33

バージョンが古い場合は最新版に更新しましょう。

コマンド
sudo -H pip install -U awscli

0. 準備

まず変数の確認をします。

変数の確認
cat << ETX

        AWS_DEFAULT_PROFILE: (0.1) ${AWS_DEFAULT_PROFILE}
        AWS_DEFAULT_REGION:  (0.2) ${AWS_DEFAULT_REGION}

ETX

結果(例):

  AWS_DEFAULT_PROFILE: (0.1) <SNSにフル権限のあるプロファイル>
  AWS_DEFAULT_REGION:  (0.2) ap-northeast-1

変数が入っていない、適切でない場合は、それぞれの手順番号について作業を
行います。

0.1. プロファイルの指定

プロファイルの一覧を確認します。

コマンド
cat ~/.aws/credentials \
       | grep '\[' \
       | sed 's/\[//g' | sed 's/\]//g'

結果(例):

  iamFull-prjz-mbpr13
  <SNSにフル権限のあるプロファイル>
変数の設定
export AWS_DEFAULT_PROFILE='<SNSにフル権限のあるプロファイル>'

0.2. リージョンの指定

変数の設定
export AWS_DEFAULT_REGION='ap-northeast-1'

最終確認

変数の確認
cat << ETX

        AWS_DEFAULT_PROFILE: (0.1) ${AWS_DEFAULT_PROFILE}
        AWS_DEFAULT_REGION:  (0.2) ${AWS_DEFAULT_REGION}

ETX

結果(例):

  AWS_DEFAULT_PROFILE: (0.1) <SNSにフル権限のあるプロファイル>
  AWS_DEFAULT_REGION:  (0.2) ap-northeast-1

1. 事前作業

1.1. トピック名の決定

作成するトピックの名前を決めます。

変数の設定
SNS_TOPIC_NAME="handson-$(date +%Y%m%d)" \
        && echo ${SNS_TOPIC_NAME}

同じ名前のトピックが存在しないことを確認します。

コマンド
aws sns list-topics \
        --query "Topics[?contains(TopicArn, \`${SNS_TOPIC_NAME}\`)]"

結果(例):

  []

2. トピックの作成

トピックを作成します。

変数の確認
cat << ETX

        SNS_TOPIC_NAME: ${SNS_TOPIC_NAME}

ETX
コマンド
aws sns create-topic \
        --name ${SNS_TOPIC_NAME}

結果(例):

  {
    "TopicArn": "arn:aws:sns:ap-northeast-1:XXXXXXXXXXXX:handson-20170417"
  }

3. 事後作業

トピックの確認

作成したトピックがトピック一覧に表示されることを確認します。

コマンド
aws sns list-topics \
        --query "Topics[?contains(TopicArn, \`${SNS_TOPIC_NAME}\`)]"

結果(例):

  [
      "TopicArn": "arn:aws:sns:ap-northeast-1:XXXXXXXXXXXX:handson-20170417"
  ]

完了

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
7