{"id":1280,"date":"2021-05-11T19:00:00","date_gmt":"2021-05-11T10:00:00","guid":{"rendered":"https:\/\/ito-u-oti.com\/?p=1280"},"modified":"2021-05-11T15:06:23","modified_gmt":"2021-05-11T06:06:23","slug":"github-actions-s3-cicd","status":"publish","type":"post","link":"https:\/\/ito-u-oti.com\/?p=1280","title":{"rendered":"github Actions\u3068AWS S3\u3067\u81ea\u52d5\u30c7\u30d7\u30ed\u30a4\u74b0\u5883\u3092\u4f5c\u308b"},"content":{"rendered":"\n<p>githubActions\u3092\u4f7f\u3063\u3066\u30c6\u30b9\u30c8\u304c\u6210\u529f\u3059\u308b\u3068AWS\u4e0a\u306eElasticBeanstalk\u306b\u81ea\u52d5\u7684\u306b\u30c7\u30d7\u30ed\u30a4\u3057\u3066\u304f\u308c\u308b\u30bf\u30b9\u30af\u3092\u4f5c\u308a\u307e\u3059\u3002<br>React.js\u3067\u751f\u6210\u3057\u305f\u9759\u7684\u30d5\u30a1\u30a4\u30eb\u7fa4\u3092\u30c7\u30d7\u30ed\u30a4\u3057\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h2 id=\"outline__1\" class=\"wp-block-heading\">AWS\u4e0a\u3067\u306e\u8a2d\u5b9a<\/h2>\n\n\n\n<p>\u4e8b\u524d\u306b\u30c7\u30d7\u30ed\u30a4\u5bfe\u8c61\u3068\u306a\u308bAWS S3\u306earn\u3092\u30e1\u30e2\u3057\u3066\u304a\u304d\u307e\u3059\u3002<br>\u4f8b\u3068\u3057\u3066\u300caws-my-sample-s3\u300d\u3068\u3044\u3046\u30d1\u30b1\u30c3\u30c8\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p>arn\u306f\u300carn:aws:s3:::aws-my-sample-s3\u300d\u3067\u3059<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"366\" src=\"https:\/\/ito-u-oti.com\/wp-content\/uploads\/2021\/05\/image-18-1024x366.png\" alt=\"\" class=\"wp-image-1281\"\/><\/figure>\n\n\n\n<h3 id=\"outline__1_1\" class=\"wp-block-heading\">S3\u30c7\u30d7\u30ed\u30a4\u7528\u306e\u30dd\u30ea\u30b7\u30fc\u3092\u4f5c\u308b<\/h3>\n\n\n\n<p>\u4f8b\u3068\u3057\u3066\u300caws-deploy-policy\u300d\u3068\u3044\u3046\u30dd\u30ea\u30b7\u30fc\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p>json\u3067\u4f5c\u3063\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n{\n    &quot;Version&quot;: &quot;2012-10-17&quot;,\n    &quot;Statement&quot;: &#x5B;\n        {\n            &quot;Sid&quot;: &quot;VisualEditor0&quot;,\n            &quot;Effect&quot;: &quot;Allow&quot;,\n            &quot;Action&quot;: &quot;s3:ListBucket&quot;,\n            &quot;Resource&quot;: &#x5B;\n                &quot;arn:aws:s3:::aws-my-sample-s3&quot;\n            ]\n        },\n        {\n            &quot;Sid&quot;: &quot;VisualEditor1&quot;,\n            &quot;Effect&quot;: &quot;Allow&quot;,\n            &quot;Action&quot;: &quot;s3:*Object&quot;,\n            &quot;Resource&quot;: &#x5B;\n                &quot;arn:aws:s3:::aws-my-sample-s3&quot;\n            ]\n        }\n    ]\n}\n<\/pre><\/div>\n\n\n<h3 id=\"outline__1_2\" class=\"wp-block-heading\">\u30c7\u30d7\u30ed\u30a4\u7528\u306eIAM\u30e6\u30fc\u30b6\u3092\u4f5c\u308b<\/h3>\n\n\n\n<p>IAM\u304b\u3089CICD\u7528\u306e\u30e6\u30fc\u30b6\u3092\u8ffd\u52a0\u3057\u3066\u3044\u304d\u307e\u3059\u3002<br>\u3053\u306e\u6642\u3001\u30a2\u30af\u30bb\u30b9\u306e\u7a2e\u985e\u306f\u300c\u30d7\u30ed\u30b0\u30e9\u30e0\u306b\u3088\u308b\u30a2\u30af\u30bb\u30b9\u300d\u3092\u9078\u629e\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"440\" src=\"https:\/\/ito-u-oti.com\/wp-content\/uploads\/2021\/05\/image-13-1024x440.png\" alt=\"\" class=\"wp-image-1273\"\/><\/figure>\n\n\n\n<h3 id=\"outline__1_3\" class=\"wp-block-heading\">S3\u3078\u306e\u30c7\u30d7\u30ed\u30a4\u306e\u305f\u3081\u306b\u5fc5\u8981\u306a\u6a29\u9650\u3092\u30a2\u30bf\u30c3\u30c1\u3059\u308b<\/h3>\n\n\n\n<p>\u30a2\u30af\u30bb\u30b9\u6a29\u9650\u306e\u8a2d\u5b9a\u3067\u306f\u3001\u300c\u65e2\u5b58\u306e\u30dd\u30ea\u30b7\u30fc\u3092\u76f4\u63a5\u30a2\u30bf\u30c3\u30c1\u300d\u3092\u9078\u629e\u3057\u3001\u5148\u7a0b\u4f5c\u3063\u305f\u30dd\u30ea\u30b7\u30fc\u3092\u30a2\u30bf\u30c3\u30c1\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>aws-deploy-policy<\/li><\/ul>\n\n\n\n<h3 id=\"outline__1_4\" class=\"wp-block-heading\">\u78ba\u8a8d\u753b\u9762<\/h3>\n\n\n\n<p>\u30bf\u30b0\u306f\u7279\u306b\u6307\u5b9a\u3057\u3066\u306a\u3044\u3067\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"490\" src=\"https:\/\/ito-u-oti.com\/wp-content\/uploads\/2021\/05\/image-19-1024x490.png\" alt=\"\" class=\"wp-image-1282\"\/><\/figure>\n\n\n\n<h3 id=\"outline__1_5\" class=\"wp-block-heading\">github\u3067\u306e\u8a2d\u5b9a\u306b\u5fc5\u8981\u306a\u60c5\u5831\u3092\u53d6\u5f97\u3059\u308b<\/h3>\n\n\n\n<p>\u30e6\u30fc\u30b6\u306e\u4f5c\u6210\u304c\u5b8c\u4e86\u3059\u308b\u3068\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u753b\u9762\u306b\u79fb\u308a\u307e\u3059\u3002<br>csv\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u4fdd\u5b58\u3057\u3066\u304a\u304d\u307e\u3059\u3002<br><span class=\"has-inline-color has-vivid-red-color\">\u203b\u3053\u306e\u30bf\u30a4\u30df\u30f3\u30b0\u3067\u3057\u304bcsv\u30d5\u30a1\u30a4\u30eb\u3084\u30b7\u30fc\u30af\u30ec\u30c3\u30c8\u30a2\u30af\u30bb\u30b9\u30ad\u30fc\u306f\u78ba\u8a8d\u3067\u304d\u307e\u305b\u3093\u3002\u7d1b\u5931\u3057\u305f\u5834\u5408\u306f\u30a2\u30af\u30bb\u30b9\u30ad\u30fc\u3092\u518d\u767a\u884c\u3057\u307e\u3059\u3002<\/span><\/p>\n\n\n\n<h2 id=\"outline__2\" class=\"wp-block-heading\">github\u4e0a\u3067\u306e\u8a2d\u5b9a<\/h2>\n\n\n\n<h3 id=\"outline__2_1\" class=\"wp-block-heading\">Secrets\u306b\u30a2\u30af\u30bb\u30b9\u30ad\u30fc\u3068\u30b7\u30fc\u30af\u30ec\u30c3\u30c8\u30ad\u30fc\u3092\u767b\u9332\u3059\u308b<\/h3>\n\n\n\n<p>github\u306eproject -> Settings -> Secrets<br>\u4eca\u56de\u306f<br>CICD_DEVELOP_AWS_ACCESS_KEY_ID\u30fb\u30fb\u30fb\u30a2\u30af\u30bb\u30b9\u30ad\u30fc<br>CICD_DEVELOP_AWS_SECRET_ACCESS_KEY\u30fb\u30fb\u30fb\u30b7\u30fc\u30af\u30ec\u30c3\u30c8\u30ad\u30fc<br>\u3067\u767b\u9332\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"126\" src=\"https:\/\/ito-u-oti.com\/wp-content\/uploads\/2021\/05\/image-16-1024x126.png\" alt=\"\" class=\"wp-image-1276\"\/><\/figure>\n\n\n\n<h3 id=\"outline__2_2\" class=\"wp-block-heading\">Actions\u3067workflow\u3092\u4f5c\u6210\u3059\u308b<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: yaml; title: ; notranslate\" title=\"\">\n  \n# This is a basic workflow to help you get started with Actions\nname: CICD for Development\n\n# Controls when the action will run. \non:\n  # main\u30d6\u30e9\u30f3\u30c1\u306bpush,marge\u3055\u308c\u305f\u30bf\u30a4\u30df\u30f3\u30b0\u3067\u767a\u706b\u3059\u308b\n  push:\n    branches: &#x5B; main ]\n\n  # \u624b\u52d5\u3067\u5b9f\u884c\u3059\u308b\n  workflow_dispatch:\n\njobs:\n\n  build:\n    name: Build And Upload to Devlopment S3 \n    runs-on: ubuntu-latest\n\n    steps:\n\n      - name: Checkout\n        uses: actions\/checkout@v2\n\n      - name: Setup\n        uses: actions\/setup-node@v1\n        with:\n          node-version: '12'\n      - run: yarn\n\n      # \u30c6\u30b9\u30c8\u5b9f\u884c\n      - name: Test\n        run: yarn test\n      \n      # \u30d3\u30eb\u30c9\n      - name: Build\n        run: yarn build\n      \n      # S3\u3078\u306e\u30c7\u30d7\u30ed\u30a4\u6e96\u5099\n      - name: Configure AWS credentials from account\n        uses: aws-actions\/configure-aws-credentials@v1\n        with:\n          # Secrets\u3067\u767b\u9332\u3057\u305f\u30ad\u30fc\u3092\u8a2d\u5b9a\n          aws-access-key-id: ${{ secrets.CICD_DEVELOP_AWS_ACCESS_KEY_ID }}\n          aws-secret-access-key: ${{ secrets.CICD_DEVELOP_AWS_SECRET_ACCESS_KEY }}\n          # S3\u306e\u30ea\u30fc\u30b8\u30e7\u30f3\n          aws-region: ap-northeast-1\n\n      # \u30c7\u30d7\u30ed\u30a4\uff08\u30d5\u30a1\u30a4\u30eb\u3092\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\uff09\n      - name: Copy Files to s3\n        run: |\n          aws s3 sync .\/build s3:\/\/aws-my-sample-s3\n\n\n<\/pre><\/div>\n\n\n<h2 id=\"outline__3\" class=\"wp-block-heading\">\u95a2\u9023<\/h2>\n\n\n\n<p><a href=\"https:\/\/ito-u-oti.com\/github-actions-elasticbeanstalk-cicd\/\">github Actions\u3068ElasticBeanstalk\u3067\u81ea\u52d5\u30c7\u30d7\u30ed\u30a4\u74b0\u5883\u3092\u4f5c\u308b<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>githubActions\u3092\u4f7f\u3063\u3066\u30c6\u30b9\u30c8\u304c\u6210\u529f\u3059\u308b\u3068AWS\u4e0a\u306eElasticBeanstalk\u306b\u81ea\u52d5 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1182,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[269],"tags":[270,292,290,293],"class_list":["post-1280","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-aws","tag-aws","tag-cicd","tag-github-actions","tag-s3"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/ito-u-oti.com\/index.php?rest_route=\/wp\/v2\/posts\/1280","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ito-u-oti.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ito-u-oti.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ito-u-oti.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ito-u-oti.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1280"}],"version-history":[{"count":1,"href":"https:\/\/ito-u-oti.com\/index.php?rest_route=\/wp\/v2\/posts\/1280\/revisions"}],"predecessor-version":[{"id":1283,"href":"https:\/\/ito-u-oti.com\/index.php?rest_route=\/wp\/v2\/posts\/1280\/revisions\/1283"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ito-u-oti.com\/index.php?rest_route=\/wp\/v2\/media\/1182"}],"wp:attachment":[{"href":"https:\/\/ito-u-oti.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1280"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ito-u-oti.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1280"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ito-u-oti.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1280"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}