AWS サーバーレスアプリケーションモデル (AWS SAM) ハンズオン(.Net)
ソフトウェア | バージョン | 備考 |
---|---|---|
dotnet | 2.1 | |
sam | 0.3.0 | |
docker | 17.06.2 | |
docker-compose | 1.21.0 | |
vagrant | 2.0.3 |
- Dockerのインストール
- docker-composeのインストール
- pipのインストール
vagrant up
vagrant ssh
- aws-sam-cliのインストール
- .NET SDKのインストール
pip install --user aws-sam-cli
sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
sudo yum update
sudo yum install dotnet-sdk-2.1 -y
sudo rpm --import "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF"
sudo su -c 'curl https://download.mono-project.com/repo/centos7-stable.repo | tee /etc/yum.repos.d/mono-centos7-stable.repo'
sudo yum install mono-devel -y
cd /vagrant
curl -s api.sdkman.io | bash
source "/home/vagrant/.sdkman/bin/sdkman-init.sh"
sdk list maven
sdk use maven 3.5.4
sdk list java
sdk use java 8.0.181-zulu
sdk list gradle
sdk use gradle 4.9
ドキュメントのセットアップ
cd /vagrant/
touch build.gradle
build.gradle
を作成して以下のコマンドを実行
gradle build
ドキュメントの生成
gradle asciidoctor
gradle livereload
http://192.168.33.10:35729/に接続して確認する
cd /vagrant/ops/code_pipline
./create_stack.sh
cd /vagrant/sam-app
cat <<EOF > .env
#!/usr/bin/env bash
export AWS_ACCESS_KEY_ID=xxxxxxxxxxxx
export AWS_SECRET_ACCESS_KEY=xxxxxxxxxx
export AWS_DEFAULT_REGION=us-east-1
EOF
アクセスキーを設定したら以下の操作をする
source .env
aws ec2 describe-regions
デプロイ用のS3バケットを用意する
aws s3 mb s3://dotnet-hands-on
デプロイを実行する
cd /vagrant/sam-app
sam validate
dotnet publish
sam package --template-file template.yaml --s3-bucket dotnet-hands-on --output-template-file packaged.yaml
sam deploy --template-file packaged.yaml --stack-name dotnet-hands-on-development --capabilities CAPABILITY_IAM
デプロイが成功したら動作を確認する
aws cloudformation describe-stacks --stack-name dotnet-hands-on-development --query 'Stacks[].Outputs[1]'
aws cloudformation delete-stack --stack-name dotnet-handson-development
aws cloudformation delete-stack --stack-name dotnet-handson-production
aws cloudformation delete-stack --stack-name dotnet-handson-pipline
aws s3 rb s3://dotnet-handson --force
インストール
cd /home/vagrant
git clone https://github.com/awslabs/git-secrets.git
cd git-secrets/
make install
cd ..
rm -rf git-secrets/
既存プロジェクトにフックを設定
cd /vagrant
git secrets --install
拒否条件を設定
git secrets --register-aws --global
レポジトリをスキャンする
cd /vagrant
git secrets --scan -r
許可ルールを追加する
git config --add secrets.allowed sam-app/event_file.json
cd /vagrant
sam init --runtime dotnet
cd sam-app
cd /vagrant/sam-app
sh build.sh --target=Package
dotnet test test/HelloWorld.Test
sam local generate-event api > event_file.json
sam local invoke HelloWorldFunction --event event_file.json
sam local start-api --host 0.0.0.0
http://192.168.33.10:3000/helloに接続して確認する