処理の実行
CloudFormationテンプレート共通部分を作成します。
変数の確認:
cat << END
# FILE_CLOUDFORMATION_TEMPLATE:"${HOME}/environment/conf-handson-cli-cfn-sqs-QueuePolicy/handson-cli-cfn-sqs-QueuePolicy.template"
FILE_CLOUDFORMATION_TEMPLATE="${FILE_CLOUDFORMATION_TEMPLATE}"
# CLOUDFORMATION_TEMPLATE_DESCRIPTION:"Template for handson-cli-cfn-sqs-QueuePolicy."
CLOUDFORMATION_TEMPLATE_DESCRIPTION="${CLOUDFORMATION_TEMPLATE_DESCRIPTION}"
END
コマンド:
cat << EOF > ${FILE_CLOUDFORMATION_TEMPLATE}
AWSTemplateFormatVersion: 2010-09-09
Description:
${CLOUDFORMATION_TEMPLATE_DESCRIPTION}
EOF
cat ${FILE_CLOUDFORMATION_TEMPLATE}
結果(例):
AWSTemplateFormatVersion: 2010-09-09
Description:
Template for handson-cli-cfn-sqs-QueuePolicy.
CloudFormationテンプレートにリソース部分を追加します。
コマンド:
echo 'Resources:' >> ${FILE_CLOUDFORMATION_TEMPLATE}
for i in $( ls ${DIR_CLOUDFORMATION_RESOURCE}/*.txt ); do \
cat $i | sed '/^$/d' >> ${FILE_CLOUDFORMATION_TEMPLATE}; \
echo '' >> ${FILE_CLOUDFORMATION_TEMPLATE} \
; done
cat ${FILE_CLOUDFORMATION_TEMPLATE}
結果(例):
AWSTemplateFormatVersion: 2010-09-09
Description:
Template for handson-cli-cfn-sqs-QueuePolicy.
Resources:
SqsQueue0StackName:
Type: AWS::SQS::Queue
Properties:
QueueName: !Ref AWS::StackName
SqsQueuePolicy0:
Type: "AWS::SQS::QueuePolicy"
Properties:
PolicyDocument:
Statement:
-
Principal:
AWS:
- "953640472020"
Action:
- "SQS:SendMessage"
- "SQS:ReceiveMessage"
Effect: "Allow"
Resource: "arn:aws:sqs:ap-northeast-1:XXXXXXXXXXXX:handson-cli-cfn-sqs-QueuePolicy-stack"
Queues:
- "https://sqs:ap-northeast-1.amazonaws.com/XXXXXXXXXXXX/handson-cli-cfn-sqs-QueuePolicy-stack"
完了確認
本手順の主処理は、以下の完了条件を満たしたときに成功したものとします。
完了条件1: CloudFormationテンプレート"handson-cli-cfn-sqs-QueuePolicy"が存在する。
「CloudFormationテンプレート"handson-cli-cfn-sqs-QueuePolicy"が存在する。」ことを確認します。
コマンド:
ls ${FILE_CLOUDFORMATION_TEMPLATE}
結果(例):
${HOME}/environment/conf-handson-cli-cfn-sqs-QueuePolicy/handson-cli-cfn-sqs-QueuePolicy.template
完了条件2: CloudFormationテンプレート"handson-cli-cfn-sqs-QueuePolicy"がYAMLフォーマットとして正常である。
「CloudFormationテンプレート"handson-cli-cfn-sqs-QueuePolicy"がYAMLフォーマットとして正常である。」ことを確認します。
コマンド:
yamllint ${FILE_CLOUDFORMATION_TEMPLATE}
結果(例):