Appearance
1. API Backendリソースの削除
デプロイした API Backend リソースの削除手順について解説します。
1-1. QVS Configの編集
QVS Config に記述したリソース宣言をコメントアウトします。
Qmonus Value Stream では、リポジトリに登録されている QVS Config の内容を編集して AssemblyLine を再実行することで、リソースを削除できます。今回は、本チュートリアルで作成した以下の QVS Config を編集します。
- /path/to/repository/.valuestream/aws-api-backend.yaml
- /path/to/repository/.valuestream/aws-shared-infra.yaml
削除するリソースは、QVS Config の
designPatterns
フィールドに記載された Cloud Native Adapter の内容をコメントアウトすることで指定できます。 ここでは、本チュートリアルで作成したリソースを削除するため、以下のように QVS Config を編集します。yamlparams: - name: appName type: string - name: awsAccountId type: string - name: awsRegion type: string - name: dnsZoneId type: string - name: appRunnerServicePort type: string - name: appRunnerServiceCustomDomain type: string - name: appRunnerServiceImageUri type: string - name: rdsEndpoint type: string - name: rdsMasterPasswordSecretArn type: string - name: mysqlDatabaseName type: string - name: mysqlUserName type: string - name: env1 type: string modules: - name: qmonus.net/adapter/official revision: v0.37.0 designPatterns: + # - pattern: qmonus.net/adapter/official/adapters/aws/serverless/webApp/apiBackend + # params: + # appName: $(params.appName) + # appRunnerServiceImageUri: $(params.appRunnerServiceImageUri) + # rdsEndpoint: $(params.rdsEndpoint) + # dnsZoneId: $(params.dnsZoneId) + # awsRegion: $(params.awsRegion) + # appRunnerServicePort: $(params.appRunnerServicePort) + # environmentVariables: + # TLS_OPTION: $(params.env1) + # mysqlUserName: $(params.mysqlUserName) + # appRunnerServiceCustomDomain: $(params.appRunnerServiceCustomDomain) + # mysqlDatabaseName: $(params.mysqlDatabaseName) + # rdsMasterPasswordSecretArn: $(params.rdsMasterPasswordSecretArn) + # awsAccountId: $(params.awsAccountId)
yamlparams: - name: appName type: string - name: awsAccountId type: string - name: awsRegion type: string - name: dnsZoneId type: string - name: appRunnerServicePort type: string - name: appRunnerServiceCustomDomain type: string - name: appRunnerServiceImageUri type: string - name: rdsEndpoint type: string - name: rdsMasterPasswordSecretArn type: string - name: mysqlDatabaseName type: string - name: mysqlUserName type: string - name: env1 type: string modules: - name: qmonus.net/adapter/official revision: v0.37.0 designPatterns: # - pattern: qmonus.net/adapter/official/adapters/aws/serverless/webApp/apiBackend # params: # appName: $(params.appName) # appRunnerServiceImageUri: $(params.appRunnerServiceImageUri) # rdsEndpoint: $(params.rdsEndpoint) # dnsZoneId: $(params.dnsZoneId) # awsRegion: $(params.awsRegion) # appRunnerServicePort: $(params.appRunnerServicePort) # environmentVariables: # TLS_OPTION: $(params.env1) # mysqlUserName: $(params.mysqlUserName) # appRunnerServiceCustomDomain: $(params.appRunnerServiceCustomDomain) # mysqlDatabaseName: $(params.mysqlDatabaseName) # rdsMasterPasswordSecretArn: $(params.rdsMasterPasswordSecretArn) # awsAccountId: $(params.awsAccountId)
yamlparams: - name: appName type: string - name: awsRegion type: string - name: subnet1AvailabilityZone type: string - name: subnet2AvailabilityZone type: string - name: rdsEngineVersion type: string modules: - name: qmonus.net/adapter/official revision: v0.37.0 designPatterns: + # - pattern: qmonus.net/adapter/official/adapters/aws/serverless/webApp/apiBackend/sharedInfrastructure + # params: + # appName: $(params.appName) + # rdsEngineVersion: $(params.rdsEngineVersion) + # awsRegion: $(params.awsRegion) + # subnet1AvailabilityZone: $(params.subnet1AvailabilityZone) + # subnet2AvailabilityZone: $(params.subnet2AvailabilityZone)
yamlparams: - name: appName type: string - name: awsRegion type: string - name: subnet1AvailabilityZone type: string - name: subnet2AvailabilityZone type: string - name: rdsEngineVersion type: string modules: - name: qmonus.net/adapter/official revision: v0.37.0 designPatterns: # - pattern: qmonus.net/adapter/official/adapters/aws/serverless/webApp/apiBackend/sharedInfrastructure # params: # appName: $(params.appName) # rdsEngineVersion: $(params.rdsEngineVersion) # awsRegion: $(params.awsRegion) # subnet1AvailabilityZone: $(params.subnet1AvailabilityZone) # subnet2AvailabilityZone: $(params.subnet2AvailabilityZone)
変更をステージに追加します。
git add .valuestream/aws-shared-infra.yaml .valuestream/aws-api-backend.yaml
リポジトリに変更をコミットします。
git commit -m "Delete api backend resources"
リポジトリに変更をプッシュします。
git push
Git コミットのハッシュ値を取得します。
git rev-parse HEAD
1-2. AssemblyLineの実行
本チュートリアルでは、先に aws-shared-infra
の AssemblyLine を実行して基盤となるクラウドリソースをデプロイした後、aws-api-backend
の AssemblyLine を実行して API Backend をデプロイしました。 このため、リソースの削除においては、先に aws-api-backend
の AssemblyLine を実行して API Backend のリソースを削除した後、aws-shared-infra
の AssemblyLine を実行して基盤となるクラウドリソースを削除する、という順番で実施します。
左のメニュー一覧の AssemblyLine をクリックして、AssemblyLine 一覧ページに移動します。
チュートリアルで作成した
aws-api-backend
の AssemblyLine を選択します。画面上部の Input Parameters に以下を入力し、
RUN
ボタンを押下して AssemblyLine を実行します。- gitRevision: 1-1で取得した Git コミットのハッシュ値
AssemblyLine の実行が完了したら、ログを確認します。
削除に成功すると、
deploy
Pipeline のdeploy
Task のstep-deploy
Step のログから、リソースが削除されたことを確認できます。ログの以下の箇所から、削除されたリソースの総数を確認できます。
Resources: - 22 deleted 1 unchanged
1 unchanged
のリソースについては、Qmonus Value Stream の仕様上出力されているもので、デプロイされたユーザのリソースの削除には影響ありません。AssemblyLine 一覧ページに移動して、
aws-shared-infra
の AssemblyLine を選択します。画面上部の Input Parameters に以下を入力し、
RUN
ボタンを押下して AssemblyLine を実行します。- gitRevision: 1-1で取得した Git コミットのハッシュ値
AssemblyLine の実行が完了したら、ログを確認します。
削除に成功すると、
deploy
Pipeline のdeploy
Task のstep-deploy
Step のログから、リソースが削除されたことを確認できます。Resources: - 21 deleted 1 unchanged
AWS マネジメントコンソールにログインして、本チュートリアルで作成したリソースが削除されていることを確認します。
以上で、API Backend リソースの削除は完了です。