ハンズオン: Cognito Identity入門¶
目的¶
Amazon Cognito IDプールの各要素を操作する。
前提¶
作業環境条件¶
本作業は、以下の作業環境で行います。
作業環境条件1: OSとバージョン
本手順は、Amazon Linux "Amazon Linux AMI release 2018.03"以降のOS環境での実施を前提としています。
コマンド:
cat /etc/issue | head -1
結果(例):
Amazon Linux AMI release 2018.03
作業環境条件2: シェルとバージョン
本手順は、bash "4.2.46(2)-release"以降のシェル環境での実施を前提としています。
コマンド:
bash --version -v | head -1
結果(例):
GNU bash, バージョン 4.2.46(2)-release (x86_64-redhat-linux-gnu)
作業環境条件3: AWS CLIのバージョン
本手順は、AWS CLIのバージョン"1.16.245"以降での実施を前提としています。
コマンド:
aws --version
結果(例):
aws-cli/1.16.245 Python/3.6.5 Linux/4.14.59-64.43.amzn1.x86_64 botocore/ 1.11.2
バージョンが古い場合は最新版に更新しましょう。
コマンド:
sudo -H pip install -U awscli
手順¶
ローカル環境での作業¶
今回は"${HOME}/tmp/parameter-handson-cli-cognito-identity"をパラメータファイル情報用ディレクトリとします。
ディレクトリが存在することを確認します。
コマンド:
ls -d ${HOME}/tmp/parameter-handson-cli-cognito-identity
結果(例:存在する場合):
${HOME}/tmp/parameter-handson-cli-cognito-identity
存在しない場合は作成します。
コマンド:
mkdir -p ${HOME}/tmp/parameter-handson-cli-cognito-identity
1. コンテンツ用S3バケットの作成¶
2. データ用S3バケットの作成¶
3. データ用S3バケットのCORS対応¶
4. Cognito ID Poolの作成¶
5. IAMロールの作成¶
6. Cognito IDプールへのロールの追加¶
7. コンタクトフォームの設置¶
8. 動作確認¶
8.1. コンテンツのURL取得¶
変数の設定:
S3_BUCKET_PREFIX='handson-cli-cognito-identity-contents'
コマンド:
AWS_ID=$( \ aws sts get-caller-identity \ --query 'Account' \ --output text \ ) \ && echo ${AWS_ID}
結果(例):
XXXXXXXXXXXX
変数の設定:
S3_BUCKET_NAME="${S3_BUCKET_PREFIX}-${AWS_ID}" \ && echo ${S3_BUCKET_NAME}
結果(例):
handson-cli-cognito-identity-contents-XXXXXXXXXXXX
変数の設定:
S3_BUCKET_LOCATION=$( \ aws s3api get-bucket-location \ --bucket ${S3_BUCKET_NAME} \ --output text \ ) \ && echo ${S3_BUCKET_LOCATION}
結果(例):
ap-northeast-1
変数の確認:
cat << ETX # S3_BUCKET_NAME:"handson-cli-cognito-identity-contents-XXXXXXXXXXXX" S3_BUCKET_NAME:"${S3_BUCKET_NAME}" # S3_BUCKET_LOCATION:"ap-northeast-1" S3_BUCKET_LOCATION:"${S3_BUCKET_LOCATION}" ETX
変数の設定:
S3_BUCKET_ENDPOINT="${S3_BUCKET_NAME}.s3-website-${S3_BUCKET_LOCATION}.amazonaws.com" \ && echo ${S3_BUCKET_ENDPOINT}
結果(例):
handson-cli-cognito-identity-contents-XXXXXXXXXXXX.s3-website-ap-northeast-1.amazonaws.com
出力結果をコピーします。
8.2. ブラウザでのコンテンツへのアクセス¶
8.1でコピーしたURLをブラウザのURL欄にペーストし、リターンキーを押します。
"ようこそ"というタイトルのページが表示されます。
'お問い合わせ'(リンク)をクリックします。
入力フォームが表示されます。
フォームの各項目に以下の入力をします。
- 件名
こんにちは
- メールアドレス
- お問い合わせ内容
ご無沙汰しております。
"送信"(ボタン)を押します。
"お問い合わせありがとうございました。"というタイトルのページが表示され、数秒後に"ようこそ"というタイトルのページが表示されます。
8.3. コンタクトフォームのデータ取得¶
8.4. データの中身確認¶
コマンド:
cat ${HOME}/environment/download-handson-cli-cognito-identity/*
結果(例):
{ "title": "こんにちは", "mail": "info@example.jp", "contents": "ご無沙汰しております。", "date": "04/11/2019, 12:34:56" }
後始末1. Cognito IDプールの破棄¶
後始末2. IAMロールの破棄¶
後始末3. コンテンツ用S3バケットの破棄¶
後始末4. データ用S3バケットの破棄¶
後始末5. 作業用ディレクトリの破棄¶
コマンド:
rm -rf ${HOME}/environment/conf-handson-cli-cognito-identity
コマンド:
rm -rf ${HOME}/environment/contents-handson-cli-cognito-identity
コマンド:
rm -rf ${HOME}/environment/download-handson-cli-cognito-identity
ローカル環境での作業¶
パラメータファイル情報用ディレクトリを削除します。
コマンド:
rm -Rf ${HOME}/tmp/parameter-handson-cli-cognito-identity