Githubアクションを使用したAmazon S 3への反応アプリケーションの配備

5855 ワード

あなたの展開を自動化する方法がたくさんありますが、githubはgithubアクションを通してオートメーションを処理する簡単な方法を提供しています.この記事では、どのように簡単にgithubレポからS 3ウェブホスティングバケットに更新を展開することができます-それはライブのウェブサイトです.
アマゾン単純なストレージサービス(s 3)?
Amazonの単純なストレージサービス(S 3)はAWSが提供するストレージサービスの一つです.それはAWSコンソール、APIとSDKを通してスケーラブルなオブジェクト記憶装置を提供します.そして、いつでもどこでもウェブ上のどんなデータからでもどんな量のデータも格納して、取り出すのに用いられます.S 3強さ訪問について詳しく知るために:Amazon S3
ギタブアクション?
Githubは、バージョンコントロールとGitHubアクションは、ビルド、テストのようなワークフローの自動化を容易にし、GiTubを使用するときに展開します.Github有益な訪問についてもっと知るために:GitHub Actions
手順:
反応アプリを配備するためにアマゾンS 3バケットをつくる方法.
反応アプリホスティングのためにS 3バケットをセットアップする方法.
自動的にS 3バケツに変化を展開するために我々のGithubアクションを構成する方法.
必要条件:
この手を使う必要があります.
Githubアカウント.
アクティブAWSアカウント(このティアは自由層内で行うことができます)
バインディングアマゾン
AWSアカウントにログインし、サービスメニューからS 3を選択します.
をクリックして“バケットを作成する”ボタンを新しいバケットを作成します.バケットを作成するには、バケツ名を指定します.この名前はアマゾンS 3のすべてのバケツの中でユニークであるべきです.US - East - 1のようなバケットを作成している領域に注意してください.

では、「すべてのパブリックアクセスをブロックする」チェックボックスをチェックし、
現在の設定では、このバケツやオブジェクトが公開される可能性があります
残りの設定はそのままにしておきます.今すぐバケット作成プロセスを完了するには、ページの最後に作成バケットボタンをクリックします.
ここでバケットポリシーを追加し、バケットの内容を公に利用できるようにします.このために新しく作成されたバケツS 3ダッシュボードを選択してください.許可を選択し、バケットポリシーを選択します.編集し、エディタでこのコードスニペットを貼り付けます.
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::<bucket-name>/*"
            ]
        }
    ]}
バケットポリシーではなく、バケット名を書きます.この名前はあなたのバケツ名と一致する必要があります.次に、「変更を保存」ボタンをクリックします.

今、このバケットのウェブサイトホスティングを有効にするには、プロパティに移動し、最後のセクションにスクロールします.をクリックします.言及インデックス.今のところインデックスとエラーページのHTML.エラーページを開発した場合は、エラーが発生します.変更を保存するをクリックします.今、あなたは正常にウェブホスティングのS 3のバケットを構成している.

を作成し、反応アプリをプッシュ:
Githubに新しいリポジトリを作成します.

リポジトリを作成した後、このレポにプッシュするあなたの反応アプリを準備します.React Appを使用して反応アプリケーションを作成し、パッケージ内のビルドスクリプトを確認します.JSON RANDファイルはビルドフォルダに出力されます.
名前を持つフォルダを作成します.VTCodeエディタでワークフローを行います.それの中のYMLファイル.京大理
このYMLファイルに次のコードスニペットを貼り付けます.
name: s3-deploy

on:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Configure AWS Credentials
        uses: aws-actions/configure-aws-credentials@v1
        with:
          aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
          aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          aws-region: ${{ secrets.AWS_REGION }}
      - name: Build React App
        run: npm install && npm run build
      - name: Deploy app build to S3 bucket
        run: aws s3 sync ./dist/ s3://<bucket-name> --delete
ご覧のように、ここでいくつかの資格情報を使用しています.AwsOne AccessLes Keychen ID、AwsSense SecrettAccessキーとAwsThrough領域.AWSユーザーコンソールでこれらの資格情報を見つけることができます.また、同様にスクリプトのバケット名を更新する必要があります.
では、このスクリプトが何をするかを理解しましょう.
名前:スクリプトの名前.
オン:トリガートリガをオンにします.このスクリプトでは、このスクリプトがプッシュイベントが発生したときに実行されます.メインブランチも指定しました.それで、メインブランチのどんなプッシュもこのスクリプトを走らせます.
仕事:ワークフローは、一つ以上の仕事から成り立ちます.
Step :ジョブは一連のステップを含んでいます.ここではuseとnameを実行します.
アクションcheckout@v2これはリポジトリをチェックアウトしますので、ワークフローはアクセスできます.
AWSアクション/設定AWScredentials@v1:これは他のgithubアクションで使用するAWS資格情報と領域環境変数を設定します.
ビルドステップアプリケーション:このステップブロックは、ノードパッケージをインストールし、パッケージ内のビルドコマンドを実行します.JSONファイル.ルートディレクトリにビルドフォルダーを作成します.
S 3のバケツにアプリケーションのビルドを展開:これは新しく作成されたビルドをS 3バケットに展開します.ではファイルを保存します.
今Githubに移動し、あなたのレポを選択し、設定と秘密とアクションに移動し、ここに3つの資格情報を定義します.

変数名が定義されているのと同じであることに注意してください.YMLファイル.

次に、githubによってリポジトリ作成についての指示に従ってください.

すぐにあなたがコードを押したとして、あなたはGitHubレポであなたの反応アプリを見つけると、それは我々が定義した仕事を開始します.YMLファイル.
数分後アクションタブに移動し、そこに定義されたアクションのステータスを参照してください.あなたは同様にそこにすべての詳細を見ることができます.

今すぐあなたのS 3バケットに移動し、オブジェクトのタブをリフレッシュすると、反応アプリのビルドを見つける.あなたは、新しいタブに静的なウェブサイトのコピーと貼り付けリンクであなたのウェブサイトを訪問することができます.