From 54d5961614b7e35093bb21ec3e6ba8f7e688951a Mon Sep 17 00:00:00 2001 From: "shimoda.m@nds-tyo.co.jp" Date: Thu, 27 Jun 2024 17:31:34 +0900 Subject: [PATCH 1/8] =?UTF-8?q?feat:=20=E6=96=B0=E8=A6=8F=E4=BD=9C?= =?UTF-8?q?=E6=88=90=E3=80=82=E3=82=B3=E3=83=BC=E3=83=89=E3=83=99=E3=83=BC?= =?UTF-8?q?=E3=82=B9=E3=81=AF=E5=AE=9F=E8=A3=85=E6=A4=9C=E8=A8=BC=E6=99=82?= =?UTF-8?q?=E3=81=AE=E3=82=82=E3=81=AE=E3=82=92=E5=88=A9=E7=94=A8=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lambda/transfer-medpass-data/Dockerfile | 19 ++ lambda/transfer-medpass-data/Pipfile | 16 + lambda/transfer-medpass-data/Pipfile.lock | 292 ++++++++++++++++++ .../src/transfer-medpass-data.py | 204 ++++++++++++ 4 files changed, 531 insertions(+) create mode 100644 lambda/transfer-medpass-data/Dockerfile create mode 100644 lambda/transfer-medpass-data/Pipfile create mode 100644 lambda/transfer-medpass-data/Pipfile.lock create mode 100644 lambda/transfer-medpass-data/src/transfer-medpass-data.py diff --git a/lambda/transfer-medpass-data/Dockerfile b/lambda/transfer-medpass-data/Dockerfile new file mode 100644 index 00000000..b33f6e2f --- /dev/null +++ b/lambda/transfer-medpass-data/Dockerfile @@ -0,0 +1,19 @@ +FROM python:3.9 + +ENV TZ="Asia/Tokyo" + +WORKDIR /function +COPY Pipfile Pipfile.lock ${WORKDIR} +RUN \ + apt update -y && \ + # パッケージのセキュリティアップデートのみを適用するコマンド + apt install -y unattended-upgrades && \ + unattended-upgrades && \ + pip install --upgrade pip wheel setuptools && \ + pip install pipenv --no-cache-dir && \ + pipenv install --system --deploy && \ + pip uninstall -y pipenv virtualenv-clone virtualenv +COPY src ./ + +ENTRYPOINT [ "/usr/local/bin/python", "-m", "awslambdaric" ] +CMD [ "transfer-medpass-data.handler" ] diff --git a/lambda/transfer-medpass-data/Pipfile b/lambda/transfer-medpass-data/Pipfile new file mode 100644 index 00000000..f54fe4aa --- /dev/null +++ b/lambda/transfer-medpass-data/Pipfile @@ -0,0 +1,16 @@ +[[source]] +url = "https://pypi.org/simple" +verify_ssl = true +name = "pypi" + +[packages] +awslambdaric = "*" +boto3 = "*" +pyzipper = "*" + +[dev-packages] +autopep8 = "*" +flake8 = "*" + +[requires] +python_version = "3.9" diff --git a/lambda/transfer-medpass-data/Pipfile.lock b/lambda/transfer-medpass-data/Pipfile.lock new file mode 100644 index 00000000..1cf927ca --- /dev/null +++ b/lambda/transfer-medpass-data/Pipfile.lock @@ -0,0 +1,292 @@ +{ + "_meta": { + "hash": { + "sha256": "aedbb7748f654696e0433a6c30f5bee011d6cf0acff5d4cc6fe8b4a6d7c617aa" + }, + "pipfile-spec": 6, + "requires": { + "python_version": "3.9" + }, + "sources": [ + { + "name": "pypi", + "url": "https://pypi.org/simple", + "verify_ssl": true + } + ] + }, + "default": { + "awslambdaric": { + "hashes": [ + "sha256:04d4d4b63cef0e9aad3adea95a5cf3f81634bccde625f104ff025f764a3e8874", + "sha256:0a9922690eb7722417cbac55b913ab070c88444ab83290293debf29d5d9ca371", + "sha256:0e55a815caef1258ed7a9b0adad54e5f1b2ca63966d21342dc5da5b55dd471ef", + "sha256:2566a9db2c613fddddc22aedb45e74dbcd5c1a044da6992424680be719db80c9", + "sha256:34a3e8d27b84ccc9535086487eed50425c0db7a016bf91cf24d8d6cc853faec3", + "sha256:403109390f1a9856f8f6d5f0d5e7f2f83bdec99a62d024e433bff50eda2ed373", + "sha256:4dbd3e2262d080327a90e1ac9d087d7616e8b5be6da83be9fd3ca1b5ae575173", + "sha256:506f004ca08a2f43a898b65dad9d6dd2b2a4910ebe43dcc6682dc5ca0267c24a", + "sha256:662b95b6079b563d3e2ef4fda7bcb20e360901eae7a646425612ef2f4e5d6bdf", + "sha256:6de8d5ea0fc8cb780e060fc06a84328fda3ed329faf97606db59287814490ade", + "sha256:6f298068e2791b0ec5c420ef27cdf8aaba23486dfa5917b6c3067e30c97dde4f", + "sha256:7699c822197f98cc22c262af2368c99d69b43a73113099be52545b195c5e0064", + "sha256:7b75376d62a294e37d96507a68290dd94ce83f5b1a597c42d29242545e1ee126", + "sha256:98b16b4752f16b6a0562cfc1db2e6ce63b2a41ffa97c27e784c3ae5e8c2dc91d", + "sha256:bf57203ebeb4d718b34cd168f6b5ef497bfd2481adf848c5252faf38dccd7bf1", + "sha256:bf824aeff2cde789db1167c377573f1dbf2bf01e75eeb31651de00786ef09ed0", + "sha256:d3438bf0be646d61f8a60fb668c0c3b103963611462f35bf2db11ef50242f54f", + "sha256:d530ab882984188436f3869a2fc172086ab6b43a5f7502a86b241347a5441de3", + "sha256:e4be962e90035f362511eac65ad5c0242da15f73cfae27716de42b47f9d0a2a8", + "sha256:e5145fa63560901d7dbe26c5ee0dd5977f3783ab799fa04f50c50c207be78305", + "sha256:eb1a13c130a8a2ffc1c127a2bd581f45b9f10ec32a3892e41b5b1bdc9788b92d", + "sha256:ed798ab90f5230fe11079b269c3748bd875bc218c2ad4528ae2b4a04a0cd92b5", + "sha256:f55cf42cea67661ccea604b7774ba8cb1e467dadaf3d4c4b7f4e029faf43a46b" + ], + "index": "pypi", + "version": "==2.0.11" + }, + "boto3": { + "hashes": [ + "sha256:684cba753d64978a486e8ea9645d53de0d4e3b4a3ab1495b26bd04b9541cea2d", + "sha256:db7bbb1c6059e99b74dcf634e497b04addcac4c527ae2b2696e47c39eccc6c50" + ], + "index": "pypi", + "version": "==1.34.92" + }, + "botocore": { + "hashes": [ + "sha256:4211a22a1f6c6935e70cbb84c2cd93b29f9723eaf5036d59748dd104f389a681", + "sha256:d1ca4886271f184445ec737cd2e752498648cca383887c5a37b2e01c8ab94039" + ], + "markers": "python_version >= '3.8'", + "version": "==1.34.92" + }, + "jmespath": { + "hashes": [ + "sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980", + "sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe" + ], + "markers": "python_version >= '3.7'", + "version": "==1.0.1" + }, + "pycryptodomex": { + "hashes": [ + "sha256:0daad007b685db36d977f9de73f61f8da2a7104e20aca3effd30752fd56f73e1", + "sha256:108e5f1c1cd70ffce0b68739c75734437c919d2eaec8e85bffc2c8b4d2794305", + "sha256:19764605feea0df966445d46533729b645033f134baeb3ea26ad518c9fdf212c", + "sha256:1be97461c439a6af4fe1cf8bf6ca5936d3db252737d2f379cc6b2e394e12a458", + "sha256:25cd61e846aaab76d5791d006497134602a9e451e954833018161befc3b5b9ed", + "sha256:2a47bcc478741b71273b917232f521fd5704ab4b25d301669879e7273d3586cc", + "sha256:59af01efb011b0e8b686ba7758d59cf4a8263f9ad35911bfe3f416cee4f5c08c", + "sha256:5dcac11031a71348faaed1f403a0debd56bf5404232284cf8c761ff918886ebc", + "sha256:62a5ec91388984909bb5398ea49ee61b68ecb579123694bffa172c3b0a107079", + "sha256:645bd4ca6f543685d643dadf6a856cc382b654cc923460e3a10a49c1b3832aeb", + "sha256:653b29b0819605fe0898829c8ad6400a6ccde096146730c2da54eede9b7b8baa", + "sha256:69138068268127cd605e03438312d8f271135a33140e2742b417d027a0539427", + "sha256:6e186342cfcc3aafaad565cbd496060e5a614b441cacc3995ef0091115c1f6c5", + "sha256:76bd15bb65c14900d98835fcd10f59e5e0435077431d3a394b60b15864fddd64", + "sha256:7805830e0c56d88f4d491fa5ac640dfc894c5ec570d1ece6ed1546e9df2e98d6", + "sha256:7a710b79baddd65b806402e14766c721aee8fb83381769c27920f26476276c1e", + "sha256:7a7a8f33a1f1fb762ede6cc9cbab8f2a9ba13b196bfaf7bc6f0b39d2ba315a43", + "sha256:82ee7696ed8eb9a82c7037f32ba9b7c59e51dda6f105b39f043b6ef293989cb3", + "sha256:88afd7a3af7ddddd42c2deda43d53d3dfc016c11327d0915f90ca34ebda91499", + "sha256:8af1a451ff9e123d0d8bd5d5e60f8e3315c3a64f3cdd6bc853e26090e195cdc8", + "sha256:8ee606964553c1a0bc74057dd8782a37d1c2bc0f01b83193b6f8bb14523b877b", + "sha256:91852d4480a4537d169c29a9d104dda44094c78f1f5b67bca76c29a91042b623", + "sha256:9c682436c359b5ada67e882fec34689726a09c461efd75b6ea77b2403d5665b7", + "sha256:bc3ee1b4d97081260d92ae813a83de4d2653206967c4a0a017580f8b9548ddbc", + "sha256:bca649483d5ed251d06daf25957f802e44e6bb6df2e8f218ae71968ff8f8edc4", + "sha256:c39778fd0548d78917b61f03c1fa8bfda6cfcf98c767decf360945fe6f97461e", + "sha256:cbe71b6712429650e3883dc81286edb94c328ffcd24849accac0a4dbcc76958a", + "sha256:d00fe8596e1cc46b44bf3907354e9377aa030ec4cd04afbbf6e899fc1e2a7781", + "sha256:d3584623e68a5064a04748fb6d76117a21a7cb5eaba20608a41c7d0c61721794", + "sha256:e48217c7901edd95f9f097feaa0388da215ed14ce2ece803d3f300b4e694abea", + "sha256:f2e497413560e03421484189a6b65e33fe800d3bd75590e6d78d4dfdb7accf3b", + "sha256:ff5c9a67f8a4fba4aed887216e32cbc48f2a6fb2673bb10a99e43be463e15913" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==3.20.0" + }, + "python-dateutil": { + "hashes": [ + "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", + "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==2.9.0.post0" + }, + "pyzipper": { + "hashes": [ + "sha256:0adca90a00c36a93fbe49bfa8c5add452bfe4ef85a1b8e3638739dd1c7b26bfc", + "sha256:6d097f465bfa47796b1494e12ea65d1478107d38e13bc56f6e58eedc4f6c1a87" + ], + "index": "pypi", + "version": "==0.3.6" + }, + "s3transfer": { + "hashes": [ + "sha256:5683916b4c724f799e600f41dd9e10a9ff19871bf87623cc8f491cb4f5fa0a19", + "sha256:ceb252b11bcf87080fb7850a224fb6e05c8a776bab8f2b64b7f25b969464839d" + ], + "markers": "python_version >= '3.8'", + "version": "==0.10.1" + }, + "simplejson": { + "hashes": [ + "sha256:01f426ee9e3a2d205aa4c22c3da996b51f2de75c4199ef703258a28b304dea8c", + "sha256:03de1ec4ad734f28ca49b0a758b997d752be0d089ed30360157c4e8811999c8f", + "sha256:041dd69026284d10f035cefb4a75026d2cfcef31f31e62585eeb2b7776e7e047", + "sha256:05a668d4a93816fb8a644e90e7987aa3beeb9d2112ca50a474d41e6acb5bb88a", + "sha256:094275b1b8f003afce1167c8a674cd1ee2fd48c566632dac5d149901d5012ff8", + "sha256:097e48686e49026836ef384c7c10ca670acc023cb16a976a689c2eb6c1852df4", + "sha256:0cc9a47bf8cde85c99db5f4a919bb756e62427ade0f2e875a6ec89ae8492d486", + "sha256:0cdb5069870f7d26a34e5adc30672d0a7b26e652720530a023bb3a8d8a42e37f", + "sha256:0dcc54e7cfbd9674ec4ca181e26eaa5b038446601faeaa6c83d146ddef2f2652", + "sha256:16fbebfc38ad4285c256d2430797fd669b0437d090e985c6d443521d4303b133", + "sha256:1844d7782652f859d9648531778582d4842d80cfff8d334eb23bb8da0d22a1b0", + "sha256:2362c66d2c633925d90f2f177f05e0570d320d986130d34dff9ad6edbf7be8ac", + "sha256:29a86bc9c8a913a4e0ffab85c563a7505cdf4bd13fba05342f8314facc0b7586", + "sha256:2a6e5c0e0817fb20dbb880c83caebbd4ef39f1901f6f8e53b73a3c74de4e5172", + "sha256:2d1b47f768e1f4c1c8a9457effabed735939401e85c0ddcdf68444c88a9242e6", + "sha256:30e381471158290ccb79bd31e7bbda4c8f2cf7e1a5f6b557c1b97d6036ccd05b", + "sha256:313dfd911723dc3022fed7050a7b315d5d0681cd56eee08e44e2cbd39fd9ad81", + "sha256:32de1672f91a789cc9e1c36c406b2d75457a242d64e9e73a70b9b814ef00095e", + "sha256:340b7d085b4a5063aacb8664b1250e4a7426c16e1cc80705c548a229153af147", + "sha256:34d95ad8e27754f0d91917600d6ea273e05c82a71021f168c45be48637d9502f", + "sha256:3d549efc7e8f9a180c59462b124991b690ff25c235d5cf495c3246c66a7679cd", + "sha256:3dbfaa79b1c0efdb768392a19110f1aff793f3e8d43f57e292f46734b8affb45", + "sha256:44058bea97429cfa0d6fb1d8eb0736a77022f34a326d5bc64fd6fed8d9304571", + "sha256:46b8cc86204b51eddcf157cbaf3c44a20f24393030442af0909eeb961186cb67", + "sha256:47509775a5c41ec2a6cd17c9c00fc14965cad8e6670059663872ba5e39332f57", + "sha256:4b5df4ee48403885046c6f4fd8adc84c4ac0adec69482f22a17bd4ba52876341", + "sha256:544e5607142d66a469ecf78a3154ec0f915834dc3b8cfdb2677a78ca58319ad6", + "sha256:56d36f47bc7c7684504f0f18feb161a0b1162546b3622e45aa6155f8285180ac", + "sha256:5b217201efc007166e24e9a282007cc208a2d059350a7c5bd0b0303460ad3019", + "sha256:5c4f59dd358c3a99efa46d62dc1583be3a1c37171f5240c4cbdc2d5838870902", + "sha256:5d45ed9452a42064805143480397b586ea2ea322f4b8b69034c51181e7f38342", + "sha256:6197cfebe659ac802a686b5408494115a7062b45cdf37679c4d6a9d4f39649b7", + "sha256:65de5876e34780b43f92d9d2539de16ecc56d16f56e56e59b34adfa1cebe064f", + "sha256:676e8c182f8079851f12ae1cee2fcebe04def2da2a5703a9d747ab125af47732", + "sha256:682b202f56d9d9e1bb22eaca3e37321002223fd5ddef7189b9233e3c14079917", + "sha256:695da62e494e4689ab78fae173a78390a175b6a5ccc4292277ce0f8dba3945d5", + "sha256:6d65ea4582b47d77e9094c22eb0aeded0ebd96c1df86e988870b40c6514c6e21", + "sha256:706a7fc81ceeb321a1040d008b134056012188f95a5c31ad94fb03153b35cc84", + "sha256:7339bd6203351555c1e728acd601ba95ebce0f6041ebdb386e025f00af3f1769", + "sha256:7701a289d45fdfeb37f1d15cf638801cea439df667a613379443772a86e82936", + "sha256:7f27a079cb009ba569983061a50a9270b7e1d35f81e4eeaf0e26f8924027e550", + "sha256:827ddc3b3603f7d0421b054388da6face7871d800c4b3bbedeedc8778e4085ea", + "sha256:8ccc982197982cdda19e3e5ba4ef7f6ad6bed3eb39bb423bfbf7fa2cd29488ab", + "sha256:8f381747c2edebe3c750a571e55103bfcc33b2707a9b91ae033ab9ba718d976a", + "sha256:93ba80fbf959b5852554f23201a5f4b30885930c303546ffa883859a435ea3cf", + "sha256:9a50a9da1cf93e35f26c4ddee162abf3184a340339ec2d4001c34607b87e71b4", + "sha256:a1163bfe5d043c20adeb5c4c8e89dd1dd39b375c8ca6f1c1e35ec537ad7a12e7", + "sha256:a2285609b4edbf9957440642493788ebef6583042b3fb96217c2e71f29bc6d80", + "sha256:a255d30cda6334ba780eb40a56e8134efd3453948b995d3966e45212e34bf018", + "sha256:a3bba99178f1b25878752a8bc6da2f93fbae754ebd4914d2ac4b869b9fb24102", + "sha256:a56005332d70b8d02d476d4a85818b27b01e51dac1a21d5c1a1d8a5df2efb4a6", + "sha256:a89d7fe994b115f0a792e6673f387af3db812a1760d594abad51e0ea11d3e470", + "sha256:a8ac155e3fd3b54a63040df024e57e62c130b15a2fc66eff3c2a946f42beed52", + "sha256:ab5941e1fd509fc151258477ef4b663fe14c94f8faf3581827bf4b02080fd4ba", + "sha256:ab64f087c5863ac621b42e227e5a43bd9b28de581afe7be12ad96562b9be8203", + "sha256:ad37f25fd8dfbed80815c3281b82a165be2a74e663856b9a50099d18789987bc", + "sha256:b17026f3f349a6e87818cd3531e3bbb5cc78a6f4b2b6718f574a8e0512d71e08", + "sha256:b43d3c2e204d709af955bdb904ae127fe137363ace87fbf7dc8fe6017f7f8449", + "sha256:b482d1fdd8f860e743c7de8cd6dfe54fb9fe8cd6ccba29e2966912ac89e17b2f", + "sha256:b6c6cfc492710d8f0303705fa1ff7bb3d6a145f523384e45a6f3b13ada37021f", + "sha256:b9893852c559998f667e6434d2c2474518d4cdfd1b9cec8e57b3c9d577ba55c1", + "sha256:bd694c465cc61fa8e599355e535b6eb561279834d9883aeef08d0e86c44c300c", + "sha256:c0444423129df448788edc66a129bc7560ad7d6a661d74f0900959c0b44349a1", + "sha256:c37b092d29741096c4723f48924a80b1d3de62ca1de254ce88178fa083dd520c", + "sha256:ced906b172bfad62736a27cfafcb6e24bc9938533b0529ff8150f7926fe35b54", + "sha256:d0d3b9f7cee233368d92c89746dde74313abafaa3ec1f0c06a3f4f164dc27bcc", + "sha256:d5f67bffa6fc68e391b2250e1feb43d534ded64a7b918eb89cf7e3e679759d94", + "sha256:d9f0dfde448611f4f818da05f9b544a78f29355dc39151b0dad8e7c65c513e4f", + "sha256:da6dc0cb00ef1e1a8daf285074ca8b2bb89591170c42ceab0c37bcdb9adc802c", + "sha256:dc74a9ef4d61e18ee6f1886b6ef1fe285b1f432885288afacfb7402f7d469448", + "sha256:deb71e6166e4f1264174d78b5b88abd52b14c6649e6eabaf9cf93cb1c7362850", + "sha256:e042ae053e05fe193514d51d6b0f0243729961901e9a75f8b596bfaf69522c52", + "sha256:e2f87a483c4ab0bb2a9adc9ca09173e7f7cf3696e4fa67bd45a6b33181e57921", + "sha256:e2fa1ee5ca34ab2ecfbe3f7a7e952a1ecaebb5b4818f002b5b146324912ac3d5", + "sha256:e7d3f7cd57ce0c6a5bb8133f8ed5c3d1be0473a88b7d91a300626298f12d0999", + "sha256:edb334cab35dcd90eb563fdacb085f10e5dd0b1acb57fa43f8933308b42a8f88", + "sha256:efae49d0148ec68b6e012f1b9e19bd530f4dced378ba919e3e906ae2b829cc31", + "sha256:f1085cadec0f7e76377951d7a87744628c90ac6cc634fc97eecce0c4d41ec563", + "sha256:f15f56b3119fb71fa57eb4613bcd87eb7df6c2f3547de7d341853d3e50cef97e", + "sha256:f1b425a857ce52e651739314e4118fc68bd702ef983148b8fd5cb6f68bb6a020", + "sha256:f31e126204ec38f92dee119af87cf881044ef7dea6f7477ef774ed3d84199c24", + "sha256:f5e0a03e533313eee9437ccc6c4eab47369f17bc919b57df4a20ccd8bc85d8fd", + "sha256:f85d87986ca375b8305b5c4f166783b8db383a6469e8b99b8dba22878388f234", + "sha256:fa6fe8fa94a831886ee164ac03514f361e1387a62a1b9da32fde5c0c1f27fa8d", + "sha256:fb0f8b35c11fd8e4b924f974d331b20fa54555282451db7f2a3b24bd2d33cc11" + ], + "markers": "python_version >= '2.5' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==3.18.4" + }, + "six": { + "hashes": [ + "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", + "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==1.16.0" + }, + "urllib3": { + "hashes": [ + "sha256:34b97092d7e0a3a8cf7cd10e386f401b3737364026c45e622aa02903dffe0f07", + "sha256:f8ecc1bba5667413457c529ab955bf8c67b45db799d159066261719e328580a0" + ], + "markers": "python_version < '3.10'", + "version": "==1.26.18" + } + }, + "develop": { + "autopep8": { + "hashes": [ + "sha256:1fa8964e4618929488f4ec36795c7ff12924a68b8bf01366c094fc52f770b6e7", + "sha256:2bb76888c5edbcafe6aabab3c47ba534f5a2c2d245c2eddced4a30c4b4946357" + ], + "index": "pypi", + "version": "==2.1.0" + }, + "flake8": { + "hashes": [ + "sha256:33f96621059e65eec474169085dc92bf26e7b2d47366b70be2f67ab80dc25132", + "sha256:a6dfbb75e03252917f2473ea9653f7cd799c3064e54d4c8140044c5c065f53c3" + ], + "index": "pypi", + "version": "==7.0.0" + }, + "mccabe": { + "hashes": [ + "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325", + "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e" + ], + "markers": "python_version >= '3.6'", + "version": "==0.7.0" + }, + "pycodestyle": { + "hashes": [ + "sha256:41ba0e7afc9752dfb53ced5489e89f8186be00e599e712660695b7a75ff2663f", + "sha256:44fe31000b2d866f2e41841b18528a505fbd7fef9017b04eff4e2648a0fadc67" + ], + "markers": "python_version >= '3.8'", + "version": "==2.11.1" + }, + "pyflakes": { + "hashes": [ + "sha256:1c61603ff154621fb2a9172037d84dca3500def8c8b630657d1701f026f8af3f", + "sha256:84b5be138a2dfbb40689ca07e2152deb896a65c3a3e24c251c5c62489568074a" + ], + "markers": "python_version >= '3.8'", + "version": "==3.2.0" + }, + "tomli": { + "hashes": [ + "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc", + "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f" + ], + "markers": "python_version < '3.11'", + "version": "==2.0.1" + } + } +} diff --git a/lambda/transfer-medpass-data/src/transfer-medpass-data.py b/lambda/transfer-medpass-data/src/transfer-medpass-data.py new file mode 100644 index 00000000..efb7e42c --- /dev/null +++ b/lambda/transfer-medpass-data/src/transfer-medpass-data.py @@ -0,0 +1,204 @@ +import datetime +import logging +import os +from zoneinfo import ZoneInfo + +import boto3 +import pyzipper +from pyzipper.zipfile import BadZipFile + +# 環境変数 +# mbj-newdwh2021-staging-data +DATA_IMPORT_BUCKET = os.environ["DATA_IMPORT_BUCKET"] +# mbj-newdwh2021-staging-backup-medpass +MEDPASS_BACKUP_BUCKET = os.environ["MEDPASS_BACKUP_BUCKET"] +MEDPASS_TARGET_FOLDER = os.environ["MEDPASS_TARGET_FOLDER"] # medpass/target +# /staging/s3/medpassZipExtractPassword +MEDPASS_ZIP_PASSWORD_PARAMETER_STORE_KEY = os.environ["MEDPASS_ZIP_PASSWORD_PARAMETER_STORE_KEY"] +LOG_LEVEL = os.environ["LOG_LEVEL"] +TZ = os.environ["TZ"] + +# 定数 +# 多重起動抑制用のコントロールファイルの拡張子 +EXCLUSIVE_CONTROL_FILE_EXT = '.doing' +# tmpフォルダパス +PATH_TMP = '/tmp' +# 拡張子 +ZIP_FILE_EXT = 'zip' +CSV_FILE_EXT = 'csv' + +# S3クライアント +s3_client = boto3.client('s3') +# SystemsManagerクライアント +ssm_client = boto3.client('ssm') + +# logger設定 +logger = logging.getLogger() + + +def log_datetime_convert_tz(*arg): + """ログに出力するタイムスタンプのロケールを変更する(JST指定)""" + return datetime.datetime.now(ZoneInfo(TZ)).timetuple() + + +formatter = logging.Formatter( + '[%(levelname)s]\t%(asctime)s\t%(message)s\n', + '%Y-%m-%d %H:%M:%S' +) +formatter.converter = log_datetime_convert_tz +for handler in logger.handlers: + handler.setFormatter(formatter) + +level = logging.getLevelName(LOG_LEVEL) +if not isinstance(level, int): + level = logging.INFO +logger.setLevel(level) + + +def extract_zip_with_password(zip_filepath: str, extract_to_folder: str, password: str): + """ + 暗号化ZIPを解凍する。 + + :param zip_filepath: ZIPファイルが保管されているフォルダパス + :param extract_to_folder: ZIPファイルの解凍先フォルダ + :param password: ZIPパスワード + """ + # ZIPを解凍 + try: + with pyzipper.AESZipFile(zip_filepath) as z: + # ZIP内のファイルは1つのみ + inner_filename = z.filelist[0].filename + z.extractall(path=extract_to_folder, pwd=password.encode()) + except BadZipFile as e: + pass + except Exception as e: + pass + + logger.info(f'解凍先フォルダ: {os.listdir("/tmp")}') + logger.info(f'解凍ファイルパス: {os.path.join(extract_to_folder, inner_filename)}') + return os.path.join(extract_to_folder, inner_filename) + + +def get_s3_event_parameter(event: dict): + s3_event = event["Records"][0]["s3"] + event_bucket_name = s3_event["bucket"]["name"] + event_object_key = s3_event["object"]["key"] + event_file_name = os.path.basename(event_object_key) + event_folder_name = os.path.dirname(event_object_key).split('/')[0] + + return event_bucket_name, event_object_key, event_file_name, event_folder_name + + +def get_ssm_params(parameter_key: str, with_decryption: bool = True): + response = ssm_client.get_parameter( + Name=parameter_key, WithDecryption=with_decryption) + parameter_value = response['Parameter']['Value'] + return parameter_value + + +def delete_doing_file(event_bucket_name: str, event_object_key: str): + # ⑨ メモリに保持したバケット名/フォルダ名内の「受信データファイル名.doing」ファイルを削除する + s3_client.delete_object( + Bucket=event_bucket_name, Key=f'{event_object_key}{EXCLUSIVE_CONTROL_FILE_EXT}') + + +def handler(event, context): + try: + # ① 処理開始ログを出力する + logger.info('I-01-01 処理開始 medパスデータ解凍・復号化・転送処理') + + # ② 処理開始時に受け取ったイベント情報をログに出力する + # バケット名・フォルダ名・受信データファイル名をメモリに保持 + ( + event_bucket_name, + event_object_key, + event_file_name, + event_folder_name + ) = get_s3_event_parameter(event) + logger.info(f'I-02-01 受信バケット:{event_bucket_name}') + logger.info(f'I-02-01 フォルダ名:{event_folder_name}') + logger.info(f'I-02-01 ファイル名:{event_file_name}') + # ③ S3イベントによるLambdaの重複発火防止の為、メモリに保持したバケット名/フォルダ名内に、「受信データファイル名.doing」ファイルが存在するかチェックする + try: + s3_client.head_object( + Bucket=event_bucket_name, Key=f'{event_object_key}{EXCLUSIVE_CONTROL_FILE_EXT}') + logger.error( + f'E-01-01 {event_bucket_name}/{event_object_key}は現在処理中です。処理を終了します。') + return + except Exception: + # .doingファイルが見つからなかった場合は、処理を続行する + # メモリに保持したバケット名/フォルダ名内に、「受信データファイル名.doing」ファイルを作成する + logger.info('I-03-01 medパスデータの解凍・復号化・転送を開始します') + s3_client.put_object( + Bucket=event_bucket_name, Key=f'{event_object_key}{EXCLUSIVE_CONTROL_FILE_EXT}', Body=b'') + + # ④ S3から暗号化ZIPファイルを読み込む + try: + logger.info( + f'I-04-01 暗号化ZIPファイル読込 読込元:{event_bucket_name}/{event_object_key}') + s3_client.download_file( + event_bucket_name, event_object_key, os.path.join(PATH_TMP, event_file_name)) + logger.info('I-04-02 暗号化ZIPファイルをダウンロードしました') + except Exception as e: + logger.exception(f'E-04-01 暗号化ZIPファイルのダウンロードに失敗しました エラー内容:{e}') + raise e + + # ⑤ ZIP解凍パスワードをSSM パラメータストアから取得する + try: + logger.info( + f'I-05-01 ZIP解凍パスワードを読み込み 読込元:{MEDPASS_ZIP_PASSWORD_PARAMETER_STORE_KEY}') + zip_password = get_ssm_params( + MEDPASS_ZIP_PASSWORD_PARAMETER_STORE_KEY) + except Exception as e: + logger.exception(f'E-05-01 ZIP解凍パスワードの読み込みに失敗しました エラー内容:{e}') + raise e + + # ⑥ ZIPファイルを解凍してローカルに保存 + try: + logger.info(f'I-06-01 ZIP解凍開始') + extracted_zip_file_path = extract_zip_with_password( + os.path.join(PATH_TMP, event_file_name), PATH_TMP, zip_password) + except Exception as e: + logger.exception(f'E-06-01 ZIPの解凍に失敗しました エラー内容:{e}') + raise e + logger.info(f'I-06-02 ZIP解凍成功') + # ⑦ バックアップS3バケットにコピー + copy_source = {'Bucket': event_bucket_name, 'Key': event_object_key} + execute_date_yyyymm = datetime.date.today().strftime('%Y/%m/%d') + s3_client.copy_object( + Bucket=MEDPASS_BACKUP_BUCKET, + Key=f'{execute_date_yyyymm}/{event_file_name}', + CopySource=copy_source + ) + logger.info( + f'I-07-01 medパス受信データのバックアップ完了:{MEDPASS_BACKUP_BUCKET}/{execute_date_yyyymm}/{event_file_name}') + + # ⑧ データ登録S3バケットにアップロード + csv_file_name = extracted_zip_file_path.split('/')[-1] + logger.info(csv_file_name) + s3_client.upload_file( + extracted_zip_file_path, + Bucket=DATA_IMPORT_BUCKET, + Key=f'{MEDPASS_TARGET_FOLDER}/{csv_file_name}' + ) + + # アップロード後、元のバケットからは削除する + s3_client.delete_object(Bucket=event_bucket_name, Key=event_object_key) + logger.info( + f'I-08-01 Encise受信データの転送完了:{DATA_IMPORT_BUCKET}/{MEDPASS_TARGET_FOLDER}/{csv_file_name}') + + # ⑨ メモリに保持したバケット名/フォルダ名内の「受信データファイル名.doing」ファイルを削除する + delete_doing_file(event_bucket_name, event_object_key) + + logger.info('I-08-09 処理終了 Medpass受信データ転送処理') + + except Exception as e: + logger.exception(f'想定外のエラーが発生しました。処理を終了します。 例外内容:{e}') + ( + event_bucket_name, + event_object_key, + _, + _ + ) = get_s3_event_parameter(event) + delete_doing_file(event_bucket_name, event_object_key) + raise e From 479fe869bf4e50c1ea1c865b45643e2cdfe4861c Mon Sep 17 00:00:00 2001 From: "shimoda.m@nds-tyo.co.jp" Date: Mon, 1 Jul 2024 09:43:00 +0900 Subject: [PATCH 2/8] =?UTF-8?q?feat:=20python3.12=E3=81=AB=E5=AF=BE?= =?UTF-8?q?=E5=BF=9C=E3=80=82Dockerfile=E3=82=92=E6=9C=80=E9=81=A9?= =?UTF-8?q?=E5=8C=96=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lambda/transfer-medpass-data/Dockerfile | 26 +- lambda/transfer-medpass-data/Pipfile | 2 +- lambda/transfer-medpass-data/Pipfile.lock | 279 +++++++++--------- .../{src/transfer-medpass-data.py => main.py} | 0 4 files changed, 160 insertions(+), 147 deletions(-) rename lambda/transfer-medpass-data/{src/transfer-medpass-data.py => main.py} (100%) diff --git a/lambda/transfer-medpass-data/Dockerfile b/lambda/transfer-medpass-data/Dockerfile index b33f6e2f..b00422cf 100644 --- a/lambda/transfer-medpass-data/Dockerfile +++ b/lambda/transfer-medpass-data/Dockerfile @@ -1,19 +1,19 @@ -FROM python:3.9 +# AWS公式のDockerイメージを利用 +FROM public.ecr.aws/lambda/python:3.12 -ENV TZ="Asia/Tokyo" +# pythonの標準出力をバッファリングしないフラグ +ENV PYTHONUNBUFFERED=1 +# pythonのバイトコードを生成しないフラグ +ENV PYTHONDONTWRITEBYTECODE=1 -WORKDIR /function -COPY Pipfile Pipfile.lock ${WORKDIR} -RUN \ - apt update -y && \ - # パッケージのセキュリティアップデートのみを適用するコマンド - apt install -y unattended-upgrades && \ - unattended-upgrades && \ - pip install --upgrade pip wheel setuptools && \ +# 必要なファイルをイメージにコピー +COPY Pipfile Pipfile.lock main.py ./ + +# ライブラリインストール +RUN pip install --upgrade pip wheel setuptools && \ pip install pipenv --no-cache-dir && \ pipenv install --system --deploy && \ pip uninstall -y pipenv virtualenv-clone virtualenv -COPY src ./ -ENTRYPOINT [ "/usr/local/bin/python", "-m", "awslambdaric" ] -CMD [ "transfer-medpass-data.handler" ] + # lambdaハンドラを起動 +CMD [ "main.handler" ] diff --git a/lambda/transfer-medpass-data/Pipfile b/lambda/transfer-medpass-data/Pipfile index f54fe4aa..8bec0696 100644 --- a/lambda/transfer-medpass-data/Pipfile +++ b/lambda/transfer-medpass-data/Pipfile @@ -13,4 +13,4 @@ autopep8 = "*" flake8 = "*" [requires] -python_version = "3.9" +python_version = "3.12" diff --git a/lambda/transfer-medpass-data/Pipfile.lock b/lambda/transfer-medpass-data/Pipfile.lock index 1cf927ca..b4a34c21 100644 --- a/lambda/transfer-medpass-data/Pipfile.lock +++ b/lambda/transfer-medpass-data/Pipfile.lock @@ -1,11 +1,11 @@ { "_meta": { "hash": { - "sha256": "aedbb7748f654696e0433a6c30f5bee011d6cf0acff5d4cc6fe8b4a6d7c617aa" + "sha256": "233bd2442299b9e1bbedd7037f98893225b53953c1b68e0258e93ade1c1ed159" }, "pipfile-spec": 6, "requires": { - "python_version": "3.9" + "python_version": "3.12" }, "sources": [ { @@ -18,48 +18,48 @@ "default": { "awslambdaric": { "hashes": [ - "sha256:04d4d4b63cef0e9aad3adea95a5cf3f81634bccde625f104ff025f764a3e8874", - "sha256:0a9922690eb7722417cbac55b913ab070c88444ab83290293debf29d5d9ca371", - "sha256:0e55a815caef1258ed7a9b0adad54e5f1b2ca63966d21342dc5da5b55dd471ef", - "sha256:2566a9db2c613fddddc22aedb45e74dbcd5c1a044da6992424680be719db80c9", - "sha256:34a3e8d27b84ccc9535086487eed50425c0db7a016bf91cf24d8d6cc853faec3", - "sha256:403109390f1a9856f8f6d5f0d5e7f2f83bdec99a62d024e433bff50eda2ed373", - "sha256:4dbd3e2262d080327a90e1ac9d087d7616e8b5be6da83be9fd3ca1b5ae575173", - "sha256:506f004ca08a2f43a898b65dad9d6dd2b2a4910ebe43dcc6682dc5ca0267c24a", - "sha256:662b95b6079b563d3e2ef4fda7bcb20e360901eae7a646425612ef2f4e5d6bdf", - "sha256:6de8d5ea0fc8cb780e060fc06a84328fda3ed329faf97606db59287814490ade", - "sha256:6f298068e2791b0ec5c420ef27cdf8aaba23486dfa5917b6c3067e30c97dde4f", - "sha256:7699c822197f98cc22c262af2368c99d69b43a73113099be52545b195c5e0064", - "sha256:7b75376d62a294e37d96507a68290dd94ce83f5b1a597c42d29242545e1ee126", - "sha256:98b16b4752f16b6a0562cfc1db2e6ce63b2a41ffa97c27e784c3ae5e8c2dc91d", - "sha256:bf57203ebeb4d718b34cd168f6b5ef497bfd2481adf848c5252faf38dccd7bf1", - "sha256:bf824aeff2cde789db1167c377573f1dbf2bf01e75eeb31651de00786ef09ed0", - "sha256:d3438bf0be646d61f8a60fb668c0c3b103963611462f35bf2db11ef50242f54f", - "sha256:d530ab882984188436f3869a2fc172086ab6b43a5f7502a86b241347a5441de3", - "sha256:e4be962e90035f362511eac65ad5c0242da15f73cfae27716de42b47f9d0a2a8", - "sha256:e5145fa63560901d7dbe26c5ee0dd5977f3783ab799fa04f50c50c207be78305", - "sha256:eb1a13c130a8a2ffc1c127a2bd581f45b9f10ec32a3892e41b5b1bdc9788b92d", - "sha256:ed798ab90f5230fe11079b269c3748bd875bc218c2ad4528ae2b4a04a0cd92b5", - "sha256:f55cf42cea67661ccea604b7774ba8cb1e467dadaf3d4c4b7f4e029faf43a46b" + "sha256:099f032df56f3a0685df2a2dd8f08246b68e44bd5b04cca0e53638c53d036acc", + "sha256:1224fc8f989f08eb8f10ff902068ea393c1a7fe0e28b683983c66d62a39c86c7", + "sha256:16bc3147fed0c079d108f21ca9ca5b5348ac49044b7bf9f806a36d9a7f410fa9", + "sha256:2087484fa39c2417d447788aed73423fdee5918c2107589aaafc8de9ec8df66d", + "sha256:26cc35cdecb5b5eeb1d20684ce5079dbd8e5c86e44016f47c7fcce1d4fcaeeb7", + "sha256:41b68501a2338ae982306bed4309529323fc6dd6e048e33b05091d8dc48ecbcd", + "sha256:42f68fa404d59d65aead9c290cff82e6272737565f4621c3b1455075d9a72779", + "sha256:4becf3da0366e2797db3c922ad4d2fbe817bc87f86f3c94ca37ebc9519993659", + "sha256:5bee5faf7c4d330f585ad94fc41e5a3728054f3d17316c6ca6810ad8c8cd4fe2", + "sha256:6b5952aa4f697da4ca2308e461adaec98408a2d4548752963fa8cb2ca348f642", + "sha256:76d30202dec0839422ec16900d1b4e43b612f5feb8c8649add14d3f00968083b", + "sha256:8182f0e6b9ec34458423eb271ab27b288b3adf7befd321e7b5d50477307588d5", + "sha256:8b5bfa5f22977cd74e8a66e0f6badfb5f3c537aeeb21d5f9471a85df096970d3", + "sha256:91144b664b8f9d936ed7c1e2f8cceb9904e91888cdb5e2b04865fd98f85f0789", + "sha256:afd86820e985a01e7e245327c34f50ee3608efcac55b3f55ffe61315b8419bd2", + "sha256:c496f833002da3185270af7239f42018ca0dedc6d0df1ca476098c714d46aa52", + "sha256:cb5f71727ab1a04e1f76232a4ae8fa46e30fac89fd9f81cdd2b7272a49361940", + "sha256:d54c2fc5537299c982a8cde59e8099693b02f75936adc24edb2a5125b5ec672e", + "sha256:db094789549a7e8c3d312edb7ce4ce644a48282984e1d109c2eb53293c2ab3e3", + "sha256:df4aca7b4e77c37ca96179d990668468632aff27ee63b4a143abed60bb49adfd", + "sha256:ec3ba835613e7ea0ff49e09c5cd64dd8560e2a51b0b3df789f2bdb707ba8593d", + "sha256:f02b84322a83302f2a1cae5a2624ec7da96d976a29de8643f43bd80895a5efda", + "sha256:f228bdfd3cfb5c4ac348a7743da0c1be54e85e05206f97d0c57186ac6806e6ae" ], "index": "pypi", - "version": "==2.0.11" + "version": "==2.0.12" }, "boto3": { "hashes": [ - "sha256:684cba753d64978a486e8ea9645d53de0d4e3b4a3ab1495b26bd04b9541cea2d", - "sha256:db7bbb1c6059e99b74dcf634e497b04addcac4c527ae2b2696e47c39eccc6c50" + "sha256:342782c02ff077aae118c9c61179eed95c585831fba666baacc5588ff04aa6e1", + "sha256:f6d6e5b0c9ab022a75373fa16c01f0cd54bc1bb64ef3b6ac64ac7cedd56cbe9c" ], "index": "pypi", - "version": "==1.34.92" + "version": "==1.34.134" }, "botocore": { "hashes": [ - "sha256:4211a22a1f6c6935e70cbb84c2cd93b29f9723eaf5036d59748dd104f389a681", - "sha256:d1ca4886271f184445ec737cd2e752498648cca383887c5a37b2e01c8ab94039" + "sha256:45219e00639755f92569b29f8f279d5dde721494791412c1f7026a3779e8d9f4", + "sha256:e29c299599426ed16dd2d4c1e20eef784f96b15e1850ebbc59a3250959285b95" ], "markers": "python_version >= '3.8'", - "version": "==1.34.92" + "version": "==1.34.134" }, "jmespath": { "hashes": [ @@ -125,102 +125,115 @@ }, "s3transfer": { "hashes": [ - "sha256:5683916b4c724f799e600f41dd9e10a9ff19871bf87623cc8f491cb4f5fa0a19", - "sha256:ceb252b11bcf87080fb7850a224fb6e05c8a776bab8f2b64b7f25b969464839d" + "sha256:0711534e9356d3cc692fdde846b4a1e4b0cb6519971860796e6bc4c7aea00ef6", + "sha256:eca1c20de70a39daee580aef4986996620f365c4e0fda6a86100231d62f1bf69" ], "markers": "python_version >= '3.8'", - "version": "==0.10.1" + "version": "==0.10.2" }, "simplejson": { "hashes": [ - "sha256:01f426ee9e3a2d205aa4c22c3da996b51f2de75c4199ef703258a28b304dea8c", - "sha256:03de1ec4ad734f28ca49b0a758b997d752be0d089ed30360157c4e8811999c8f", - "sha256:041dd69026284d10f035cefb4a75026d2cfcef31f31e62585eeb2b7776e7e047", - "sha256:05a668d4a93816fb8a644e90e7987aa3beeb9d2112ca50a474d41e6acb5bb88a", - "sha256:094275b1b8f003afce1167c8a674cd1ee2fd48c566632dac5d149901d5012ff8", - "sha256:097e48686e49026836ef384c7c10ca670acc023cb16a976a689c2eb6c1852df4", - "sha256:0cc9a47bf8cde85c99db5f4a919bb756e62427ade0f2e875a6ec89ae8492d486", - "sha256:0cdb5069870f7d26a34e5adc30672d0a7b26e652720530a023bb3a8d8a42e37f", - "sha256:0dcc54e7cfbd9674ec4ca181e26eaa5b038446601faeaa6c83d146ddef2f2652", - "sha256:16fbebfc38ad4285c256d2430797fd669b0437d090e985c6d443521d4303b133", - "sha256:1844d7782652f859d9648531778582d4842d80cfff8d334eb23bb8da0d22a1b0", - "sha256:2362c66d2c633925d90f2f177f05e0570d320d986130d34dff9ad6edbf7be8ac", - "sha256:29a86bc9c8a913a4e0ffab85c563a7505cdf4bd13fba05342f8314facc0b7586", - "sha256:2a6e5c0e0817fb20dbb880c83caebbd4ef39f1901f6f8e53b73a3c74de4e5172", - "sha256:2d1b47f768e1f4c1c8a9457effabed735939401e85c0ddcdf68444c88a9242e6", - "sha256:30e381471158290ccb79bd31e7bbda4c8f2cf7e1a5f6b557c1b97d6036ccd05b", - "sha256:313dfd911723dc3022fed7050a7b315d5d0681cd56eee08e44e2cbd39fd9ad81", - "sha256:32de1672f91a789cc9e1c36c406b2d75457a242d64e9e73a70b9b814ef00095e", - "sha256:340b7d085b4a5063aacb8664b1250e4a7426c16e1cc80705c548a229153af147", - "sha256:34d95ad8e27754f0d91917600d6ea273e05c82a71021f168c45be48637d9502f", - "sha256:3d549efc7e8f9a180c59462b124991b690ff25c235d5cf495c3246c66a7679cd", - "sha256:3dbfaa79b1c0efdb768392a19110f1aff793f3e8d43f57e292f46734b8affb45", - "sha256:44058bea97429cfa0d6fb1d8eb0736a77022f34a326d5bc64fd6fed8d9304571", - "sha256:46b8cc86204b51eddcf157cbaf3c44a20f24393030442af0909eeb961186cb67", - "sha256:47509775a5c41ec2a6cd17c9c00fc14965cad8e6670059663872ba5e39332f57", - "sha256:4b5df4ee48403885046c6f4fd8adc84c4ac0adec69482f22a17bd4ba52876341", - "sha256:544e5607142d66a469ecf78a3154ec0f915834dc3b8cfdb2677a78ca58319ad6", - "sha256:56d36f47bc7c7684504f0f18feb161a0b1162546b3622e45aa6155f8285180ac", - "sha256:5b217201efc007166e24e9a282007cc208a2d059350a7c5bd0b0303460ad3019", - "sha256:5c4f59dd358c3a99efa46d62dc1583be3a1c37171f5240c4cbdc2d5838870902", - "sha256:5d45ed9452a42064805143480397b586ea2ea322f4b8b69034c51181e7f38342", - "sha256:6197cfebe659ac802a686b5408494115a7062b45cdf37679c4d6a9d4f39649b7", - "sha256:65de5876e34780b43f92d9d2539de16ecc56d16f56e56e59b34adfa1cebe064f", - "sha256:676e8c182f8079851f12ae1cee2fcebe04def2da2a5703a9d747ab125af47732", - "sha256:682b202f56d9d9e1bb22eaca3e37321002223fd5ddef7189b9233e3c14079917", - "sha256:695da62e494e4689ab78fae173a78390a175b6a5ccc4292277ce0f8dba3945d5", - "sha256:6d65ea4582b47d77e9094c22eb0aeded0ebd96c1df86e988870b40c6514c6e21", - "sha256:706a7fc81ceeb321a1040d008b134056012188f95a5c31ad94fb03153b35cc84", - "sha256:7339bd6203351555c1e728acd601ba95ebce0f6041ebdb386e025f00af3f1769", - "sha256:7701a289d45fdfeb37f1d15cf638801cea439df667a613379443772a86e82936", - "sha256:7f27a079cb009ba569983061a50a9270b7e1d35f81e4eeaf0e26f8924027e550", - "sha256:827ddc3b3603f7d0421b054388da6face7871d800c4b3bbedeedc8778e4085ea", - "sha256:8ccc982197982cdda19e3e5ba4ef7f6ad6bed3eb39bb423bfbf7fa2cd29488ab", - "sha256:8f381747c2edebe3c750a571e55103bfcc33b2707a9b91ae033ab9ba718d976a", - "sha256:93ba80fbf959b5852554f23201a5f4b30885930c303546ffa883859a435ea3cf", - "sha256:9a50a9da1cf93e35f26c4ddee162abf3184a340339ec2d4001c34607b87e71b4", - "sha256:a1163bfe5d043c20adeb5c4c8e89dd1dd39b375c8ca6f1c1e35ec537ad7a12e7", - "sha256:a2285609b4edbf9957440642493788ebef6583042b3fb96217c2e71f29bc6d80", - "sha256:a255d30cda6334ba780eb40a56e8134efd3453948b995d3966e45212e34bf018", - "sha256:a3bba99178f1b25878752a8bc6da2f93fbae754ebd4914d2ac4b869b9fb24102", - "sha256:a56005332d70b8d02d476d4a85818b27b01e51dac1a21d5c1a1d8a5df2efb4a6", - "sha256:a89d7fe994b115f0a792e6673f387af3db812a1760d594abad51e0ea11d3e470", - "sha256:a8ac155e3fd3b54a63040df024e57e62c130b15a2fc66eff3c2a946f42beed52", - "sha256:ab5941e1fd509fc151258477ef4b663fe14c94f8faf3581827bf4b02080fd4ba", - "sha256:ab64f087c5863ac621b42e227e5a43bd9b28de581afe7be12ad96562b9be8203", - "sha256:ad37f25fd8dfbed80815c3281b82a165be2a74e663856b9a50099d18789987bc", - "sha256:b17026f3f349a6e87818cd3531e3bbb5cc78a6f4b2b6718f574a8e0512d71e08", - "sha256:b43d3c2e204d709af955bdb904ae127fe137363ace87fbf7dc8fe6017f7f8449", - "sha256:b482d1fdd8f860e743c7de8cd6dfe54fb9fe8cd6ccba29e2966912ac89e17b2f", - "sha256:b6c6cfc492710d8f0303705fa1ff7bb3d6a145f523384e45a6f3b13ada37021f", - "sha256:b9893852c559998f667e6434d2c2474518d4cdfd1b9cec8e57b3c9d577ba55c1", - "sha256:bd694c465cc61fa8e599355e535b6eb561279834d9883aeef08d0e86c44c300c", - "sha256:c0444423129df448788edc66a129bc7560ad7d6a661d74f0900959c0b44349a1", - "sha256:c37b092d29741096c4723f48924a80b1d3de62ca1de254ce88178fa083dd520c", - "sha256:ced906b172bfad62736a27cfafcb6e24bc9938533b0529ff8150f7926fe35b54", - "sha256:d0d3b9f7cee233368d92c89746dde74313abafaa3ec1f0c06a3f4f164dc27bcc", - "sha256:d5f67bffa6fc68e391b2250e1feb43d534ded64a7b918eb89cf7e3e679759d94", - "sha256:d9f0dfde448611f4f818da05f9b544a78f29355dc39151b0dad8e7c65c513e4f", - "sha256:da6dc0cb00ef1e1a8daf285074ca8b2bb89591170c42ceab0c37bcdb9adc802c", - "sha256:dc74a9ef4d61e18ee6f1886b6ef1fe285b1f432885288afacfb7402f7d469448", - "sha256:deb71e6166e4f1264174d78b5b88abd52b14c6649e6eabaf9cf93cb1c7362850", - "sha256:e042ae053e05fe193514d51d6b0f0243729961901e9a75f8b596bfaf69522c52", - "sha256:e2f87a483c4ab0bb2a9adc9ca09173e7f7cf3696e4fa67bd45a6b33181e57921", - "sha256:e2fa1ee5ca34ab2ecfbe3f7a7e952a1ecaebb5b4818f002b5b146324912ac3d5", - "sha256:e7d3f7cd57ce0c6a5bb8133f8ed5c3d1be0473a88b7d91a300626298f12d0999", - "sha256:edb334cab35dcd90eb563fdacb085f10e5dd0b1acb57fa43f8933308b42a8f88", - "sha256:efae49d0148ec68b6e012f1b9e19bd530f4dced378ba919e3e906ae2b829cc31", - "sha256:f1085cadec0f7e76377951d7a87744628c90ac6cc634fc97eecce0c4d41ec563", - "sha256:f15f56b3119fb71fa57eb4613bcd87eb7df6c2f3547de7d341853d3e50cef97e", - "sha256:f1b425a857ce52e651739314e4118fc68bd702ef983148b8fd5cb6f68bb6a020", - "sha256:f31e126204ec38f92dee119af87cf881044ef7dea6f7477ef774ed3d84199c24", - "sha256:f5e0a03e533313eee9437ccc6c4eab47369f17bc919b57df4a20ccd8bc85d8fd", - "sha256:f85d87986ca375b8305b5c4f166783b8db383a6469e8b99b8dba22878388f234", - "sha256:fa6fe8fa94a831886ee164ac03514f361e1387a62a1b9da32fde5c0c1f27fa8d", - "sha256:fb0f8b35c11fd8e4b924f974d331b20fa54555282451db7f2a3b24bd2d33cc11" + "sha256:0405984f3ec1d3f8777c4adc33eac7ab7a3e629f3b1c05fdded63acc7cf01137", + "sha256:0436a70d8eb42bea4fe1a1c32d371d9bb3b62c637969cb33970ad624d5a3336a", + "sha256:061e81ea2d62671fa9dea2c2bfbc1eec2617ae7651e366c7b4a2baf0a8c72cae", + "sha256:064300a4ea17d1cd9ea1706aa0590dcb3be81112aac30233823ee494f02cb78a", + "sha256:08889f2f597ae965284d7b52a5c3928653a9406d88c93e3161180f0abc2433ba", + "sha256:0a48679310e1dd5c9f03481799311a65d343748fe86850b7fb41df4e2c00c087", + "sha256:0b0a3eb6dd39cce23801a50c01a0976971498da49bc8a0590ce311492b82c44b", + "sha256:0d2d5119b1d7a1ed286b8af37357116072fc96700bce3bec5bb81b2e7057ab41", + "sha256:0d551dc931638e2102b8549836a1632e6e7cf620af3d093a7456aa642bff601d", + "sha256:1018bd0d70ce85f165185d2227c71e3b1e446186f9fa9f971b69eee223e1e3cd", + "sha256:11c39fbc4280d7420684494373b7c5904fa72a2b48ef543a56c2d412999c9e5d", + "sha256:11cc3afd8160d44582543838b7e4f9aa5e97865322844b75d51bf4e0e413bb3e", + "sha256:1537b3dd62d8aae644f3518c407aa8469e3fd0f179cdf86c5992792713ed717a", + "sha256:16ca9c90da4b1f50f089e14485db8c20cbfff2d55424062791a7392b5a9b3ff9", + "sha256:176a1b524a3bd3314ed47029a86d02d5a95cc0bee15bd3063a1e1ec62b947de6", + "sha256:18955c1da6fc39d957adfa346f75226246b6569e096ac9e40f67d102278c3bcb", + "sha256:1bb5b50dc6dd671eb46a605a3e2eb98deb4a9af787a08fcdddabe5d824bb9664", + "sha256:1c768e7584c45094dca4b334af361e43b0aaa4844c04945ac7d43379eeda9bc2", + "sha256:1dd4f692304854352c3e396e9b5f0a9c9e666868dd0bdc784e2ac4c93092d87b", + "sha256:25785d038281cd106c0d91a68b9930049b6464288cea59ba95b35ee37c2d23a5", + "sha256:287e39ba24e141b046812c880f4619d0ca9e617235d74abc27267194fc0c7835", + "sha256:2c1467d939932901a97ba4f979e8f2642415fcf02ea12f53a4e3206c9c03bc17", + "sha256:2c433a412e96afb9a3ce36fa96c8e61a757af53e9c9192c97392f72871e18e69", + "sha256:2d022b14d7758bfb98405672953fe5c202ea8a9ccf9f6713c5bd0718eba286fd", + "sha256:2f98d918f7f3aaf4b91f2b08c0c92b1774aea113334f7cde4fe40e777114dbe6", + "sha256:2fc697be37585eded0c8581c4788fcfac0e3f84ca635b73a5bf360e28c8ea1a2", + "sha256:3194cd0d2c959062b94094c0a9f8780ffd38417a5322450a0db0ca1a23e7fbd2", + "sha256:332c848f02d71a649272b3f1feccacb7e4f7e6de4a2e6dc70a32645326f3d428", + "sha256:346820ae96aa90c7d52653539a57766f10f33dd4be609206c001432b59ddf89f", + "sha256:3471e95110dcaf901db16063b2e40fb394f8a9e99b3fe9ee3acc6f6ef72183a2", + "sha256:3848427b65e31bea2c11f521b6fc7a3145d6e501a1038529da2391aff5970f2f", + "sha256:39b6d79f5cbfa3eb63a869639cfacf7c41d753c64f7801efc72692c1b2637ac7", + "sha256:3e74355cb47e0cd399ead3477e29e2f50e1540952c22fb3504dda0184fc9819f", + "sha256:3f39bb1f6e620f3e158c8b2eaf1b3e3e54408baca96a02fe891794705e788637", + "sha256:40847f617287a38623507d08cbcb75d51cf9d4f9551dd6321df40215128325a3", + "sha256:4280e460e51f86ad76dc456acdbfa9513bdf329556ffc8c49e0200878ca57816", + "sha256:445a96543948c011a3a47c8e0f9d61e9785df2544ea5be5ab3bc2be4bd8a2565", + "sha256:4969d974d9db826a2c07671273e6b27bc48e940738d768fa8f33b577f0978378", + "sha256:49aaf4546f6023c44d7e7136be84a03a4237f0b2b5fb2b17c3e3770a758fc1a0", + "sha256:49e0e3faf3070abdf71a5c80a97c1afc059b4f45a5aa62de0c2ca0444b51669b", + "sha256:49f9da0d6cd17b600a178439d7d2d57c5ef01f816b1e0e875e8e8b3b42db2693", + "sha256:4a8c3cc4f9dfc33220246760358c8265dad6e1104f25f0077bbca692d616d358", + "sha256:4d36081c0b1c12ea0ed62c202046dca11438bee48dd5240b7c8de8da62c620e9", + "sha256:4edcd0bf70087b244ba77038db23cd98a1ace2f91b4a3ecef22036314d77ac23", + "sha256:554313db34d63eac3b3f42986aa9efddd1a481169c12b7be1e7512edebff8eaf", + "sha256:5675e9d8eeef0aa06093c1ff898413ade042d73dc920a03e8cea2fb68f62445a", + "sha256:60848ab779195b72382841fc3fa4f71698a98d9589b0a081a9399904487b5832", + "sha256:66e5dc13bfb17cd6ee764fc96ccafd6e405daa846a42baab81f4c60e15650414", + "sha256:6779105d2fcb7fcf794a6a2a233787f6bbd4731227333a072d8513b252ed374f", + "sha256:6ad331349b0b9ca6da86064a3599c425c7a21cd41616e175ddba0866da32df48", + "sha256:6f0a0b41dd05eefab547576bed0cf066595f3b20b083956b1405a6f17d1be6ad", + "sha256:73a8a4653f2e809049999d63530180d7b5a344b23a793502413ad1ecea9a0290", + "sha256:778331444917108fa8441f59af45886270d33ce8a23bfc4f9b192c0b2ecef1b3", + "sha256:7cb98be113911cb0ad09e5523d0e2a926c09a465c9abb0784c9269efe4f95917", + "sha256:7d74beca677623481810c7052926365d5f07393c72cbf62d6cce29991b676402", + "sha256:7f2398361508c560d0bf1773af19e9fe644e218f2a814a02210ac2c97ad70db0", + "sha256:8434dcdd347459f9fd9c526117c01fe7ca7b016b6008dddc3c13471098f4f0dc", + "sha256:8a390e56a7963e3946ff2049ee1eb218380e87c8a0e7608f7f8790ba19390867", + "sha256:92c4a4a2b1f4846cd4364855cbac83efc48ff5a7d7c06ba014c792dd96483f6f", + "sha256:9300aee2a8b5992d0f4293d88deb59c218989833e3396c824b69ba330d04a589", + "sha256:9453419ea2ab9b21d925d0fd7e3a132a178a191881fab4169b6f96e118cc25bb", + "sha256:9652e59c022e62a5b58a6f9948b104e5bb96d3b06940c6482588176f40f4914b", + "sha256:972a7833d4a1fcf7a711c939e315721a88b988553fc770a5b6a5a64bd6ebeba3", + "sha256:9c1a4393242e321e344213a90a1e3bf35d2f624aa8b8f6174d43e3c6b0e8f6eb", + "sha256:9e038c615b3906df4c3be8db16b3e24821d26c55177638ea47b3f8f73615111c", + "sha256:9e4c166f743bb42c5fcc60760fb1c3623e8fda94f6619534217b083e08644b46", + "sha256:9eb117db8d7ed733a7317c4215c35993b815bf6aeab67523f1f11e108c040672", + "sha256:9eb442a2442ce417801c912df68e1f6ccfcd41577ae7274953ab3ad24ef7d82c", + "sha256:a3cd18e03b0ee54ea4319cdcce48357719ea487b53f92a469ba8ca8e39df285e", + "sha256:a8617625369d2d03766413bff9e64310feafc9fc4f0ad2b902136f1a5cd8c6b0", + "sha256:a970a2e6d5281d56cacf3dc82081c95c1f4da5a559e52469287457811db6a79b", + "sha256:aad7405c033d32c751d98d3a65801e2797ae77fac284a539f6c3a3e13005edc4", + "sha256:adcb3332979cbc941b8fff07181f06d2b608625edc0a4d8bc3ffc0be414ad0c4", + "sha256:af9c7e6669c4d0ad7362f79cb2ab6784d71147503e62b57e3d95c4a0f222c01c", + "sha256:b01fda3e95d07a6148702a641e5e293b6da7863f8bc9b967f62db9461330562c", + "sha256:b8d940fd28eb34a7084877747a60873956893e377f15a32ad445fe66c972c3b8", + "sha256:bccb3e88ec26ffa90f72229f983d3a5d1155e41a1171190fa723d4135523585b", + "sha256:bcedf4cae0d47839fee7de344f96b5694ca53c786f28b5f773d4f0b265a159eb", + "sha256:be893258d5b68dd3a8cba8deb35dc6411db844a9d35268a8d3793b9d9a256f80", + "sha256:c0521e0f07cb56415fdb3aae0bbd8701eb31a9dfef47bb57206075a0584ab2a2", + "sha256:c594642d6b13d225e10df5c16ee15b3398e21a35ecd6aee824f107a625690374", + "sha256:c87c22bd6a987aca976e3d3e23806d17f65426191db36d40da4ae16a6a494cbc", + "sha256:c9ac1c2678abf9270e7228133e5b77c6c3c930ad33a3c1dfbdd76ff2c33b7b50", + "sha256:d0e5ffc763678d48ecc8da836f2ae2dd1b6eb2d27a48671066f91694e575173c", + "sha256:d0f402e787e6e7ee7876c8b05e2fe6464820d9f35ba3f172e95b5f8b699f6c7f", + "sha256:d222a9ed082cd9f38b58923775152003765016342a12f08f8c123bf893461f28", + "sha256:d94245caa3c61f760c4ce4953cfa76e7739b6f2cbfc94cc46fff6c050c2390c5", + "sha256:de9a2792612ec6def556d1dc621fd6b2073aff015d64fba9f3e53349ad292734", + "sha256:e2f5a398b5e77bb01b23d92872255e1bcb3c0c719a3be40b8df146570fe7781a", + "sha256:e8dd53a8706b15bc0e34f00e6150fbefb35d2fd9235d095b4f83b3c5ed4fa11d", + "sha256:e9eb3cff1b7d71aa50c89a0536f469cb8d6dcdd585d8f14fb8500d822f3bdee4", + "sha256:ed628c1431100b0b65387419551e822987396bee3c088a15d68446d92f554e0c", + "sha256:ef7938a78447174e2616be223f496ddccdbf7854f7bf2ce716dbccd958cc7d13", + "sha256:f1c70249b15e4ce1a7d5340c97670a95f305ca79f376887759b43bb33288c973", + "sha256:f3c7363a8cb8c5238878ec96c5eb0fc5ca2cb11fc0c7d2379863d342c6ee367a", + "sha256:fbbcc6b0639aa09b9649f36f1bcb347b19403fe44109948392fbb5ea69e48c3e", + "sha256:febffa5b1eda6622d44b245b0685aff6fb555ce0ed734e2d7b1c3acd018a2cff", + "sha256:ff836cd4041e16003549449cc0a5e372f6b6f871eb89007ab0ee18fb2800fded" ], "markers": "python_version >= '2.5' and python_version not in '3.0, 3.1, 3.2, 3.3'", - "version": "==3.18.4" + "version": "==3.19.2" }, "six": { "hashes": [ @@ -232,29 +245,29 @@ }, "urllib3": { "hashes": [ - "sha256:34b97092d7e0a3a8cf7cd10e386f401b3737364026c45e622aa02903dffe0f07", - "sha256:f8ecc1bba5667413457c529ab955bf8c67b45db799d159066261719e328580a0" + "sha256:37a0344459b199fce0e80b0d3569837ec6b6937435c5244e7fd73fa6006830f3", + "sha256:3e3d753a8618b86d7de333b4223005f68720bcd6a7d2bcb9fbd2229ec7c1e429" ], "markers": "python_version < '3.10'", - "version": "==1.26.18" + "version": "==1.26.19" } }, "develop": { "autopep8": { "hashes": [ - "sha256:1fa8964e4618929488f4ec36795c7ff12924a68b8bf01366c094fc52f770b6e7", - "sha256:2bb76888c5edbcafe6aabab3c47ba534f5a2c2d245c2eddced4a30c4b4946357" + "sha256:8d6c87eba648fdcfc83e29b788910b8643171c395d9c4bcf115ece035b9c9dda", + "sha256:a203fe0fcad7939987422140ab17a930f684763bf7335bdb6709991dd7ef6c2d" ], "index": "pypi", - "version": "==2.1.0" + "version": "==2.3.1" }, "flake8": { "hashes": [ - "sha256:33f96621059e65eec474169085dc92bf26e7b2d47366b70be2f67ab80dc25132", - "sha256:a6dfbb75e03252917f2473ea9653f7cd799c3064e54d4c8140044c5c065f53c3" + "sha256:2e416edcc62471a64cea09353f4e7bdba32aeb079b6e360554c659a122b1bc6a", + "sha256:48a07b626b55236e0fb4784ee69a465fbf59d79eec1f5b4785c3d3bc57d17aa5" ], "index": "pypi", - "version": "==7.0.0" + "version": "==7.1.0" }, "mccabe": { "hashes": [ @@ -266,11 +279,11 @@ }, "pycodestyle": { "hashes": [ - "sha256:41ba0e7afc9752dfb53ced5489e89f8186be00e599e712660695b7a75ff2663f", - "sha256:44fe31000b2d866f2e41841b18528a505fbd7fef9017b04eff4e2648a0fadc67" + "sha256:442f950141b4f43df752dd303511ffded3a04c2b6fb7f65980574f0c31e6e79c", + "sha256:949a39f6b86c3e1515ba1787c2022131d165a8ad271b11370a8819aa070269e4" ], "markers": "python_version >= '3.8'", - "version": "==2.11.1" + "version": "==2.12.0" }, "pyflakes": { "hashes": [ diff --git a/lambda/transfer-medpass-data/src/transfer-medpass-data.py b/lambda/transfer-medpass-data/main.py similarity index 100% rename from lambda/transfer-medpass-data/src/transfer-medpass-data.py rename to lambda/transfer-medpass-data/main.py From 8397998bb3fd9c938f0c71e2f5a4bd6a52b1539b Mon Sep 17 00:00:00 2001 From: "shimoda.m@nds-tyo.co.jp" Date: Mon, 1 Jul 2024 11:27:16 +0900 Subject: [PATCH 3/8] =?UTF-8?q?feat:=20=E3=82=A4=E3=83=B3=E3=82=B9?= =?UTF-8?q?=E3=83=88=E3=83=BC=E3=83=AB=E3=81=99=E3=82=8B=E3=83=A9=E3=82=A4?= =?UTF-8?q?=E3=83=96=E3=83=A9=E3=83=AA=E3=82=92=E6=9C=80=E9=81=A9=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lambda/transfer-medpass-data/Pipfile | 1 - lambda/transfer-medpass-data/Pipfile.lock | 147 ++-------------------- 2 files changed, 7 insertions(+), 141 deletions(-) diff --git a/lambda/transfer-medpass-data/Pipfile b/lambda/transfer-medpass-data/Pipfile index 8bec0696..4f1166b7 100644 --- a/lambda/transfer-medpass-data/Pipfile +++ b/lambda/transfer-medpass-data/Pipfile @@ -4,7 +4,6 @@ verify_ssl = true name = "pypi" [packages] -awslambdaric = "*" boto3 = "*" pyzipper = "*" diff --git a/lambda/transfer-medpass-data/Pipfile.lock b/lambda/transfer-medpass-data/Pipfile.lock index b4a34c21..1bae414a 100644 --- a/lambda/transfer-medpass-data/Pipfile.lock +++ b/lambda/transfer-medpass-data/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "233bd2442299b9e1bbedd7037f98893225b53953c1b68e0258e93ade1c1ed159" + "sha256": "d8b79fd5be60005b43448511c67536c114e5fd73722a17e77a5e60a9283aea25" }, "pipfile-spec": 6, "requires": { @@ -16,50 +16,21 @@ ] }, "default": { - "awslambdaric": { - "hashes": [ - "sha256:099f032df56f3a0685df2a2dd8f08246b68e44bd5b04cca0e53638c53d036acc", - "sha256:1224fc8f989f08eb8f10ff902068ea393c1a7fe0e28b683983c66d62a39c86c7", - "sha256:16bc3147fed0c079d108f21ca9ca5b5348ac49044b7bf9f806a36d9a7f410fa9", - "sha256:2087484fa39c2417d447788aed73423fdee5918c2107589aaafc8de9ec8df66d", - "sha256:26cc35cdecb5b5eeb1d20684ce5079dbd8e5c86e44016f47c7fcce1d4fcaeeb7", - "sha256:41b68501a2338ae982306bed4309529323fc6dd6e048e33b05091d8dc48ecbcd", - "sha256:42f68fa404d59d65aead9c290cff82e6272737565f4621c3b1455075d9a72779", - "sha256:4becf3da0366e2797db3c922ad4d2fbe817bc87f86f3c94ca37ebc9519993659", - "sha256:5bee5faf7c4d330f585ad94fc41e5a3728054f3d17316c6ca6810ad8c8cd4fe2", - "sha256:6b5952aa4f697da4ca2308e461adaec98408a2d4548752963fa8cb2ca348f642", - "sha256:76d30202dec0839422ec16900d1b4e43b612f5feb8c8649add14d3f00968083b", - "sha256:8182f0e6b9ec34458423eb271ab27b288b3adf7befd321e7b5d50477307588d5", - "sha256:8b5bfa5f22977cd74e8a66e0f6badfb5f3c537aeeb21d5f9471a85df096970d3", - "sha256:91144b664b8f9d936ed7c1e2f8cceb9904e91888cdb5e2b04865fd98f85f0789", - "sha256:afd86820e985a01e7e245327c34f50ee3608efcac55b3f55ffe61315b8419bd2", - "sha256:c496f833002da3185270af7239f42018ca0dedc6d0df1ca476098c714d46aa52", - "sha256:cb5f71727ab1a04e1f76232a4ae8fa46e30fac89fd9f81cdd2b7272a49361940", - "sha256:d54c2fc5537299c982a8cde59e8099693b02f75936adc24edb2a5125b5ec672e", - "sha256:db094789549a7e8c3d312edb7ce4ce644a48282984e1d109c2eb53293c2ab3e3", - "sha256:df4aca7b4e77c37ca96179d990668468632aff27ee63b4a143abed60bb49adfd", - "sha256:ec3ba835613e7ea0ff49e09c5cd64dd8560e2a51b0b3df789f2bdb707ba8593d", - "sha256:f02b84322a83302f2a1cae5a2624ec7da96d976a29de8643f43bd80895a5efda", - "sha256:f228bdfd3cfb5c4ac348a7743da0c1be54e85e05206f97d0c57186ac6806e6ae" - ], - "index": "pypi", - "version": "==2.0.12" - }, "boto3": { "hashes": [ - "sha256:342782c02ff077aae118c9c61179eed95c585831fba666baacc5588ff04aa6e1", - "sha256:f6d6e5b0c9ab022a75373fa16c01f0cd54bc1bb64ef3b6ac64ac7cedd56cbe9c" + "sha256:0314e6598f59ee0f34eb4e6d1a0f69fa65c146d2b88a6e837a527a9956ec2731", + "sha256:d41037e2c680ab8d6c61a0a4ee6bf1fdd9e857f43996672830a95d62d6f6fa79" ], "index": "pypi", - "version": "==1.34.134" + "version": "==1.34.136" }, "botocore": { "hashes": [ - "sha256:45219e00639755f92569b29f8f279d5dde721494791412c1f7026a3779e8d9f4", - "sha256:e29c299599426ed16dd2d4c1e20eef784f96b15e1850ebbc59a3250959285b95" + "sha256:7f7135178692b39143c8f152a618d2a3b71065a317569a7102d2306d4946f42f", + "sha256:c63fe9032091fb9e9477706a3ebfa4d0c109b807907051d892ed574f9b573e61" ], "markers": "python_version >= '3.8'", - "version": "==1.34.134" + "version": "==1.34.136" }, "jmespath": { "hashes": [ @@ -131,110 +102,6 @@ "markers": "python_version >= '3.8'", "version": "==0.10.2" }, - "simplejson": { - "hashes": [ - "sha256:0405984f3ec1d3f8777c4adc33eac7ab7a3e629f3b1c05fdded63acc7cf01137", - "sha256:0436a70d8eb42bea4fe1a1c32d371d9bb3b62c637969cb33970ad624d5a3336a", - "sha256:061e81ea2d62671fa9dea2c2bfbc1eec2617ae7651e366c7b4a2baf0a8c72cae", - "sha256:064300a4ea17d1cd9ea1706aa0590dcb3be81112aac30233823ee494f02cb78a", - "sha256:08889f2f597ae965284d7b52a5c3928653a9406d88c93e3161180f0abc2433ba", - "sha256:0a48679310e1dd5c9f03481799311a65d343748fe86850b7fb41df4e2c00c087", - "sha256:0b0a3eb6dd39cce23801a50c01a0976971498da49bc8a0590ce311492b82c44b", - "sha256:0d2d5119b1d7a1ed286b8af37357116072fc96700bce3bec5bb81b2e7057ab41", - "sha256:0d551dc931638e2102b8549836a1632e6e7cf620af3d093a7456aa642bff601d", - "sha256:1018bd0d70ce85f165185d2227c71e3b1e446186f9fa9f971b69eee223e1e3cd", - "sha256:11c39fbc4280d7420684494373b7c5904fa72a2b48ef543a56c2d412999c9e5d", - "sha256:11cc3afd8160d44582543838b7e4f9aa5e97865322844b75d51bf4e0e413bb3e", - "sha256:1537b3dd62d8aae644f3518c407aa8469e3fd0f179cdf86c5992792713ed717a", - "sha256:16ca9c90da4b1f50f089e14485db8c20cbfff2d55424062791a7392b5a9b3ff9", - "sha256:176a1b524a3bd3314ed47029a86d02d5a95cc0bee15bd3063a1e1ec62b947de6", - "sha256:18955c1da6fc39d957adfa346f75226246b6569e096ac9e40f67d102278c3bcb", - "sha256:1bb5b50dc6dd671eb46a605a3e2eb98deb4a9af787a08fcdddabe5d824bb9664", - "sha256:1c768e7584c45094dca4b334af361e43b0aaa4844c04945ac7d43379eeda9bc2", - "sha256:1dd4f692304854352c3e396e9b5f0a9c9e666868dd0bdc784e2ac4c93092d87b", - "sha256:25785d038281cd106c0d91a68b9930049b6464288cea59ba95b35ee37c2d23a5", - "sha256:287e39ba24e141b046812c880f4619d0ca9e617235d74abc27267194fc0c7835", - "sha256:2c1467d939932901a97ba4f979e8f2642415fcf02ea12f53a4e3206c9c03bc17", - "sha256:2c433a412e96afb9a3ce36fa96c8e61a757af53e9c9192c97392f72871e18e69", - "sha256:2d022b14d7758bfb98405672953fe5c202ea8a9ccf9f6713c5bd0718eba286fd", - "sha256:2f98d918f7f3aaf4b91f2b08c0c92b1774aea113334f7cde4fe40e777114dbe6", - "sha256:2fc697be37585eded0c8581c4788fcfac0e3f84ca635b73a5bf360e28c8ea1a2", - "sha256:3194cd0d2c959062b94094c0a9f8780ffd38417a5322450a0db0ca1a23e7fbd2", - "sha256:332c848f02d71a649272b3f1feccacb7e4f7e6de4a2e6dc70a32645326f3d428", - "sha256:346820ae96aa90c7d52653539a57766f10f33dd4be609206c001432b59ddf89f", - "sha256:3471e95110dcaf901db16063b2e40fb394f8a9e99b3fe9ee3acc6f6ef72183a2", - "sha256:3848427b65e31bea2c11f521b6fc7a3145d6e501a1038529da2391aff5970f2f", - "sha256:39b6d79f5cbfa3eb63a869639cfacf7c41d753c64f7801efc72692c1b2637ac7", - "sha256:3e74355cb47e0cd399ead3477e29e2f50e1540952c22fb3504dda0184fc9819f", - "sha256:3f39bb1f6e620f3e158c8b2eaf1b3e3e54408baca96a02fe891794705e788637", - "sha256:40847f617287a38623507d08cbcb75d51cf9d4f9551dd6321df40215128325a3", - "sha256:4280e460e51f86ad76dc456acdbfa9513bdf329556ffc8c49e0200878ca57816", - "sha256:445a96543948c011a3a47c8e0f9d61e9785df2544ea5be5ab3bc2be4bd8a2565", - "sha256:4969d974d9db826a2c07671273e6b27bc48e940738d768fa8f33b577f0978378", - "sha256:49aaf4546f6023c44d7e7136be84a03a4237f0b2b5fb2b17c3e3770a758fc1a0", - "sha256:49e0e3faf3070abdf71a5c80a97c1afc059b4f45a5aa62de0c2ca0444b51669b", - "sha256:49f9da0d6cd17b600a178439d7d2d57c5ef01f816b1e0e875e8e8b3b42db2693", - "sha256:4a8c3cc4f9dfc33220246760358c8265dad6e1104f25f0077bbca692d616d358", - "sha256:4d36081c0b1c12ea0ed62c202046dca11438bee48dd5240b7c8de8da62c620e9", - "sha256:4edcd0bf70087b244ba77038db23cd98a1ace2f91b4a3ecef22036314d77ac23", - "sha256:554313db34d63eac3b3f42986aa9efddd1a481169c12b7be1e7512edebff8eaf", - "sha256:5675e9d8eeef0aa06093c1ff898413ade042d73dc920a03e8cea2fb68f62445a", - "sha256:60848ab779195b72382841fc3fa4f71698a98d9589b0a081a9399904487b5832", - "sha256:66e5dc13bfb17cd6ee764fc96ccafd6e405daa846a42baab81f4c60e15650414", - "sha256:6779105d2fcb7fcf794a6a2a233787f6bbd4731227333a072d8513b252ed374f", - "sha256:6ad331349b0b9ca6da86064a3599c425c7a21cd41616e175ddba0866da32df48", - "sha256:6f0a0b41dd05eefab547576bed0cf066595f3b20b083956b1405a6f17d1be6ad", - "sha256:73a8a4653f2e809049999d63530180d7b5a344b23a793502413ad1ecea9a0290", - "sha256:778331444917108fa8441f59af45886270d33ce8a23bfc4f9b192c0b2ecef1b3", - "sha256:7cb98be113911cb0ad09e5523d0e2a926c09a465c9abb0784c9269efe4f95917", - "sha256:7d74beca677623481810c7052926365d5f07393c72cbf62d6cce29991b676402", - "sha256:7f2398361508c560d0bf1773af19e9fe644e218f2a814a02210ac2c97ad70db0", - "sha256:8434dcdd347459f9fd9c526117c01fe7ca7b016b6008dddc3c13471098f4f0dc", - "sha256:8a390e56a7963e3946ff2049ee1eb218380e87c8a0e7608f7f8790ba19390867", - "sha256:92c4a4a2b1f4846cd4364855cbac83efc48ff5a7d7c06ba014c792dd96483f6f", - "sha256:9300aee2a8b5992d0f4293d88deb59c218989833e3396c824b69ba330d04a589", - "sha256:9453419ea2ab9b21d925d0fd7e3a132a178a191881fab4169b6f96e118cc25bb", - "sha256:9652e59c022e62a5b58a6f9948b104e5bb96d3b06940c6482588176f40f4914b", - "sha256:972a7833d4a1fcf7a711c939e315721a88b988553fc770a5b6a5a64bd6ebeba3", - "sha256:9c1a4393242e321e344213a90a1e3bf35d2f624aa8b8f6174d43e3c6b0e8f6eb", - "sha256:9e038c615b3906df4c3be8db16b3e24821d26c55177638ea47b3f8f73615111c", - "sha256:9e4c166f743bb42c5fcc60760fb1c3623e8fda94f6619534217b083e08644b46", - "sha256:9eb117db8d7ed733a7317c4215c35993b815bf6aeab67523f1f11e108c040672", - "sha256:9eb442a2442ce417801c912df68e1f6ccfcd41577ae7274953ab3ad24ef7d82c", - "sha256:a3cd18e03b0ee54ea4319cdcce48357719ea487b53f92a469ba8ca8e39df285e", - "sha256:a8617625369d2d03766413bff9e64310feafc9fc4f0ad2b902136f1a5cd8c6b0", - "sha256:a970a2e6d5281d56cacf3dc82081c95c1f4da5a559e52469287457811db6a79b", - "sha256:aad7405c033d32c751d98d3a65801e2797ae77fac284a539f6c3a3e13005edc4", - "sha256:adcb3332979cbc941b8fff07181f06d2b608625edc0a4d8bc3ffc0be414ad0c4", - "sha256:af9c7e6669c4d0ad7362f79cb2ab6784d71147503e62b57e3d95c4a0f222c01c", - "sha256:b01fda3e95d07a6148702a641e5e293b6da7863f8bc9b967f62db9461330562c", - "sha256:b8d940fd28eb34a7084877747a60873956893e377f15a32ad445fe66c972c3b8", - "sha256:bccb3e88ec26ffa90f72229f983d3a5d1155e41a1171190fa723d4135523585b", - "sha256:bcedf4cae0d47839fee7de344f96b5694ca53c786f28b5f773d4f0b265a159eb", - "sha256:be893258d5b68dd3a8cba8deb35dc6411db844a9d35268a8d3793b9d9a256f80", - "sha256:c0521e0f07cb56415fdb3aae0bbd8701eb31a9dfef47bb57206075a0584ab2a2", - "sha256:c594642d6b13d225e10df5c16ee15b3398e21a35ecd6aee824f107a625690374", - "sha256:c87c22bd6a987aca976e3d3e23806d17f65426191db36d40da4ae16a6a494cbc", - "sha256:c9ac1c2678abf9270e7228133e5b77c6c3c930ad33a3c1dfbdd76ff2c33b7b50", - "sha256:d0e5ffc763678d48ecc8da836f2ae2dd1b6eb2d27a48671066f91694e575173c", - "sha256:d0f402e787e6e7ee7876c8b05e2fe6464820d9f35ba3f172e95b5f8b699f6c7f", - "sha256:d222a9ed082cd9f38b58923775152003765016342a12f08f8c123bf893461f28", - "sha256:d94245caa3c61f760c4ce4953cfa76e7739b6f2cbfc94cc46fff6c050c2390c5", - "sha256:de9a2792612ec6def556d1dc621fd6b2073aff015d64fba9f3e53349ad292734", - "sha256:e2f5a398b5e77bb01b23d92872255e1bcb3c0c719a3be40b8df146570fe7781a", - "sha256:e8dd53a8706b15bc0e34f00e6150fbefb35d2fd9235d095b4f83b3c5ed4fa11d", - "sha256:e9eb3cff1b7d71aa50c89a0536f469cb8d6dcdd585d8f14fb8500d822f3bdee4", - "sha256:ed628c1431100b0b65387419551e822987396bee3c088a15d68446d92f554e0c", - "sha256:ef7938a78447174e2616be223f496ddccdbf7854f7bf2ce716dbccd958cc7d13", - "sha256:f1c70249b15e4ce1a7d5340c97670a95f305ca79f376887759b43bb33288c973", - "sha256:f3c7363a8cb8c5238878ec96c5eb0fc5ca2cb11fc0c7d2379863d342c6ee367a", - "sha256:fbbcc6b0639aa09b9649f36f1bcb347b19403fe44109948392fbb5ea69e48c3e", - "sha256:febffa5b1eda6622d44b245b0685aff6fb555ce0ed734e2d7b1c3acd018a2cff", - "sha256:ff836cd4041e16003549449cc0a5e372f6b6f871eb89007ab0ee18fb2800fded" - ], - "markers": "python_version >= '2.5' and python_version not in '3.0, 3.1, 3.2, 3.3'", - "version": "==3.19.2" - }, "six": { "hashes": [ "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", From bc29d225262f90cc65ad400956dc0395c7b25bf1 Mon Sep 17 00:00:00 2001 From: "shimoda.m@nds-tyo.co.jp" Date: Mon, 1 Jul 2024 15:23:38 +0900 Subject: [PATCH 4/8] =?UTF-8?q?feat:=20=E8=A8=AD=E8=A8=88=E3=81=AB?= =?UTF-8?q?=E5=90=88=E3=82=8F=E3=81=9B=E3=81=A6=E5=AE=9F=E8=A3=85=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lambda/transfer-medpass-data/main.py | 131 +++++++++++++++++---------- 1 file changed, 82 insertions(+), 49 deletions(-) diff --git a/lambda/transfer-medpass-data/main.py b/lambda/transfer-medpass-data/main.py index efb7e42c..096d36a5 100644 --- a/lambda/transfer-medpass-data/main.py +++ b/lambda/transfer-medpass-data/main.py @@ -8,13 +8,14 @@ import pyzipper from pyzipper.zipfile import BadZipFile # 環境変数 -# mbj-newdwh2021-staging-data DATA_IMPORT_BUCKET = os.environ["DATA_IMPORT_BUCKET"] -# mbj-newdwh2021-staging-backup-medpass -MEDPASS_BACKUP_BUCKET = os.environ["MEDPASS_BACKUP_BUCKET"] -MEDPASS_TARGET_FOLDER = os.environ["MEDPASS_TARGET_FOLDER"] # medpass/target -# /staging/s3/medpassZipExtractPassword +HCP_WEB_TARGET_FOLDER = os.environ["HCP_WEB_TARGET_FOLDER"] +HCP_WEB_BACKUP_BUCKET = os.environ["HCP_WEB_BACKUP_BUCKET"] +BACKUP_ZIPFILE_FOLDER = os.environ["BACKUP_ZIPFILE_FOLDER"] +BACKUP_DATA_IMPORT_FOLDER = os.environ["BACKUP_DATA_IMPORT_FOLDER"] +DATA_IMPORT_FILENAME = os.environ["DATA_IMPORT_FILENAME"] MEDPASS_ZIP_PASSWORD_PARAMETER_STORE_KEY = os.environ["MEDPASS_ZIP_PASSWORD_PARAMETER_STORE_KEY"] + LOG_LEVEL = os.environ["LOG_LEVEL"] TZ = os.environ["TZ"] @@ -55,13 +56,15 @@ if not isinstance(level, int): logger.setLevel(level) -def extract_zip_with_password(zip_filepath: str, extract_to_folder: str, password: str): +def extract_zip_with_password(zip_filepath: str, extract_to_folder: str, password: str) -> os.path: """ 暗号化ZIPを解凍する。 :param zip_filepath: ZIPファイルが保管されているフォルダパス :param extract_to_folder: ZIPファイルの解凍先フォルダ :param password: ZIPパスワード + + :return 解凍されたファイルパス """ # ZIPを解凍 try: @@ -69,40 +72,45 @@ def extract_zip_with_password(zip_filepath: str, extract_to_folder: str, passwor # ZIP内のファイルは1つのみ inner_filename = z.filelist[0].filename z.extractall(path=extract_to_folder, pwd=password.encode()) - except BadZipFile as e: - pass except Exception as e: - pass + raise e - logger.info(f'解凍先フォルダ: {os.listdir("/tmp")}') - logger.info(f'解凍ファイルパス: {os.path.join(extract_to_folder, inner_filename)}') return os.path.join(extract_to_folder, inner_filename) -def get_s3_event_parameter(event: dict): +def get_s3_event_parameter(event: dict) -> tuple[str, str, str, str]: s3_event = event["Records"][0]["s3"] - event_bucket_name = s3_event["bucket"]["name"] - event_object_key = s3_event["object"]["key"] - event_file_name = os.path.basename(event_object_key) - event_folder_name = os.path.dirname(event_object_key).split('/')[0] + event_bucket_name: str = s3_event["bucket"]["name"] + event_object_key: str = s3_event["object"]["key"] + event_file_name: str = os.path.basename(event_object_key) + event_folder_name: str = os.path.dirname(event_object_key).split('/')[0] return event_bucket_name, event_object_key, event_file_name, event_folder_name -def get_ssm_params(parameter_key: str, with_decryption: bool = True): +def get_ssm_params(parameter_key: str, with_decryption: bool = True) -> str: + """SSMパラメータストアから指定されたパラメータ名の値を取得する""" response = ssm_client.get_parameter( Name=parameter_key, WithDecryption=with_decryption) - parameter_value = response['Parameter']['Value'] + parameter_value: str = response['Parameter']['Value'] return parameter_value -def delete_doing_file(event_bucket_name: str, event_object_key: str): +def delete_doing_file(event: dict) -> None: + """.doingファイルをバケット上から削除する""" + # イベント情報を取得 + ( + event_bucket_name, + event_object_key, + _, + _ + ) = get_s3_event_parameter(event) # ⑨ メモリに保持したバケット名/フォルダ名内の「受信データファイル名.doing」ファイルを削除する s3_client.delete_object( Bucket=event_bucket_name, Key=f'{event_object_key}{EXCLUSIVE_CONTROL_FILE_EXT}') -def handler(event, context): +def handler(event, context) -> None: try: # ① 処理開始ログを出力する logger.info('I-01-01 処理開始 medパスデータ解凍・復号化・転送処理') @@ -141,7 +149,8 @@ def handler(event, context): logger.info('I-04-02 暗号化ZIPファイルをダウンロードしました') except Exception as e: logger.exception(f'E-04-01 暗号化ZIPファイルのダウンロードに失敗しました エラー内容:{e}') - raise e + delete_doing_file(event) + return # ⑤ ZIP解凍パスワードをSSM パラメータストアから取得する try: @@ -151,54 +160,78 @@ def handler(event, context): MEDPASS_ZIP_PASSWORD_PARAMETER_STORE_KEY) except Exception as e: logger.exception(f'E-05-01 ZIP解凍パスワードの読み込みに失敗しました エラー内容:{e}') - raise e + delete_doing_file(event) + return # ⑥ ZIPファイルを解凍してローカルに保存 try: - logger.info(f'I-06-01 ZIP解凍開始') + logger.info(f'I-05-02 ZIP解凍開始') extracted_zip_file_path = extract_zip_with_password( os.path.join(PATH_TMP, event_file_name), PATH_TMP, zip_password) - except Exception as e: - logger.exception(f'E-06-01 ZIPの解凍に失敗しました エラー内容:{e}') - raise e - logger.info(f'I-06-02 ZIP解凍成功') - # ⑦ バックアップS3バケットにコピー - copy_source = {'Bucket': event_bucket_name, 'Key': event_object_key} - execute_date_yyyymm = datetime.date.today().strftime('%Y/%m/%d') + except RuntimeError as e: + if 'password' in str(e).lower(): + # パスワードが間違っている場合のエラー + logger.exception( + f'E-05-02 ZIPのパスワードが不正のため、解凍に失敗しました エラー内容:{e}') + delete_doing_file(event) + return + else: + # 想定外のエラー + raise e + # ZIPファイルが壊れている場合のエラー + except BadZipFile as e: + logger.exception(f'E-05-03 ZIPの形式が不正のため、解凍に失敗しました エラー内容:{e}') + delete_doing_file(event) + return + + # データ登録用にファイルをリネーム + # ZIPファイル名がyyyymmdd.zipのため、年月日部分をデータ登録用ファイル名の末尾につけ、拡張子をCSVに変更 + data_import_file_name = f'{DATA_IMPORT_FILENAME}_{event_file_name.replace(ZIP_FILE_EXT, CSV_FILE_EXT)}' + logger.info(f'I-05-03 ZIP解凍成功') + + # ⑥ 受信した暗号化ZIPファイルと解凍後のファイルをバックアップする + backup_copy_source = { + 'Bucket': event_bucket_name, 'Key': event_object_key} + execute_date_yyyymmdd = datetime.date.today().strftime('%Y/%m/%d') + + # ZIPファイルのバックアップ s3_client.copy_object( - Bucket=MEDPASS_BACKUP_BUCKET, - Key=f'{execute_date_yyyymm}/{event_file_name}', - CopySource=copy_source + Bucket=HCP_WEB_BACKUP_BUCKET, + Key=f'{BACKUP_ZIPFILE_FOLDER}/{execute_date_yyyymmdd}/{event_file_name}', + CopySource=backup_copy_source ) logger.info( - f'I-07-01 medパス受信データのバックアップ完了:{MEDPASS_BACKUP_BUCKET}/{execute_date_yyyymm}/{event_file_name}') + f'I-06-01 medパス受信データのバックアップ完了:{BACKUP_ZIPFILE_FOLDER}/{HCP_WEB_BACKUP_BUCKET}/{execute_date_yyyymmdd}/{event_file_name}') - # ⑧ データ登録S3バケットにアップロード - csv_file_name = extracted_zip_file_path.split('/')[-1] - logger.info(csv_file_name) + # 解凍後ファイルのバックアップ s3_client.upload_file( extracted_zip_file_path, + Bucket=HCP_WEB_BACKUP_BUCKET, + Key=f'{HCP_WEB_TARGET_FOLDER}/{data_import_file_name}' + ) + logger.info( + f'I-06-02 medパス解凍後データのバックアップ完了:{BACKUP_DATA_IMPORT_FOLDER}/{HCP_WEB_BACKUP_BUCKET}/{execute_date_yyyymmdd}/{data_import_file_name}') + + # ⑦ 解凍後のファイルをデータ登録バケットに転送する + data_import_copy_source = {'Bucket': HCP_WEB_BACKUP_BUCKET, + 'Key': f'{BACKUP_DATA_IMPORT_FOLDER}/{execute_date_yyyymmdd}/{data_import_file_name}'} + s3_client.copy_object( Bucket=DATA_IMPORT_BUCKET, - Key=f'{MEDPASS_TARGET_FOLDER}/{csv_file_name}' + Key=f'{HCP_WEB_TARGET_FOLDER}/{data_import_file_name}', + CopySource=data_import_copy_source ) # アップロード後、元のバケットからは削除する s3_client.delete_object(Bucket=event_bucket_name, Key=event_object_key) logger.info( - f'I-08-01 Encise受信データの転送完了:{DATA_IMPORT_BUCKET}/{MEDPASS_TARGET_FOLDER}/{csv_file_name}') + f'I-07-01 medパス解凍後データの転送完了:{DATA_IMPORT_BUCKET}/{HCP_WEB_TARGET_FOLDER}/{data_import_file_name}') - # ⑨ メモリに保持したバケット名/フォルダ名内の「受信データファイル名.doing」ファイルを削除する - delete_doing_file(event_bucket_name, event_object_key) + # ⑧ メモリに保持したバケット名/フォルダ名内の「受信データファイル名.doing」ファイルを削除する + delete_doing_file(event) - logger.info('I-08-09 処理終了 Medpass受信データ転送処理') + logger.info('I-08-01 処理終了 medパスデータ解凍・復号化・転送処理') except Exception as e: logger.exception(f'想定外のエラーが発生しました。処理を終了します。 例外内容:{e}') - ( - event_bucket_name, - event_object_key, - _, - _ - ) = get_s3_event_parameter(event) - delete_doing_file(event_bucket_name, event_object_key) + delete_doing_file(event) raise e From d16762a7018bd6fc0e0fb86576e564961fe88fe3 Mon Sep 17 00:00:00 2001 From: "shimoda.m@nds-tyo.co.jp" Date: Mon, 1 Jul 2024 16:09:49 +0900 Subject: [PATCH 5/8] =?UTF-8?q?fix:=20=E3=83=AD=E3=82=B0=E5=87=BA=E5=8A=9B?= =?UTF-8?q?=E6=96=87=E8=A8=80=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lambda/transfer-medpass-data/main.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lambda/transfer-medpass-data/main.py b/lambda/transfer-medpass-data/main.py index 096d36a5..880f3fe0 100644 --- a/lambda/transfer-medpass-data/main.py +++ b/lambda/transfer-medpass-data/main.py @@ -201,16 +201,16 @@ def handler(event, context) -> None: CopySource=backup_copy_source ) logger.info( - f'I-06-01 medパス受信データのバックアップ完了:{BACKUP_ZIPFILE_FOLDER}/{HCP_WEB_BACKUP_BUCKET}/{execute_date_yyyymmdd}/{event_file_name}') + f'I-06-01 medパス受信データのバックアップ完了:{HCP_WEB_BACKUP_BUCKET}/{BACKUP_ZIPFILE_FOLDER}/{execute_date_yyyymmdd}/{event_file_name}') # 解凍後ファイルのバックアップ s3_client.upload_file( extracted_zip_file_path, Bucket=HCP_WEB_BACKUP_BUCKET, - Key=f'{HCP_WEB_TARGET_FOLDER}/{data_import_file_name}' + Key=f'{BACKUP_DATA_IMPORT_FOLDER}/{execute_date_yyyymmdd}/{data_import_file_name}' ) logger.info( - f'I-06-02 medパス解凍後データのバックアップ完了:{BACKUP_DATA_IMPORT_FOLDER}/{HCP_WEB_BACKUP_BUCKET}/{execute_date_yyyymmdd}/{data_import_file_name}') + f'I-06-02 medパス解凍後データのバックアップ完了:{HCP_WEB_BACKUP_BUCKET}/{BACKUP_DATA_IMPORT_FOLDER}/{execute_date_yyyymmdd}/{data_import_file_name}') # ⑦ 解凍後のファイルをデータ登録バケットに転送する data_import_copy_source = {'Bucket': HCP_WEB_BACKUP_BUCKET, From d26f4c5a3fd9cbd1d6d0cb7c966d9c5aa5a65140 Mon Sep 17 00:00:00 2001 From: "shimoda.m@nds-tyo.co.jp" Date: Mon, 1 Jul 2024 16:17:39 +0900 Subject: [PATCH 6/8] =?UTF-8?q?fix:=20=E3=83=AD=E3=82=B0=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lambda/transfer-medpass-data/main.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lambda/transfer-medpass-data/main.py b/lambda/transfer-medpass-data/main.py index 880f3fe0..273a6e43 100644 --- a/lambda/transfer-medpass-data/main.py +++ b/lambda/transfer-medpass-data/main.py @@ -154,8 +154,7 @@ def handler(event, context) -> None: # ⑤ ZIP解凍パスワードをSSM パラメータストアから取得する try: - logger.info( - f'I-05-01 ZIP解凍パスワードを読み込み 読込元:{MEDPASS_ZIP_PASSWORD_PARAMETER_STORE_KEY}') + logger.info('I-05-01 ZIP解凍パスワードを読込') zip_password = get_ssm_params( MEDPASS_ZIP_PASSWORD_PARAMETER_STORE_KEY) except Exception as e: From ad8c18aa230f0dcd1b5875efc8ea9df33aadc2cd Mon Sep 17 00:00:00 2001 From: "shimoda.m@nds-tyo.co.jp" Date: Mon, 1 Jul 2024 16:23:15 +0900 Subject: [PATCH 7/8] =?UTF-8?q?style:=20=E3=82=B3=E3=83=A1=E3=83=B3?= =?UTF-8?q?=E3=83=88=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lambda/transfer-medpass-data/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lambda/transfer-medpass-data/Dockerfile b/lambda/transfer-medpass-data/Dockerfile index b00422cf..19b9594f 100644 --- a/lambda/transfer-medpass-data/Dockerfile +++ b/lambda/transfer-medpass-data/Dockerfile @@ -15,5 +15,5 @@ RUN pip install --upgrade pip wheel setuptools && \ pipenv install --system --deploy && \ pip uninstall -y pipenv virtualenv-clone virtualenv - # lambdaハンドラを起動 +# lambdaハンドラを起動 CMD [ "main.handler" ] From 7156fab12e3c9710a2a5111794e8104a9fc458b7 Mon Sep 17 00:00:00 2001 From: "shimoda.m@nds-tyo.co.jp" Date: Mon, 1 Jul 2024 16:30:24 +0900 Subject: [PATCH 8/8] =?UTF-8?q?feat:=20(=E3=81=9F=E3=81=B6=E3=82=93?= =?UTF-8?q?=E3=81=AA=E3=81=84=E3=81=91=E3=81=A9=E3=80=81)=E6=8B=A1?= =?UTF-8?q?=E5=BC=B5=E5=AD=90=E5=A4=A7=E6=96=87=E5=AD=97=E3=81=AE=E8=80=83?= =?UTF-8?q?=E6=85=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lambda/transfer-medpass-data/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lambda/transfer-medpass-data/main.py b/lambda/transfer-medpass-data/main.py index 273a6e43..19b6a95f 100644 --- a/lambda/transfer-medpass-data/main.py +++ b/lambda/transfer-medpass-data/main.py @@ -185,7 +185,7 @@ def handler(event, context) -> None: # データ登録用にファイルをリネーム # ZIPファイル名がyyyymmdd.zipのため、年月日部分をデータ登録用ファイル名の末尾につけ、拡張子をCSVに変更 - data_import_file_name = f'{DATA_IMPORT_FILENAME}_{event_file_name.replace(ZIP_FILE_EXT, CSV_FILE_EXT)}' + data_import_file_name = f'{DATA_IMPORT_FILENAME}_{event_file_name.lower().replace(ZIP_FILE_EXT, CSV_FILE_EXT)}' logger.info(f'I-05-03 ZIP解凍成功') # ⑥ 受信した暗号化ZIPファイルと解凍後のファイルをバックアップする