SNSトピック"handson-cli-sns-1st-topic"にeメールメッセージを配信します。
手順に必要な設定値を変数に格納をします。
リージョンを指定します。
環境変数の設定: export AWS_DEFAULT_REGION='ap-northeast-1'
環境変数の設定:
export AWS_DEFAULT_REGION='ap-northeast-1'
SNSトピック名を指定します。
変数の設定: SNS_TOPIC_NAME='handson-cli-sns-1st-topic'
変数の設定:
SNS_TOPIC_NAME='handson-cli-sns-1st-topic'
メッセージの本文を指定します。
変数の設定: SNS_MESSAGE_BODY='Hello World!'
SNS_MESSAGE_BODY='Hello World!'
eメールメッセージの題名を指定します。
変数の設定: SNS_MESSAGE_SUBJECT='Message handson-cli-sns-1st'
SNS_MESSAGE_SUBJECT='Message handson-cli-sns-1st'
一時ファイルを指定します。
変数の設定: DIR_TMP="${HOME}/environment/tmp-handson-cli-sns-1st" 変数の設定: FILE_TMP="${DIR_TMP}/mail_address.tmp" \ && echo ${FILE_TMP} 結果(例): ${HOME}/environment/tmp-handson-cli-sns-1st/mail_address.tmp
DIR_TMP="${HOME}/environment/tmp-handson-cli-sns-1st"
FILE_TMP="${DIR_TMP}/mail_address.tmp" \ && echo ${FILE_TMP}
結果(例):
${HOME}/environment/tmp-handson-cli-sns-1st/mail_address.tmp
一時ファイルをsourceコマンドで読み込みます。
コマンド: source ${FILE_TMP}
コマンド:
source ${FILE_TMP}
通知先エンドポイントを指定します。
変数の設定: SNS_SUBSCRIPTION_ENDPOINT="${MAIL_ADDRESS}" \ && echo ${SNS_SUBSCRIPTION_ENDPOINT} 結果(例): <送信先のメールアドレス>
SNS_SUBSCRIPTION_ENDPOINT="${MAIL_ADDRESS}" \ && echo ${SNS_SUBSCRIPTION_ENDPOINT}
<送信先のメールアドレス>
各変数に正しい設定値が格納されていることを確認します。
変数の確認: cat << END # 0. AWS_DEFAULT_REGION:"ap-northeast-1" AWS_DEFAULT_REGION="${AWS_DEFAULT_REGION}" # 1. SNS_TOPIC_NAME:"handson-cli-sns-1st-topic" SNS_TOPIC_NAME="${SNS_TOPIC_NAME}" # 2. SNS_MESSAGE_BODY:"Hello World!" SNS_MESSAGE_BODY="${SNS_MESSAGE_BODY}" # 3. SNS_MESSAGE_SUBJECT:"Message handson-cli-sns-1st" SNS_MESSAGE_SUBJECT="${SNS_MESSAGE_SUBJECT}" # 4. SNS_SUBSCRIPTION_ENDPOINT:"<送信先のメールアドレス>" SNS_SUBSCRIPTION_ENDPOINT="${SNS_SUBSCRIPTION_ENDPOINT}" END
変数の確認:
cat << END # 0. AWS_DEFAULT_REGION:"ap-northeast-1" AWS_DEFAULT_REGION="${AWS_DEFAULT_REGION}" # 1. SNS_TOPIC_NAME:"handson-cli-sns-1st-topic" SNS_TOPIC_NAME="${SNS_TOPIC_NAME}" # 2. SNS_MESSAGE_BODY:"Hello World!" SNS_MESSAGE_BODY="${SNS_MESSAGE_BODY}" # 3. SNS_MESSAGE_SUBJECT:"Message handson-cli-sns-1st" SNS_MESSAGE_SUBJECT="${SNS_MESSAGE_SUBJECT}" # 4. SNS_SUBSCRIPTION_ENDPOINT:"<送信先のメールアドレス>" SNS_SUBSCRIPTION_ENDPOINT="${SNS_SUBSCRIPTION_ENDPOINT}" END
下段の変数が入っていない、もしくは上段と同等の値が入っていない場合は、それぞれの手順番号に戻って変数の設定を行います。
SNSトピックのARNを取得します。
変数の設定: SNS_TOPIC_ARN=$( \ aws sns list-topics \ --query "Topics[?contains(TopicArn, \`${SNS_TOPIC_NAME}\`)].TopicArn" \ --output text \ ) \ && echo ${SNS_TOPIC_ARN} 結果(例): arn:aws:sns:ap-northeast-1:XXXXXXXXXXXX:handson-cli-sns-1st-topic
SNS_TOPIC_ARN=$( \ aws sns list-topics \ --query "Topics[?contains(TopicArn, \`${SNS_TOPIC_NAME}\`)].TopicArn" \ --output text \ ) \ && echo ${SNS_TOPIC_ARN}
arn:aws:sns:ap-northeast-1:XXXXXXXXXXXX:handson-cli-sns-1st-topic
SNSトピックにeメールメッセージを送信します。
変数の確認: cat << END # SNS_TOPIC_ARN:"arn:aws:sns:ap-northeast-1:XXXXXXXXXXXX:handson-cli-sns-1st-topic" SNS_TOPIC_ARN="${SNS_TOPIC_ARN}" # SNS_MESSAGE_BODY:"Hello World!" SNS_MESSAGE_BODY:"${SNS_MESSAGE_BODY}" # SNS_MESSAGE_SUBJECT:"Message handson-cli-sns-1st" SNS_MESSAGE_SUBJECT:"${SNS_MESSAGE_SUBJECT}" END コマンド: aws sns publish \ --topic-arn ${SNS_TOPIC_ARN} \ --message "${SNS_MESSAGE_BODY}" \ --subject "${SNS_MESSAGE_SUBJECT}" 結果(例): { "MessageId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" }
cat << END # SNS_TOPIC_ARN:"arn:aws:sns:ap-northeast-1:XXXXXXXXXXXX:handson-cli-sns-1st-topic" SNS_TOPIC_ARN="${SNS_TOPIC_ARN}" # SNS_MESSAGE_BODY:"Hello World!" SNS_MESSAGE_BODY:"${SNS_MESSAGE_BODY}" # SNS_MESSAGE_SUBJECT:"Message handson-cli-sns-1st" SNS_MESSAGE_SUBJECT:"${SNS_MESSAGE_SUBJECT}" END
aws sns publish \ --topic-arn ${SNS_TOPIC_ARN} \ --message "${SNS_MESSAGE_BODY}" \ --subject "${SNS_MESSAGE_SUBJECT}"
{ "MessageId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" }
「SNSトピック"handson-cli-sns-1st-topic"の購読者にメッセージが通知される。」ことを確認します。
注釈
<送信先のメールアドレス> にメッセージが通知されることを確認します。
マネジメントコンソールでは、標準では配信そのものを確認する方法はありません。