Compare commits
No commits in common. "master" and "release-emp-chg-inst" have entirely different histories.
master
...
release-em
@ -1,62 +0,0 @@
|
|||||||
# EC2インスタンス管理資材
|
|
||||||
|
|
||||||
## NLBゲートウェイ インスタンス 起動スクリプト
|
|
||||||
|
|
||||||
### 目的
|
|
||||||
|
|
||||||
Merck様のDB接続経路としてのNLBから、Auroraデータベースに踏み台アクセスを行うため、ゲートウェイの機能を提供するEC2インスタンスを稼働している。
|
|
||||||
EC2インスタンス内では、NLBからの任意のポートをAuroraデータベースのポートにフォワーディングするために、`socat`プロセスを動かす必要がある。
|
|
||||||
`socat`プロセスを動かすためのコマンドと、EC2インスタンス起動時にプロセスを実行するためのsystemdの設定を配置している。
|
|
||||||
|
|
||||||
### フォルダ構成
|
|
||||||
|
|
||||||
```txt
|
|
||||||
.
|
|
||||||
├── README.md -- 当ファイル
|
|
||||||
└── gateway
|
|
||||||
├── staging -- ステージング環境用設定
|
|
||||||
│ ├── public1-1 -- ap-northeast-1aのインスタンス要設定
|
|
||||||
│ │ ├── socat-dbconnection-1a.service -- systemdにsocatプロセスを登録するためのファイル
|
|
||||||
│ │ └── socat-portforwarding-1a.sh -- socatでAuroraデータベースにポートフォワーディングするためのシェルスクリプト
|
|
||||||
│ └── public2-1 -- ap-northeast-1dのインスタンス要設定
|
|
||||||
│ ├── socat-dbconnection-1d.service
|
|
||||||
│ └── socat-portforwarding-1d.sh
|
|
||||||
│
|
|
||||||
├── product -- 本番環境用設定
|
|
||||||
│ ├── public1-1
|
|
||||||
│ │ ├── socat-dbconnection-1a.service
|
|
||||||
│ │ └── socat-portforwarding-1a.sh
|
|
||||||
│ └── public2-1
|
|
||||||
│ ├── socat-dbconnection-1d.service
|
|
||||||
│ └── socat-portforwarding-1d.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
### ファイル配置方法(両環境共通)
|
|
||||||
|
|
||||||
- 対象のゲートウェイEC2インスタンスにログインする
|
|
||||||
- セッションマネージャーでログインした場合は、`ec2-user`に切り替えること(`sudo su --login ec2-user`)
|
|
||||||
- 以下の操作を実行し、`socat`プロセスを起動するシェルスクリプトを配置する。
|
|
||||||
- **ap-northeast-1aのインスタンス(public-1-1)の場合**
|
|
||||||
- `sudo vi /opt/socat-portforwarding-1a.sh`コマンドを実行する。
|
|
||||||
- `ec2/gateway/<環境名>/public-1-1/socat-portforwarding-1a.sh`の内容をコピペして保存する。
|
|
||||||
- `sudo chmod 774 /opt/socat-portforwarding-1a.sh`コマンドを実行する。
|
|
||||||
- **ap-northeast-1dのインスタンス(public-2-1)の場合**
|
|
||||||
- `sudo vi /opt/socat-portforwarding-1d.sh`コマンドを実行する。
|
|
||||||
- `ec2/gateway/<環境名>/public-2-1/socat-portforwarding-1d.sh`の内容をコピペして保存する。
|
|
||||||
- `sudo chmod 774 /opt/socat-portforwarding-1d.sh`コマンドを実行する。
|
|
||||||
- 以下の操作を実行し、`socat`プロセスを常駐させるためのサービス設定ファイルを配置する。
|
|
||||||
- **ap-northeast-1aのインスタンス(public-1-1)の場合**
|
|
||||||
- `sudo vi /etc/systemd/system/socat-dbconnection-1a.service`コマンドを実行する。
|
|
||||||
- `ec2/gateway/<環境名>/public-1-1/socat-dbconnection-1a.service`の内容をコピペして保存する。
|
|
||||||
- `sudo chmod 774 /etc/systemd/system/socat-dbconnection-1a.service`コマンドを実行する。
|
|
||||||
- **ap-northeast-1dのインスタンス(public-2-1)の場合**
|
|
||||||
- `sudo vi /etc/systemd/system/socat-dbconnection-1d.service`コマンドを実行する。
|
|
||||||
- `ec2/gateway/<環境名>/public-2-1/socat-dbconnection-1d.service`の内容をコピペして保存する。
|
|
||||||
- `sudo chmod 774 /etc/systemd/system/socat-dbconnection-1d.service`コマンドを実行する。
|
|
||||||
- 以下の操作を実行し、`socat`プロセスを起動するスクリプトをsystemdに登録する
|
|
||||||
- **ap-northeast-1aのインスタンス(public-1-1)の場合**
|
|
||||||
- `sudo systemctl enable socat-dbconnection-1a.service`コマンドを実行し、サービスを有効化する。
|
|
||||||
- `sudo systemctl status socat-dbconnection-1a.service`コマンドを実行し、サービスのステータスを確認する。`enabled;`となっていればOK
|
|
||||||
- **ap-northeast-1dのインスタンス(public-2-1)の場合**
|
|
||||||
- `sudo systemctl enable socat-dbconnection-1d.service`コマンドを実行し、サービスを有効化する。
|
|
||||||
- `sudo systemctl status socat-dbconnection-1d.service`コマンドを実行し、サービスのステータスを確認する。`enabled;`となっていればOK
|
|
||||||
@ -1,10 +0,0 @@
|
|||||||
[Unit]
|
|
||||||
Description = socat-dbconnection-1a
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
ExecStart = /opt/socat-portforwarding-1a.sh
|
|
||||||
Type = oneshot
|
|
||||||
RemainAfterExit = yes
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy = default.target
|
|
||||||
@ -1,3 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
socat tcp4-listen:40001,reuseaddr,fork TCP:mbj-newdwh2021-product-dbcluster-instance-1.chs11qsgoyix.ap-northeast-1.rds.amazonaws.com:3306 &
|
|
||||||
socat tcp4-listen:50001,reuseaddr,fork TCP:mbj-newdwh2021-product-dbcluster.cluster-chs11qsgoyix.ap-northeast-1.rds.amazonaws.com:3306 &
|
|
||||||
@ -1,10 +0,0 @@
|
|||||||
[Unit]
|
|
||||||
Description = socat-dbconnection-1d
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
ExecStart = /opt/socat-portforwarding-1d.sh
|
|
||||||
Type = oneshot
|
|
||||||
RemainAfterExit = yes
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy = default.target
|
|
||||||
@ -1,3 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
socat tcp4-listen:40001,reuseaddr,fork TCP:mbj-newdwh2021-product-dbcluster-instance-1-ap-northeast-1d.chs11qsgoyix.ap-northeast-1.rds.amazonaws.com:3306 &
|
|
||||||
socat tcp4-listen:50001,reuseaddr,fork TCP:mbj-newdwh2021-product-dbcluster.cluster-chs11qsgoyix.ap-northeast-1.rds.amazonaws.com:3306 &
|
|
||||||
@ -1,10 +0,0 @@
|
|||||||
[Unit]
|
|
||||||
Description = socat-dbconnection-1a
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
ExecStart = /opt/socat-portforwarding-1a.sh
|
|
||||||
Type = oneshot
|
|
||||||
RemainAfterExit = yes
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy = default.target
|
|
||||||
@ -1,3 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
socat tcp4-listen:40001,reuseaddr,fork TCP:mbj-newdwh2021-staging-dbcluster-instance-1.chs11qsgoyix.ap-northeast-1.rds.amazonaws.com:3306 &
|
|
||||||
socat tcp4-listen:50001,reuseaddr,fork TCP:mbj-newdwh2021-staging-dbcluster.cluster-chs11qsgoyix.ap-northeast-1.rds.amazonaws.com:3306 &
|
|
||||||
@ -1,10 +0,0 @@
|
|||||||
[Unit]
|
|
||||||
Description = socat-dbconnection-1d
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
ExecStart = /opt/socat-portforwarding-1d.sh
|
|
||||||
Type = oneshot
|
|
||||||
RemainAfterExit = yes
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy = default.target
|
|
||||||
@ -1,3 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
socat tcp4-listen:40001,reuseaddr,fork TCP:mbj-newdwh2021-staging-dbcluster-instance-1-ap-northeast-1d.chs11qsgoyix.ap-northeast-1.rds.amazonaws.com:3306 &
|
|
||||||
socat tcp4-listen:50001,reuseaddr,fork TCP:mbj-newdwh2021-staging-dbcluster.cluster-chs11qsgoyix.ap-northeast-1.rds.amazonaws.com:3306 &
|
|
||||||
@ -1,15 +1,15 @@
|
|||||||
FROM python:3.12-slim-bookworm
|
FROM python:3.9
|
||||||
|
|
||||||
ENV TZ="Asia/Tokyo"
|
ENV TZ="Asia/Tokyo"
|
||||||
# pythonの標準出力をバッファリングしないフラグ
|
|
||||||
ENV PYTHONUNBUFFERED=1
|
|
||||||
# pythonのバイトコードを生成しないフラグ
|
|
||||||
ENV PYTHONDONTWRITEBYTECODE=1
|
|
||||||
|
|
||||||
WORKDIR /usr/src/app
|
WORKDIR /usr/src/app
|
||||||
COPY Pipfile Pipfile.lock ./
|
COPY Pipfile Pipfile.lock ./
|
||||||
RUN \
|
RUN \
|
||||||
apt update -y && \
|
apt update -y && \
|
||||||
|
# パッケージのセキュリティアップデートのみを適用するコマンド
|
||||||
|
apt install -y unattended-upgrades && \
|
||||||
|
unattended-upgrades && \
|
||||||
|
pip install --upgrade pip wheel setuptools && \
|
||||||
pip install pipenv --no-cache-dir && \
|
pip install pipenv --no-cache-dir && \
|
||||||
pipenv install --system --deploy && \
|
pipenv install --system --deploy && \
|
||||||
pip uninstall -y pipenv virtualenv-clone virtualenv
|
pip uninstall -y pipenv virtualenv-clone virtualenv
|
||||||
|
|||||||
@ -11,7 +11,7 @@ test = "pytest tests/"
|
|||||||
|
|
||||||
[packages]
|
[packages]
|
||||||
boto3 = "*"
|
boto3 = "*"
|
||||||
simple-salesforce = "==1.12.6"
|
simple-salesforce = "==1.12.4"
|
||||||
tenacity = "*"
|
tenacity = "*"
|
||||||
|
|
||||||
[dev-packages]
|
[dev-packages]
|
||||||
@ -23,4 +23,4 @@ pytest-html = "*"
|
|||||||
moto = "*"
|
moto = "*"
|
||||||
|
|
||||||
[requires]
|
[requires]
|
||||||
python_version = "3.12"
|
python_version = "3.9"
|
||||||
|
|||||||
1700
ecs/crm-datafetch/Pipfile.lock
generated
1700
ecs/crm-datafetch/Pipfile.lock
generated
File diff suppressed because it is too large
Load Diff
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
### ツールのバージョン
|
### ツールのバージョン
|
||||||
|
|
||||||
- Python 3.12.x
|
- Python 3.9.x
|
||||||
- PipEnv(Pythonの依存関係管理用モジュール)
|
- PipEnv(Pythonの依存関係管理用モジュール)
|
||||||
|
|
||||||
### 開発環境
|
### 開発環境
|
||||||
|
|||||||
@ -12,87 +12,87 @@ from src.system_var.environments import (CRM_BACKUP_BUCKET, CRM_CONFIG_BUCKET,
|
|||||||
RESPONSE_JSON_BACKUP_FOLDER)
|
RESPONSE_JSON_BACKUP_FOLDER)
|
||||||
|
|
||||||
|
|
||||||
class S3Client:
|
class S3Resource:
|
||||||
def __init__(self, bucket_name: str) -> None:
|
def __init__(self, bucket_name: str) -> None:
|
||||||
self.__s3_client = boto3.client(AWS_RESOURCE_S3)
|
self.__s3_resource = boto3.resource(AWS_RESOURCE_S3)
|
||||||
self.__s3_bucket = bucket_name
|
self.__s3_bucket = self.__s3_resource.Bucket(bucket_name)
|
||||||
|
|
||||||
def get_object(self, object_key: str) -> str:
|
def get_object(self, object_key: str) -> str:
|
||||||
response = self.__s3_client.get_object(Bucket=self.__s3_bucket, Key=object_key)
|
response = self.__s3_bucket.Object(object_key).get()
|
||||||
body = response[S3_RESPONSE_BODY].read()
|
body = response[S3_RESPONSE_BODY].read()
|
||||||
return body.decode(S3_CHAR_CODE)
|
return body.decode(S3_CHAR_CODE)
|
||||||
|
|
||||||
def put_object(self, object_key: str, local_file_path: str) -> None:
|
def put_object(self, object_key: str, local_file_path: str) -> None:
|
||||||
self.__s3_client.upload_file(Filename=local_file_path, Bucket=self.__s3_bucket, Key=object_key)
|
self.__s3_bucket.upload_file(Key=object_key, Filename=local_file_path)
|
||||||
return
|
return
|
||||||
|
|
||||||
def copy(self, src_bucket: str, src_key: str, dest_bucket: str, dest_key: str) -> None:
|
def copy(self, src_bucket: str, src_key: str, dest_bucket: str, dest_key: str) -> None:
|
||||||
copy_source = {'Bucket': src_bucket, 'Key': src_key}
|
copy_source = {'Bucket': src_bucket, 'Key': src_key}
|
||||||
self.__s3_client.copy_object(CopySource=copy_source, Bucket=dest_bucket, Key=dest_key)
|
self.__s3_resource.meta.client.copy(copy_source, dest_bucket, dest_key)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
class ConfigBucket:
|
class ConfigBucket:
|
||||||
__s3_client: S3Client = None
|
__s3_resource: S3Resource = None
|
||||||
|
|
||||||
def __init__(self) -> None:
|
def __init__(self) -> None:
|
||||||
self.__s3_client = S3Client(CRM_CONFIG_BUCKET)
|
self.__s3_resource = S3Resource(CRM_CONFIG_BUCKET)
|
||||||
|
|
||||||
def __str__(self) -> str:
|
def __str__(self) -> str:
|
||||||
return CRM_CONFIG_BUCKET
|
return CRM_CONFIG_BUCKET
|
||||||
|
|
||||||
def get_object_info_file(self) -> str:
|
def get_object_info_file(self) -> str:
|
||||||
return self.__s3_client.get_object(f'{OBJECT_INFO_FOLDER}/{OBJECT_INFO_FILENAME}')
|
return self.__s3_resource.get_object(f'{OBJECT_INFO_FOLDER}/{OBJECT_INFO_FILENAME}')
|
||||||
|
|
||||||
def get_last_fetch_datetime_file(self, file_key: str) -> str:
|
def get_last_fetch_datetime_file(self, file_key: str) -> str:
|
||||||
return self.__s3_client.get_object(f'{LAST_FETCH_DATE_FOLDER}/{file_key}')
|
return self.__s3_resource.get_object(f'{LAST_FETCH_DATE_FOLDER}/{file_key}')
|
||||||
|
|
||||||
def put_last_fetch_datetime_file(self, file_key: str, local_file_path: str) -> None:
|
def put_last_fetch_datetime_file(self, file_key: str, local_file_path: str) -> None:
|
||||||
self.__s3_client.put_object(
|
self.__s3_resource.put_object(
|
||||||
f'{LAST_FETCH_DATE_FOLDER}/{file_key}', local_file_path)
|
f'{LAST_FETCH_DATE_FOLDER}/{file_key}', local_file_path)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
class DataBucket:
|
class DataBucket:
|
||||||
__s3_client: S3Client = None
|
__s3_resource: S3Resource = None
|
||||||
|
|
||||||
def __init__(self) -> None:
|
def __init__(self) -> None:
|
||||||
self.__s3_client = S3Client(IMPORT_DATA_BUCKET)
|
self.__s3_resource = S3Resource(IMPORT_DATA_BUCKET)
|
||||||
|
|
||||||
def __str__(self) -> str:
|
def __str__(self) -> str:
|
||||||
return IMPORT_DATA_BUCKET
|
return IMPORT_DATA_BUCKET
|
||||||
|
|
||||||
def put_csv(self, file_key: str, local_file_path: str) -> None:
|
def put_csv(self, file_key: str, local_file_path: str) -> None:
|
||||||
object_key = f'{CRM_IMPORT_DATA_FOLDER}/{file_key}'
|
object_key = f'{CRM_IMPORT_DATA_FOLDER}/{file_key}'
|
||||||
self.__s3_client.put_object(object_key, local_file_path)
|
self.__s3_resource.put_object(object_key, local_file_path)
|
||||||
return
|
return
|
||||||
|
|
||||||
def put_csv_from(self, src_bucket: str, src_key: str):
|
def put_csv_from(self, src_bucket: str, src_key: str):
|
||||||
dest_filename = src_key.split('/')[-1]
|
dest_filename = src_key.split('/')[-1]
|
||||||
self.__s3_client.copy(src_bucket, src_key, str(self), f'{CRM_IMPORT_DATA_FOLDER}/{dest_filename}')
|
self.__s3_resource.copy(src_bucket, src_key, str(self), f'{CRM_IMPORT_DATA_FOLDER}/{dest_filename}')
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
class BackupBucket:
|
class BackupBucket:
|
||||||
__s3_client: S3Client = None
|
__s3_resource: S3Resource = None
|
||||||
|
|
||||||
def __init__(self) -> None:
|
def __init__(self) -> None:
|
||||||
self.__s3_client = S3Client(CRM_BACKUP_BUCKET)
|
self.__s3_resource = S3Resource(CRM_BACKUP_BUCKET)
|
||||||
|
|
||||||
def __str__(self) -> str:
|
def __str__(self) -> str:
|
||||||
return CRM_BACKUP_BUCKET
|
return CRM_BACKUP_BUCKET
|
||||||
|
|
||||||
def put_response_json(self, file_key: str, local_file_path: str) -> None:
|
def put_response_json(self, file_key: str, local_file_path: str) -> None:
|
||||||
object_key = f'{RESPONSE_JSON_BACKUP_FOLDER}/{file_key}'
|
object_key = f'{RESPONSE_JSON_BACKUP_FOLDER}/{file_key}'
|
||||||
self.__s3_client.put_object(object_key, local_file_path)
|
self.__s3_resource.put_object(object_key, local_file_path)
|
||||||
return
|
return
|
||||||
|
|
||||||
def put_csv(self, file_key: str, local_file_path: str) -> None:
|
def put_csv(self, file_key: str, local_file_path: str) -> None:
|
||||||
object_key = f'{CRM_IMPORT_DATA_BACKUP_FOLDER}/{file_key}'
|
object_key = f'{CRM_IMPORT_DATA_BACKUP_FOLDER}/{file_key}'
|
||||||
self.__s3_client.put_object(object_key, local_file_path)
|
self.__s3_resource.put_object(object_key, local_file_path)
|
||||||
return
|
return
|
||||||
|
|
||||||
def put_result_json(self, file_key: str, local_file_path: str) -> None:
|
def put_result_json(self, file_key: str, local_file_path: str) -> None:
|
||||||
object_key = f'{PROCESS_RESULT_FOLDER}/{file_key}'
|
object_key = f'{PROCESS_RESULT_FOLDER}/{file_key}'
|
||||||
self.__s3_client.put_object(object_key, local_file_path)
|
self.__s3_resource.put_object(object_key, local_file_path)
|
||||||
return
|
return
|
||||||
|
|||||||
@ -1,8 +1,7 @@
|
|||||||
import os
|
import os
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
from src.aws.s3 import BackupBucket, ConfigBucket, DataBucket, S3Resource
|
||||||
from src.aws.s3 import BackupBucket, ConfigBucket, DataBucket, S3Client
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
@ -16,7 +15,7 @@ def s3_test(s3_client, bucket_name):
|
|||||||
yield
|
yield
|
||||||
|
|
||||||
|
|
||||||
class TestS3Client:
|
class TestS3Resource:
|
||||||
|
|
||||||
def test_get_object(self, s3_test, s3_client, bucket_name):
|
def test_get_object(self, s3_test, s3_client, bucket_name):
|
||||||
"""
|
"""
|
||||||
@ -32,7 +31,7 @@ class TestS3Client:
|
|||||||
s3_client.put_object(Bucket=bucket_name, Key='hogehoge/test.txt', Body=b'aaaaaaaaaaaaaaa')
|
s3_client.put_object(Bucket=bucket_name, Key='hogehoge/test.txt', Body=b'aaaaaaaaaaaaaaa')
|
||||||
|
|
||||||
# Act
|
# Act
|
||||||
sut = S3Client(bucket_name)
|
sut = S3Resource(bucket_name)
|
||||||
actual = sut.get_object('hogehoge/test.txt')
|
actual = sut.get_object('hogehoge/test.txt')
|
||||||
|
|
||||||
# Assert
|
# Assert
|
||||||
@ -49,7 +48,7 @@ class TestS3Client:
|
|||||||
"""
|
"""
|
||||||
# Arrange
|
# Arrange
|
||||||
# Act
|
# Act
|
||||||
sut = S3Client(bucket_name)
|
sut = S3Resource(bucket_name)
|
||||||
with pytest.raises(Exception):
|
with pytest.raises(Exception):
|
||||||
# Assert
|
# Assert
|
||||||
sut.get_object('hogehoge/test.txt')
|
sut.get_object('hogehoge/test.txt')
|
||||||
@ -69,7 +68,7 @@ class TestS3Client:
|
|||||||
with open(file_path, mode='w') as f:
|
with open(file_path, mode='w') as f:
|
||||||
f.write('aaaaaaaaaaaaaaa')
|
f.write('aaaaaaaaaaaaaaa')
|
||||||
|
|
||||||
sut = S3Client(bucket_name)
|
sut = S3Resource(bucket_name)
|
||||||
|
|
||||||
sut.put_object('hogehoge/test.txt', file_path)
|
sut.put_object('hogehoge/test.txt', file_path)
|
||||||
actual = s3_client.get_object(Bucket=bucket_name, Key='hogehoge/test.txt')
|
actual = s3_client.get_object(Bucket=bucket_name, Key='hogehoge/test.txt')
|
||||||
@ -88,7 +87,7 @@ class TestS3Client:
|
|||||||
"""
|
"""
|
||||||
# Arrange
|
# Arrange
|
||||||
# Act
|
# Act
|
||||||
sut = S3Client(bucket_name)
|
sut = S3Resource(bucket_name)
|
||||||
with pytest.raises(Exception):
|
with pytest.raises(Exception):
|
||||||
# Assert
|
# Assert
|
||||||
sut.put_object('hogehoge/test.txt', 'aaaaaaaaaaaaaaa')
|
sut.put_object('hogehoge/test.txt', 'aaaaaaaaaaaaaaa')
|
||||||
@ -109,7 +108,7 @@ class TestS3Client:
|
|||||||
s3_client.create_bucket(Bucket=for_copy_bucket)
|
s3_client.create_bucket(Bucket=for_copy_bucket)
|
||||||
s3_client.put_object(Bucket=bucket_name, Key='hogehoge/test.txt', Body=b'aaaaaaaaaaaaaaa')
|
s3_client.put_object(Bucket=bucket_name, Key='hogehoge/test.txt', Body=b'aaaaaaaaaaaaaaa')
|
||||||
|
|
||||||
sut = S3Client(bucket_name)
|
sut = S3Resource(bucket_name)
|
||||||
sut.copy(bucket_name, 'hogehoge/test.txt', for_copy_bucket, 'test.txt')
|
sut.copy(bucket_name, 'hogehoge/test.txt', for_copy_bucket, 'test.txt')
|
||||||
|
|
||||||
actual = s3_client.get_object(Bucket=for_copy_bucket, Key='test.txt')
|
actual = s3_client.get_object(Bucket=for_copy_bucket, Key='test.txt')
|
||||||
@ -126,7 +125,7 @@ class TestS3Client:
|
|||||||
"""
|
"""
|
||||||
# Arrange
|
# Arrange
|
||||||
# Act
|
# Act
|
||||||
sut = S3Client(bucket_name)
|
sut = S3Resource(bucket_name)
|
||||||
with pytest.raises(Exception):
|
with pytest.raises(Exception):
|
||||||
# Assert
|
# Assert
|
||||||
sut.copy(bucket_name, 'hogehoge/test.txt', 'for_copy_bucket', 'test.txt')
|
sut.copy(bucket_name, 'hogehoge/test.txt', 'for_copy_bucket', 'test.txt')
|
||||||
@ -141,8 +140,8 @@ class TestS3Client:
|
|||||||
- インスタンス生成時に例外が発生すること
|
- インスタンス生成時に例外が発生すること
|
||||||
"""
|
"""
|
||||||
with pytest.raises(Exception) as e:
|
with pytest.raises(Exception) as e:
|
||||||
S3Client()
|
S3Resource()
|
||||||
assert e.value.args[0] == "S3Client.__init__() missing 1 required positional argument: 'bucket_name'"
|
assert e.value.args[0] == "__init__() missing 1 required positional argument: 'bucket_name'"
|
||||||
|
|
||||||
|
|
||||||
class TestConfigBucket:
|
class TestConfigBucket:
|
||||||
|
|||||||
@ -4,7 +4,8 @@ from datetime import datetime
|
|||||||
|
|
||||||
import boto3
|
import boto3
|
||||||
import pytest
|
import pytest
|
||||||
from moto import mock_aws
|
from moto import mock_s3
|
||||||
|
from py.xml import html # type: ignore
|
||||||
|
|
||||||
from . import docstring_parser
|
from . import docstring_parser
|
||||||
|
|
||||||
@ -20,7 +21,7 @@ def aws_credentials():
|
|||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def s3_client(aws_credentials):
|
def s3_client(aws_credentials):
|
||||||
with mock_aws():
|
with mock_s3():
|
||||||
conn = boto3.client("s3", region_name="us-east-1")
|
conn = boto3.client("s3", region_name="us-east-1")
|
||||||
yield conn
|
yield conn
|
||||||
|
|
||||||
@ -34,18 +35,18 @@ def pytest_html_report_title(report):
|
|||||||
|
|
||||||
def pytest_html_results_table_header(cells):
|
def pytest_html_results_table_header(cells):
|
||||||
del cells[2:]
|
del cells[2:]
|
||||||
cells.insert(3, '<th>Cases</th>')
|
cells.insert(3, html.th("Cases"))
|
||||||
cells.insert(4, '<th>Arranges</th>')
|
cells.insert(4, html.th("Arranges"))
|
||||||
cells.insert(5, '<th>Expects</th>')
|
cells.insert(5, html.th("Expects"))
|
||||||
cells.append('<th class="sortable time" col="time">Time</th>')
|
cells.append(html.th("Time", class_="sortable time", col="time"))
|
||||||
|
|
||||||
|
|
||||||
def pytest_html_results_table_row(report, cells):
|
def pytest_html_results_table_row(report, cells):
|
||||||
del cells[2:]
|
del cells[2:]
|
||||||
cells.insert(3, f'<td><pre>{report.cases}</pre></td>') # 「テスト内容」をレポートに出力
|
cells.insert(3, html.td(html.pre(report.cases))) # 「テスト内容」をレポートに出力
|
||||||
cells.insert(4, f'<td><pre>{report.arranges}</pre></td>') # 「期待結果」をレポートに出力
|
cells.insert(4, html.td(html.pre(report.arranges))) # 「期待結果」をレポートに出力
|
||||||
cells.insert(5, f'<td><pre>{report.expects}</pre></td>') # 「期待結果」をレポートに出力
|
cells.insert(5, html.td(html.pre(report.expects))) # 「期待結果」をレポートに出力
|
||||||
cells.append(f'<td class="col-time">{datetime.now()}</td>') # ついでに「時間」もレポートに出力
|
cells.append(html.td(datetime.now(), class_="col-time")) # ついでに「時間」もレポートに出力
|
||||||
|
|
||||||
|
|
||||||
@pytest.hookimpl(hookwrapper=True)
|
@pytest.hookimpl(hookwrapper=True)
|
||||||
|
|||||||
@ -652,8 +652,7 @@ class TestSalesforceApiClient:
|
|||||||
|
|
||||||
actual = sut.fetch_sf_data(soql)
|
actual = sut.fetch_sf_data(soql)
|
||||||
assert len(actual) > 0
|
assert len(actual) > 0
|
||||||
print(dict(actual[0]))
|
assert dict(actual[0])["RelationshipTest__r"]["RecordType"]["DeveloperName"] == "RecordTypeSpecial"
|
||||||
assert dict(actual[0])["RelationshipTest__r"]["RecordType"]["DeveloperName"] == "RecordTypeNormal"
|
|
||||||
|
|
||||||
def test_raise_create_instance_cause_auth_failed(self, monkeypatch):
|
def test_raise_create_instance_cause_auth_failed(self, monkeypatch):
|
||||||
"""
|
"""
|
||||||
|
|||||||
@ -99,9 +99,8 @@ class TestCounterObject:
|
|||||||
sut = CounterObject()
|
sut = CounterObject()
|
||||||
sut.describe(1)
|
sut.describe(1)
|
||||||
|
|
||||||
print(str(e.value))
|
|
||||||
# Expects
|
# Expects
|
||||||
assert str(e.value) == 'CounterObject.describe() takes 1 positional argument but 2 were given'
|
assert str(e.value) == 'describe() takes 1 positional argument but 2 were given'
|
||||||
|
|
||||||
def test_increment(self) -> int:
|
def test_increment(self) -> int:
|
||||||
"""
|
"""
|
||||||
|
|||||||
@ -1,19 +1,16 @@
|
|||||||
FROM python:3.12-slim-bookworm
|
FROM python:3.9
|
||||||
|
|
||||||
ENV TZ="Asia/Tokyo"
|
ENV TZ="Asia/Tokyo"
|
||||||
# pythonの標準出力をバッファリングしないフラグ
|
|
||||||
ENV PYTHONUNBUFFERED=1
|
|
||||||
# pythonのバイトコードを生成しないフラグ
|
|
||||||
ENV PYTHONDONTWRITEBYTECODE=1
|
|
||||||
|
|
||||||
WORKDIR /usr/src/app
|
WORKDIR /usr/src/app
|
||||||
COPY Pipfile Pipfile.lock ./
|
COPY requirements.txt ./
|
||||||
RUN \
|
RUN \
|
||||||
apt update -y && \
|
apt update -y && \
|
||||||
pip install pipenv --no-cache-dir && \
|
# パッケージのセキュリティアップデートのみを適用するコマンド
|
||||||
pipenv install --system --deploy && \
|
apt install -y unattended-upgrades && \
|
||||||
pip uninstall -y pipenv virtualenv-clone virtualenv
|
unattended-upgrades && \
|
||||||
|
pip install --upgrade pip wheel setuptools && \
|
||||||
|
pip install --no-cache-dir -r requirements.txt
|
||||||
COPY dataimport ./
|
COPY dataimport ./
|
||||||
|
|
||||||
CMD [ "python", "./controller.py" ]
|
CMD [ "python", "./controller.py" ]
|
||||||
|
|||||||
@ -1,13 +0,0 @@
|
|||||||
[[source]]
|
|
||||||
url = "https://pypi.org/simple"
|
|
||||||
verify_ssl = true
|
|
||||||
name = "pypi"
|
|
||||||
|
|
||||||
[packages]
|
|
||||||
boto3 = "*"
|
|
||||||
pymysql = "*"
|
|
||||||
|
|
||||||
[dev-packages]
|
|
||||||
|
|
||||||
[requires]
|
|
||||||
python_version = "3.12"
|
|
||||||
87
ecs/dataimport/Pipfile.lock
generated
87
ecs/dataimport/Pipfile.lock
generated
@ -1,87 +0,0 @@
|
|||||||
{
|
|
||||||
"_meta": {
|
|
||||||
"hash": {
|
|
||||||
"sha256": "1738beec0de1a16f127d9bbeef1c9cb1ffb5b2377aa1aedbce9bfacae0fa1c67"
|
|
||||||
},
|
|
||||||
"pipfile-spec": 6,
|
|
||||||
"requires": {
|
|
||||||
"python_version": "3.12"
|
|
||||||
},
|
|
||||||
"sources": [
|
|
||||||
{
|
|
||||||
"name": "pypi",
|
|
||||||
"url": "https://pypi.org/simple",
|
|
||||||
"verify_ssl": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"boto3": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:3faa2c328a61745f3215a63039606a6fcf55d9afe1cc76e3a5e27b9db58cdbf6",
|
|
||||||
"sha256:b998edac72f6740bd5d9d585cf3880f2dfeb4842e626b34430fd0e9623378011"
|
|
||||||
],
|
|
||||||
"index": "pypi",
|
|
||||||
"markers": "python_version >= '3.9'",
|
|
||||||
"version": "==1.38.32"
|
|
||||||
},
|
|
||||||
"botocore": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:0899a090e352cb5eeaae2c7bb52a987b469d23912c7ece86664dfb5c2e074978",
|
|
||||||
"sha256:64ab919a5d8b74dd73eaac1f978d0e674d11ff3bbe8815c3d2982477be9a082c"
|
|
||||||
],
|
|
||||||
"markers": "python_version >= '3.9'",
|
|
||||||
"version": "==1.38.32"
|
|
||||||
},
|
|
||||||
"jmespath": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980",
|
|
||||||
"sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe"
|
|
||||||
],
|
|
||||||
"markers": "python_version >= '3.7'",
|
|
||||||
"version": "==1.0.1"
|
|
||||||
},
|
|
||||||
"pymysql": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:4de15da4c61dc132f4fb9ab763063e693d521a80fd0e87943b9a453dd4c19d6c",
|
|
||||||
"sha256:e127611aaf2b417403c60bf4dc570124aeb4a57f5f37b8e95ae399a42f904cd0"
|
|
||||||
],
|
|
||||||
"index": "pypi",
|
|
||||||
"markers": "python_version >= '3.7'",
|
|
||||||
"version": "==1.1.1"
|
|
||||||
},
|
|
||||||
"python-dateutil": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3",
|
|
||||||
"sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"
|
|
||||||
],
|
|
||||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
|
|
||||||
"version": "==2.9.0.post0"
|
|
||||||
},
|
|
||||||
"s3transfer": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:0148ef34d6dd964d0d8cf4311b2b21c474693e57c2e069ec708ce043d2b527be",
|
|
||||||
"sha256:f5e6db74eb7776a37208001113ea7aa97695368242b364d73e91c981ac522177"
|
|
||||||
],
|
|
||||||
"markers": "python_version >= '3.9'",
|
|
||||||
"version": "==0.13.0"
|
|
||||||
},
|
|
||||||
"six": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274",
|
|
||||||
"sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"
|
|
||||||
],
|
|
||||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
|
|
||||||
"version": "==1.17.0"
|
|
||||||
},
|
|
||||||
"urllib3": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:414bc6535b787febd7567804cc015fee39daab8ad86268f1310a9250697de466",
|
|
||||||
"sha256:4e16665048960a0900c702d4a66415956a584919c03361cac9f1df5c5dd7e813"
|
|
||||||
],
|
|
||||||
"markers": "python_version >= '3.9'",
|
|
||||||
"version": "==2.4.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"develop": {}
|
|
||||||
}
|
|
||||||
@ -4,6 +4,7 @@ import sys
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
import boto3
|
import boto3
|
||||||
|
|
||||||
from common import convert_quotechar, debug_log
|
from common import convert_quotechar, debug_log
|
||||||
from end import end
|
from end import end
|
||||||
from error import error
|
from error import error
|
||||||
@ -40,7 +41,7 @@ LINE_FEED_CODE = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# クラス変数
|
# クラス変数
|
||||||
s3_client = boto3.client('s3')
|
s3_resource = boto3.resource('s3')
|
||||||
|
|
||||||
|
|
||||||
# チェック例外クラス
|
# チェック例外クラス
|
||||||
@ -73,14 +74,16 @@ def check(bucket_name, target_data_source, target_file_name, settings_key, log_i
|
|||||||
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-CHK-01 - チェック処理を開始します')
|
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-CHK-01 - チェック処理を開始します')
|
||||||
|
|
||||||
# データ読込
|
# データ読込
|
||||||
settings_obj_response = s3_client.get_object(Bucket=bucket_name, Key=settings_key)
|
settings_obj = s3_resource.Object(bucket_name, settings_key)
|
||||||
|
settings_response = settings_obj.get()
|
||||||
settings_list = []
|
settings_list = []
|
||||||
for line in io.TextIOWrapper(io.BytesIO(settings_obj_response["Body"].read()), encoding='utf-8'):
|
for line in io.TextIOWrapper(io.BytesIO(settings_response["Body"].read()), encoding='utf-8'):
|
||||||
settings_list.append(line.rstrip('\n'))
|
settings_list.append(line.rstrip('\n'))
|
||||||
|
|
||||||
work_key = target_data_source + DIRECTORY_WORK + target_file_name
|
work_key = target_data_source + DIRECTORY_WORK + target_file_name
|
||||||
work_obj_response = s3_client.get_object(Bucket=bucket_name, Key=work_key)
|
work_obj = s3_resource.Object(bucket_name, work_key)
|
||||||
work_data = io.TextIOWrapper(io.BytesIO(work_obj_response["Body"].read()), encoding=settings_list[SETTINGS_ITEM["charCode"]], newline=LINE_FEED_CODE[settings_list[SETTINGS_ITEM["lineFeedCode"]]])
|
work_response = work_obj.get()
|
||||||
|
work_data = io.TextIOWrapper(io.BytesIO(work_response["Body"].read()), encoding=settings_list[SETTINGS_ITEM["charCode"]], newline=LINE_FEED_CODE[settings_list[SETTINGS_ITEM["lineFeedCode"]]])
|
||||||
work_csv_row = []
|
work_csv_row = []
|
||||||
for i, line in enumerate(csv.reader(work_data, quotechar=convert_quotechar(settings_list[SETTINGS_ITEM["quotechar"]]), delimiter=settings_list[SETTINGS_ITEM["delimiter"]])):
|
for i, line in enumerate(csv.reader(work_data, quotechar=convert_quotechar(settings_list[SETTINGS_ITEM["quotechar"]]), delimiter=settings_list[SETTINGS_ITEM["delimiter"]])):
|
||||||
# ヘッダあり、かつ、1行目の場合
|
# ヘッダあり、かつ、1行目の場合
|
||||||
@ -145,16 +148,3 @@ def is_empty_file(work_csv_row: list, settings_list: list):
|
|||||||
return len(work_csv_row[1:]) == 0
|
return len(work_csv_row[1:]) == 0
|
||||||
|
|
||||||
return len(work_csv_row) == 0
|
return len(work_csv_row) == 0
|
||||||
|
|
||||||
|
|
||||||
# ローカル実行用コード
|
|
||||||
# 値はよしなに変えてください
|
|
||||||
# if __name__ == '__main__':
|
|
||||||
# check(
|
|
||||||
# bucket_name='バケット名',
|
|
||||||
# target_data_source='データソース名',
|
|
||||||
# target_file_name='targetフォルダ内のファイル名',
|
|
||||||
# settings_key='個別設定ファイル名',
|
|
||||||
# log_info='Info',
|
|
||||||
# mode='i'
|
|
||||||
# )
|
|
||||||
|
|||||||
@ -1,8 +1,7 @@
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
import boto3
|
import boto3
|
||||||
from common import debug_log
|
|
||||||
from error import error
|
from error import error
|
||||||
|
from common import debug_log
|
||||||
|
|
||||||
# 定数
|
# 定数
|
||||||
LOG_LEVEL = {'i': 'Info', 'e': 'Error'}
|
LOG_LEVEL = {'i': 'Info', 'e': 'Error'}
|
||||||
@ -13,6 +12,7 @@ DIRECTORY_WARNING = '/warning/'
|
|||||||
|
|
||||||
# クラス変数
|
# クラス変数
|
||||||
s3_client = boto3.client('s3')
|
s3_client = boto3.client('s3')
|
||||||
|
s3_resource = boto3.resource('s3')
|
||||||
|
|
||||||
|
|
||||||
def end(bucket_name, target_data_source, target_file_name, warning_info, log_info, mode):
|
def end(bucket_name, target_data_source, target_file_name, warning_info, log_info, mode):
|
||||||
@ -45,7 +45,8 @@ def end(bucket_name, target_data_source, target_file_name, warning_info, log_inf
|
|||||||
}
|
}
|
||||||
done_file_name = f'{datetime.now():%Y%m%d%H%M%S}_{target_file_name}'
|
done_file_name = f'{datetime.now():%Y%m%d%H%M%S}_{target_file_name}'
|
||||||
done_key = target_data_source + DIRECTORY_DONE + done_file_name
|
done_key = target_data_source + DIRECTORY_DONE + done_file_name
|
||||||
s3_client.copy(CopySource=copy_source, Bucket=bucket_name, Key=done_key)
|
done_obj = s3_resource.Object(bucket_name, done_key)
|
||||||
|
done_obj.copy(copy_source)
|
||||||
s3_client.delete_object(Bucket=bucket_name, Key=work_key)
|
s3_client.delete_object(Bucket=bucket_name, Key=work_key)
|
||||||
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-END-02 - workディレクトリの {target_file_name} をdoneディレクトリに移動しました 移動後ファイル名:{done_file_name}')
|
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-END-02 - workディレクトリの {target_file_name} をdoneディレクトリに移動しました 移動後ファイル名:{done_file_name}')
|
||||||
|
|
||||||
@ -63,20 +64,23 @@ def end(bucket_name, target_data_source, target_file_name, warning_info, log_inf
|
|||||||
# warningファイルの作成
|
# warningファイルの作成
|
||||||
warning_file_name = f'{datetime.now():%Y%m%d%H%M%S}_{target_file_name}_war.log'
|
warning_file_name = f'{datetime.now():%Y%m%d%H%M%S}_{target_file_name}_war.log'
|
||||||
warning_key = target_data_source + DIRECTORY_WARNING + warning_file_name
|
warning_key = target_data_source + DIRECTORY_WARNING + warning_file_name
|
||||||
s3_client.put_object(Bucket=bucket_name, Key=warning_key, Body=bytes(warning_info, 'utf-8'))
|
warning_obj = s3_resource.Object(bucket_name, warning_key)
|
||||||
|
warning_obj.put(Body=warning_info)
|
||||||
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-END-06 - warningディレクトリに {warning_file_name} を作成しました')
|
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-END-06 - warningディレクトリに {warning_file_name} を作成しました')
|
||||||
|
|
||||||
# warning処理結果ファイルの作成
|
# warning処理結果ファイルの作成
|
||||||
result_warning_file_name = target_file_name + '.warning'
|
result_warning_file_name = target_file_name + '.warning'
|
||||||
result_warning_key = target_data_source + DIRECTORY_TARGET + result_warning_file_name
|
result_warning_key = target_data_source + DIRECTORY_TARGET + result_warning_file_name
|
||||||
s3_client.put_object(Bucket=bucket_name, Key=result_warning_key, Body=b'')
|
result_warning_obj = s3_resource.Object(bucket_name, result_warning_key)
|
||||||
|
result_warning_obj.put(Body='')
|
||||||
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-END-07 - targetディレクトリに {result_warning_file_name} を作成しました')
|
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-END-07 - targetディレクトリに {result_warning_file_name} を作成しました')
|
||||||
else:
|
else:
|
||||||
# done処理結果ファイルの作成
|
# done処理結果ファイルの作成
|
||||||
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-END-08 - Warning情報は存在しませんでした')
|
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-END-08 - Warning情報は存在しませんでした')
|
||||||
result_done_file_name = target_file_name + '.done'
|
result_done_file_name = target_file_name + '.done'
|
||||||
result_done_key = target_data_source + DIRECTORY_TARGET + result_done_file_name
|
result_done_key = target_data_source + DIRECTORY_TARGET + result_done_file_name
|
||||||
s3_client.put_object(Bucket=bucket_name, Key=result_done_key, Body=b'')
|
result_done_obj = s3_resource.Object(bucket_name, result_done_key)
|
||||||
|
result_done_obj.put(Body='')
|
||||||
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-END-09 - targetディレクトリに {result_done_file_name} を作成しました')
|
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-END-09 - targetディレクトリに {result_done_file_name} を作成しました')
|
||||||
|
|
||||||
# ⑤ 終了処理終了ログを出力する
|
# ⑤ 終了処理終了ログを出力する
|
||||||
@ -84,17 +88,3 @@ def end(bucket_name, target_data_source, target_file_name, warning_info, log_inf
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["e"]} E-END-99 - エラー内容:{e}')
|
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["e"]} E-END-99 - エラー内容:{e}')
|
||||||
error(bucket_name, target_data_source, target_file_name, log_info)
|
error(bucket_name, target_data_source, target_file_name, log_info)
|
||||||
|
|
||||||
|
|
||||||
# ローカル実行用コード
|
|
||||||
# 値はよしなに変えてください
|
|
||||||
# if __name__ == '__main__':
|
|
||||||
# end(
|
|
||||||
# bucket_name='バケット名',
|
|
||||||
# target_data_source='データソース名',
|
|
||||||
# target_file_name='targetフォルダ内のファイル',
|
|
||||||
# # warning_info='ワーニング内容', # ワーニングがある場合のテストはこちらを生かす
|
|
||||||
# warning_info='',
|
|
||||||
# log_info='Info',
|
|
||||||
# mode='i'
|
|
||||||
# )
|
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
import sys
|
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
import boto3
|
import boto3
|
||||||
|
import sys
|
||||||
|
|
||||||
# 定数
|
# 定数
|
||||||
LOG_LEVEL = {'i': 'Info', 'e': 'Error'}
|
LOG_LEVEL = {'i': 'Info', 'e': 'Error'}
|
||||||
@ -11,6 +10,7 @@ DIRECTORY_ERROR = '/error/'
|
|||||||
|
|
||||||
# クラス変数
|
# クラス変数
|
||||||
s3_client = boto3.client('s3')
|
s3_client = boto3.client('s3')
|
||||||
|
s3_resource = boto3.resource('s3')
|
||||||
|
|
||||||
|
|
||||||
def error(bucket_name, target_data_source, target_file_name, log_info):
|
def error(bucket_name, target_data_source, target_file_name, log_info):
|
||||||
@ -34,7 +34,8 @@ def error(bucket_name, target_data_source, target_file_name, log_info):
|
|||||||
}
|
}
|
||||||
error_file_name = f'{datetime.now():%Y%m%d%H%M%S}_{target_file_name}'
|
error_file_name = f'{datetime.now():%Y%m%d%H%M%S}_{target_file_name}'
|
||||||
error_key = target_data_source + DIRECTORY_ERROR + error_file_name
|
error_key = target_data_source + DIRECTORY_ERROR + error_file_name
|
||||||
s3_client.copy(CopySource=copy_source, Bucket=bucket_name, Key=error_key)
|
error_obj = s3_resource.Object(bucket_name, error_key)
|
||||||
|
error_obj.copy(copy_source)
|
||||||
s3_client.delete_object(Bucket=bucket_name, Key=work_key)
|
s3_client.delete_object(Bucket=bucket_name, Key=work_key)
|
||||||
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-ERR-02 - workディレクトリの {target_file_name} をerrorディレクトリに移動しました 移動後ファイル名:{error_file_name}')
|
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-ERR-02 - workディレクトリの {target_file_name} をerrorディレクトリに移動しました 移動後ファイル名:{error_file_name}')
|
||||||
|
|
||||||
@ -47,7 +48,8 @@ def error(bucket_name, target_data_source, target_file_name, log_info):
|
|||||||
# ④ S3バケット内のtargetディレクトリに、「投入データファイル名.error」ファイルを作成する
|
# ④ S3バケット内のtargetディレクトリに、「投入データファイル名.error」ファイルを作成する
|
||||||
result_error_file_name = target_file_name + '.error'
|
result_error_file_name = target_file_name + '.error'
|
||||||
result_error_key = target_data_source + DIRECTORY_TARGET + result_error_file_name
|
result_error_key = target_data_source + DIRECTORY_TARGET + result_error_file_name
|
||||||
s3_client.put_object(Bucket=bucket_name, Key=result_error_key, Body=b'')
|
result_error_obj = s3_resource.Object(bucket_name, result_error_key)
|
||||||
|
result_error_obj.put(Body='')
|
||||||
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-ERR-04 - targetディレクトリに {result_error_file_name} を作成しました')
|
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-ERR-04 - targetディレクトリに {result_error_file_name} を作成しました')
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["e"]} E-ERR-99 - エラー内容:{e}')
|
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["e"]} E-ERR-99 - エラー内容:{e}')
|
||||||
@ -79,14 +81,16 @@ def error_doing_file_exists(bucket_name, target_key, target_data_source, target_
|
|||||||
}
|
}
|
||||||
error_file_name = f'{datetime.now():%Y%m%d%H%M%S}_{target_file_name}'
|
error_file_name = f'{datetime.now():%Y%m%d%H%M%S}_{target_file_name}'
|
||||||
error_key = target_data_source + DIRECTORY_ERROR + error_file_name
|
error_key = target_data_source + DIRECTORY_ERROR + error_file_name
|
||||||
s3_client.copy(CopySource=copy_source, Bucket=bucket_name, Key=error_key)
|
error_obj = s3_resource.Object(bucket_name, error_key)
|
||||||
|
error_obj.copy(copy_source)
|
||||||
s3_client.delete_object(Bucket=bucket_name, Key=target_key)
|
s3_client.delete_object(Bucket=bucket_name, Key=target_key)
|
||||||
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-ERR-07 - targetディレクトリの {target_file_name} をerrorディレクトリに移動しました 移動後ファイル名:{error_file_name}')
|
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-ERR-07 - targetディレクトリの {target_file_name} をerrorディレクトリに移動しました 移動後ファイル名:{error_file_name}')
|
||||||
|
|
||||||
# ③ S3バケット内のtargetディレクトリに、「投入データファイル名.exclusive_error」ファイルを作成する
|
# ③ S3バケット内のtargetディレクトリに、「投入データファイル名.exclusive_error」ファイルを作成する
|
||||||
result_error_file_name = target_file_name + '.exclusive_error'
|
result_error_file_name = target_file_name + '.exclusive_error'
|
||||||
result_error_key = target_data_source + DIRECTORY_TARGET + result_error_file_name
|
result_error_key = target_data_source + DIRECTORY_TARGET + result_error_file_name
|
||||||
s3_client.put_object(Bucket=bucket_name, Key=result_error_key, Body=b'')
|
result_error_obj = s3_resource.Object(bucket_name, result_error_key)
|
||||||
|
result_error_obj.put(Body='')
|
||||||
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-ERR-08 - targetディレクトリに {result_error_file_name} を作成しました')
|
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-ERR-08 - targetディレクトリに {result_error_file_name} を作成しました')
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["e"]} E-ERR-99 - エラー内容:{e}')
|
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["e"]} E-ERR-99 - エラー内容:{e}')
|
||||||
@ -95,25 +99,4 @@ def error_doing_file_exists(bucket_name, target_key, target_data_source, target_
|
|||||||
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-ERR-09 - doingファイルが存在した時のエラー処理を終了します')
|
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-ERR-09 - doingファイルが存在した時のエラー処理を終了します')
|
||||||
|
|
||||||
# ⑤ 処理を終了する
|
# ⑤ 処理を終了する
|
||||||
sys.exit()
|
sys.exit()
|
||||||
|
|
||||||
|
|
||||||
# ローカル実行用コード
|
|
||||||
# 値はよしなに変えてください
|
|
||||||
# if __name__ == '__main__':
|
|
||||||
# エラー処理
|
|
||||||
# error(
|
|
||||||
# bucket_name='バケット名',
|
|
||||||
# target_data_source='データソース名',
|
|
||||||
# target_file_name='データソース名/target/ファイル名',
|
|
||||||
# log_info='Info'
|
|
||||||
# )
|
|
||||||
|
|
||||||
# doingファイルの有無チェック関数
|
|
||||||
# error_doing_file_exists(
|
|
||||||
# bucket_name='バケット名',
|
|
||||||
# target_key='投入データのフルパス',
|
|
||||||
# target_data_source='投入データのディレクトリ名よりデータソースに該当する部分',
|
|
||||||
# target_file_name='投入データのファイル名',
|
|
||||||
# log_info='Info'
|
|
||||||
# )
|
|
||||||
@ -1,12 +1,12 @@
|
|||||||
import csv
|
from datetime import datetime
|
||||||
|
import boto3
|
||||||
import io
|
import io
|
||||||
|
import csv
|
||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
from datetime import datetime
|
from error import error
|
||||||
|
from error import error_doing_file_exists
|
||||||
import boto3
|
|
||||||
from common import debug_log
|
from common import debug_log
|
||||||
from error import error, error_doing_file_exists
|
|
||||||
|
|
||||||
# 定数
|
# 定数
|
||||||
LOG_LEVEL = {"i": 'Info', "e": 'Error'}
|
LOG_LEVEL = {"i": 'Info', "e": 'Error'}
|
||||||
@ -17,6 +17,7 @@ DIRECTORY_SETTINGS = '/settings/'
|
|||||||
|
|
||||||
# クラス変数
|
# クラス変数
|
||||||
s3_client = boto3.client('s3')
|
s3_client = boto3.client('s3')
|
||||||
|
s3_resource = boto3.resource('s3')
|
||||||
|
|
||||||
|
|
||||||
def init(bucket_name, target_key, target_data_source, target_file_name, log_info, mode):
|
def init(bucket_name, target_key, target_data_source, target_file_name, log_info, mode):
|
||||||
@ -59,7 +60,8 @@ def init(bucket_name, target_key, target_data_source, target_file_name, log_info
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
# ③ S3バケット内のtargetディレクトリに、「投入データファイル名.doing」ファイルを作成する
|
# ③ S3バケット内のtargetディレクトリに、「投入データファイル名.doing」ファイルを作成する
|
||||||
s3_client.put_object(Bucket=bucket_name, Key=doing_key, Body=b'')
|
doing_obj = s3_resource.Object(bucket_name, doing_key)
|
||||||
|
doing_obj.put(Body='')
|
||||||
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-INI-04 - targetディレクトリに {doing_file_name} を作成しました')
|
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-INI-04 - targetディレクトリに {doing_file_name} を作成しました')
|
||||||
|
|
||||||
# ④ 投入データファイルをS3バケット内のtargetディレクトリから、workディレクトリに移動(コピー削除)する
|
# ④ 投入データファイルをS3バケット内のtargetディレクトリから、workディレクトリに移動(コピー削除)する
|
||||||
@ -68,7 +70,8 @@ def init(bucket_name, target_key, target_data_source, target_file_name, log_info
|
|||||||
'Key': target_key
|
'Key': target_key
|
||||||
}
|
}
|
||||||
work_key = target_data_source + DIRECTORY_WORK + target_file_name
|
work_key = target_data_source + DIRECTORY_WORK + target_file_name
|
||||||
s3_client.copy(CopySource=copy_source, Bucket=bucket_name, Key=work_key)
|
work_obj = s3_resource.Object(bucket_name, work_key)
|
||||||
|
work_obj.copy(copy_source)
|
||||||
s3_client.delete_object(Bucket=bucket_name, Key=target_key)
|
s3_client.delete_object(Bucket=bucket_name, Key=target_key)
|
||||||
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-INI-05 - 投入データ {target_file_name} をworkディレクトリに移動しました')
|
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-INI-05 - 投入データ {target_file_name} をworkディレクトリに移動しました')
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
@ -119,8 +122,9 @@ def init(bucket_name, target_key, target_data_source, target_file_name, log_info
|
|||||||
try:
|
try:
|
||||||
# ⑦ 個別設定ファイルを特定する
|
# ⑦ 個別設定ファイルを特定する
|
||||||
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-INI-17 - 個別設定ファイルを検索します')
|
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-INI-17 - 個別設定ファイルを検索します')
|
||||||
mapping_obj_response = s3_client.get_object(Bucket=bucket_name, Key=mapping_key)
|
mapping_obj = s3_resource.Object(bucket_name, mapping_key)
|
||||||
mapping_body = io.TextIOWrapper(io.BytesIO(mapping_obj_response["Body"].read()), encoding='utf-8')
|
mapping_response = mapping_obj.get()
|
||||||
|
mapping_body = io.TextIOWrapper(io.BytesIO(mapping_response["Body"].read()), encoding='utf-8')
|
||||||
settings_file_name = ''
|
settings_file_name = ''
|
||||||
for row in csv.reader(mapping_body, delimiter='\t'):
|
for row in csv.reader(mapping_body, delimiter='\t'):
|
||||||
if row:
|
if row:
|
||||||
@ -155,15 +159,3 @@ def init(bucket_name, target_key, target_data_source, target_file_name, log_info
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["e"]} E-INI-99 - エラー内容:{e}')
|
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["e"]} E-INI-99 - エラー内容:{e}')
|
||||||
error(bucket_name, target_data_source, target_file_name, log_info)
|
error(bucket_name, target_data_source, target_file_name, log_info)
|
||||||
|
|
||||||
# ローカル実行用コード
|
|
||||||
# 値はよしなに変えてください
|
|
||||||
# if __name__ == '__main__':
|
|
||||||
# init(
|
|
||||||
# bucket_name='バケット名',
|
|
||||||
# target_key='データソース名/target/ファイル名',
|
|
||||||
# target_data_source='データソース名',
|
|
||||||
# target_file_name='ファイル名',
|
|
||||||
# log_info='Info',
|
|
||||||
# mode='i'
|
|
||||||
# )
|
|
||||||
|
|||||||
@ -5,9 +5,10 @@ from datetime import datetime
|
|||||||
|
|
||||||
import boto3
|
import boto3
|
||||||
import pymysql
|
import pymysql
|
||||||
|
from pymysql.constants import CLIENT
|
||||||
|
|
||||||
from common import convert_quotechar, debug_log
|
from common import convert_quotechar, debug_log
|
||||||
from error import error
|
from error import error
|
||||||
from pymysql.constants import CLIENT
|
|
||||||
|
|
||||||
# 定数
|
# 定数
|
||||||
DIRECTORY_WORK = '/work/'
|
DIRECTORY_WORK = '/work/'
|
||||||
@ -46,6 +47,7 @@ INVALID_CONFIG_EXCEPTION_MESSAGE = f'個別設定ファイルのインポート
|
|||||||
|
|
||||||
# クラス変数
|
# クラス変数
|
||||||
s3_client = boto3.client('s3')
|
s3_client = boto3.client('s3')
|
||||||
|
s3_resource = boto3.resource('s3')
|
||||||
|
|
||||||
|
|
||||||
def main(bucket_name, target_data_source, target_file_name, settings_key, db_info, log_info, mode):
|
def main(bucket_name, target_data_source, target_file_name, settings_key, db_info, log_info, mode):
|
||||||
@ -89,7 +91,8 @@ def main(bucket_name, target_data_source, target_file_name, settings_key, db_inf
|
|||||||
|
|
||||||
# ④ 個別設定ファイルのロードスキーマのテーブル名に記載されているテーブルをTRUNCATEする
|
# ④ 個別設定ファイルのロードスキーマのテーブル名に記載されているテーブルをTRUNCATEする
|
||||||
# 個別設定ファイルの読み込み
|
# 個別設定ファイルの読み込み
|
||||||
settings_response = s3_client.get_object(Bucket=bucket_name, Key=settings_key)
|
settings_obj = s3_resource.Object(bucket_name, settings_key)
|
||||||
|
settings_response = settings_obj.get()
|
||||||
settings_list = []
|
settings_list = []
|
||||||
for line in io.TextIOWrapper(io.BytesIO(settings_response["Body"].read()), encoding='utf-8'):
|
for line in io.TextIOWrapper(io.BytesIO(settings_response["Body"].read()), encoding='utf-8'):
|
||||||
settings_list.append(line.rstrip('\n'))
|
settings_list.append(line.rstrip('\n'))
|
||||||
@ -107,7 +110,8 @@ def main(bucket_name, target_data_source, target_file_name, settings_key, db_inf
|
|||||||
# ⑤ 投入データファイルを1行ごとにループする
|
# ⑤ 投入データファイルを1行ごとにループする
|
||||||
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-MAIN-05 - 投入データ {target_file_name} の読み込みを開始します')
|
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-MAIN-05 - 投入データ {target_file_name} の読み込みを開始します')
|
||||||
work_key = target_data_source + DIRECTORY_WORK + target_file_name
|
work_key = target_data_source + DIRECTORY_WORK + target_file_name
|
||||||
work_response = s3_client.get_object(Bucket=bucket_name, Key=work_key)
|
work_obj = s3_resource.Object(bucket_name, work_key)
|
||||||
|
work_response = work_obj.get()
|
||||||
work_data = io.TextIOWrapper(io.BytesIO(work_response["Body"].read()), encoding=settings_list[SETTINGS_ITEM["charCode"]], newline=LINE_FEED_CODE[settings_list[SETTINGS_ITEM["lineFeedCode"]]])
|
work_data = io.TextIOWrapper(io.BytesIO(work_response["Body"].read()), encoding=settings_list[SETTINGS_ITEM["charCode"]], newline=LINE_FEED_CODE[settings_list[SETTINGS_ITEM["lineFeedCode"]]])
|
||||||
|
|
||||||
process_count = 0 # 処理件数カウンタ
|
process_count = 0 # 処理件数カウンタ
|
||||||
@ -257,9 +261,10 @@ def main(bucket_name, target_data_source, target_file_name, settings_key, db_inf
|
|||||||
try:
|
try:
|
||||||
if ex_sql_file_exists:
|
if ex_sql_file_exists:
|
||||||
# 拡張SQLファイルからSQL文生成
|
# 拡張SQLファイルからSQL文生成
|
||||||
ex_sql_obj_response = s3_client.get_object(Bucket=bucket_name, Key=ex_sql_key)
|
ex_sqls_obj = s3_resource.Object(bucket_name, ex_sql_key)
|
||||||
|
ex_sql_response = ex_sqls_obj.get()
|
||||||
ex_sql = ''
|
ex_sql = ''
|
||||||
for line in io.TextIOWrapper(io.BytesIO(ex_sql_obj_response["Body"].read()), encoding='utf-8'):
|
for line in io.TextIOWrapper(io.BytesIO(ex_sql_response["Body"].read()), encoding='utf-8'):
|
||||||
ex_sql = f'{ex_sql} {line.rstrip()}'
|
ex_sql = f'{ex_sql} {line.rstrip()}'
|
||||||
|
|
||||||
# トランザクション開始
|
# トランザクション開始
|
||||||
@ -353,18 +358,3 @@ def truncate_judge(settings_list):
|
|||||||
|
|
||||||
class InvalidConfigException(Exception):
|
class InvalidConfigException(Exception):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
# ローカル実行用コード
|
|
||||||
# 値はよしなに変えてください
|
|
||||||
# if __name__ == '__main__':
|
|
||||||
# DB_INFO = {"host": '127.0.0.1', "name": 'org02', "pass": 'user', "user": 'user'}
|
|
||||||
# main(
|
|
||||||
# bucket_name='バケット名',
|
|
||||||
# target_data_source='投入データのディレクトリ名よりデータソースに該当する部分',
|
|
||||||
# target_file_name='投入データのファイル名',
|
|
||||||
# settings_key='投入データに該当する個別設定ファイルのフルパス',
|
|
||||||
# db_info=DB_INFO,
|
|
||||||
# log_info='info',
|
|
||||||
# mode='i'
|
|
||||||
# )
|
|
||||||
|
|||||||
2
ecs/dataimport/requirements.txt
Normal file
2
ecs/dataimport/requirements.txt
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
boto3
|
||||||
|
PyMySQL
|
||||||
@ -1,10 +1,6 @@
|
|||||||
FROM python:3.12-slim-bookworm
|
FROM python:3.9
|
||||||
|
|
||||||
ENV TZ="Asia/Tokyo"
|
ENV TZ="Asia/Tokyo"
|
||||||
# pythonの標準出力をバッファリングしないフラグ
|
|
||||||
ENV PYTHONUNBUFFERED=1
|
|
||||||
# pythonのバイトコードを生成しないフラグ
|
|
||||||
ENV PYTHONDONTWRITEBYTECODE=1
|
|
||||||
|
|
||||||
WORKDIR /usr/src/app
|
WORKDIR /usr/src/app
|
||||||
COPY Pipfile Pipfile.lock ./
|
COPY Pipfile Pipfile.lock ./
|
||||||
@ -16,7 +12,6 @@ RUN apt update && apt install -y less vim curl wget gzip unzip sudo lsb-release
|
|||||||
# mysqlをインストール
|
# mysqlをインストール
|
||||||
RUN \
|
RUN \
|
||||||
wget https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb && \
|
wget https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb && \
|
||||||
apt install -y gnupg && \
|
|
||||||
dpkg -i mysql-apt-config_0.8.29-1_all.deb < mysql_dpkg_selection.txt && \
|
dpkg -i mysql-apt-config_0.8.29-1_all.deb < mysql_dpkg_selection.txt && \
|
||||||
apt update && \
|
apt update && \
|
||||||
apt install -y mysql-client
|
apt install -y mysql-client
|
||||||
@ -34,6 +29,11 @@ RUN \
|
|||||||
pipenv install --system --deploy && \
|
pipenv install --system --deploy && \
|
||||||
pip uninstall -y pipenv virtualenv-clone virtualenv
|
pip uninstall -y pipenv virtualenv-clone virtualenv
|
||||||
|
|
||||||
|
# パッケージのセキュリティアップデートのみを適用するコマンドを実行
|
||||||
|
RUN \
|
||||||
|
apt install -y unattended-upgrades && \
|
||||||
|
unattended-upgrades
|
||||||
|
|
||||||
COPY src ./src
|
COPY src ./src
|
||||||
COPY entrypoint.py entrypoint.py
|
COPY entrypoint.py entrypoint.py
|
||||||
|
|
||||||
|
|||||||
@ -10,7 +10,7 @@ autopep8 = "*"
|
|||||||
flake8 = "*"
|
flake8 = "*"
|
||||||
|
|
||||||
[requires]
|
[requires]
|
||||||
python_version = "3.12"
|
python_version = "3.9"
|
||||||
|
|
||||||
[pipenv]
|
[pipenv]
|
||||||
allow_prereleases = true
|
allow_prereleases = true
|
||||||
|
|||||||
32
ecs/export-dbdump/Pipfile.lock
generated
32
ecs/export-dbdump/Pipfile.lock
generated
@ -1,11 +1,11 @@
|
|||||||
{
|
{
|
||||||
"_meta": {
|
"_meta": {
|
||||||
"hash": {
|
"hash": {
|
||||||
"sha256": "2f7808325e11704ced6ad10c85e1d583663a03d7ccabaa9696ab1fe133a6b30c"
|
"sha256": "cc5f54bfb2073051a26f113ceac64e12fdd0bf8faa36f1a42210cc9c921c134b"
|
||||||
},
|
},
|
||||||
"pipfile-spec": 6,
|
"pipfile-spec": 6,
|
||||||
"requires": {
|
"requires": {
|
||||||
"python_version": "3.12"
|
"python_version": "3.9"
|
||||||
},
|
},
|
||||||
"sources": [
|
"sources": [
|
||||||
{
|
{
|
||||||
@ -19,21 +19,21 @@
|
|||||||
"develop": {
|
"develop": {
|
||||||
"autopep8": {
|
"autopep8": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:89440a4f969197b69a995e4ce0661b031f455a9f776d2c5ba3dbd83466931758",
|
"sha256:1fa8964e4618929488f4ec36795c7ff12924a68b8bf01366c094fc52f770b6e7",
|
||||||
"sha256:ce8ad498672c845a0c3de2629c15b635ec2b05ef8177a6e7c91c74f3e9b51128"
|
"sha256:2bb76888c5edbcafe6aabab3c47ba534f5a2c2d245c2eddced4a30c4b4946357"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"markers": "python_version >= '3.9'",
|
"markers": "python_version >= '3.8'",
|
||||||
"version": "==2.3.2"
|
"version": "==2.1.0"
|
||||||
},
|
},
|
||||||
"flake8": {
|
"flake8": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:1cbc62e65536f65e6d754dfe6f1bada7f5cf392d6f5db3c2b85892466c3e7c1a",
|
"sha256:33f96621059e65eec474169085dc92bf26e7b2d47366b70be2f67ab80dc25132",
|
||||||
"sha256:c586ffd0b41540951ae41af572e6790dbd49fc12b3aa2541685d253d9bd504bd"
|
"sha256:a6dfbb75e03252917f2473ea9653f7cd799c3064e54d4c8140044c5c065f53c3"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"markers": "python_full_version >= '3.8.1'",
|
"markers": "python_full_version >= '3.8.1'",
|
||||||
"version": "==7.1.2"
|
"version": "==7.0.0"
|
||||||
},
|
},
|
||||||
"mccabe": {
|
"mccabe": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@ -45,11 +45,11 @@
|
|||||||
},
|
},
|
||||||
"pycodestyle": {
|
"pycodestyle": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:46f0fb92069a7c28ab7bb558f05bfc0110dac69a0cd23c61ea0040283a9d78b3",
|
"sha256:41ba0e7afc9752dfb53ced5489e89f8186be00e599e712660695b7a75ff2663f",
|
||||||
"sha256:6838eae08bbce4f6accd5d5572075c63626a15ee3e6f842df996bf62f6d73521"
|
"sha256:44fe31000b2d866f2e41841b18528a505fbd7fef9017b04eff4e2648a0fadc67"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '3.8'",
|
"markers": "python_version >= '3.8'",
|
||||||
"version": "==2.12.1"
|
"version": "==2.11.1"
|
||||||
},
|
},
|
||||||
"pyflakes": {
|
"pyflakes": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@ -58,6 +58,14 @@
|
|||||||
],
|
],
|
||||||
"markers": "python_version >= '3.8'",
|
"markers": "python_version >= '3.8'",
|
||||||
"version": "==3.2.0"
|
"version": "==3.2.0"
|
||||||
|
},
|
||||||
|
"tomli": {
|
||||||
|
"hashes": [
|
||||||
|
"sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc",
|
||||||
|
"sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"
|
||||||
|
],
|
||||||
|
"markers": "python_version < '3.11'",
|
||||||
|
"version": "==2.0.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
430
ecs/jskult-batch-daily/Pipfile.lock
generated
430
ecs/jskult-batch-daily/Pipfile.lock
generated
@ -18,20 +18,84 @@
|
|||||||
"default": {
|
"default": {
|
||||||
"boto3": {
|
"boto3": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:3faa2c328a61745f3215a63039606a6fcf55d9afe1cc76e3a5e27b9db58cdbf6",
|
"sha256:b633e8fbf7145bdb995ce68a27d096bb89fd393185b0e773418d81cd78db5a03",
|
||||||
"sha256:b998edac72f6740bd5d9d585cf3880f2dfeb4842e626b34430fd0e9623378011"
|
"sha256:f2c11635be0de7b7c06eb606ece1add125e02d6ed521592294a0a21af09af135"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"markers": "python_version >= '3.9'",
|
"markers": "python_version >= '3.8'",
|
||||||
"version": "==1.38.32"
|
"version": "==1.34.105"
|
||||||
},
|
},
|
||||||
"botocore": {
|
"botocore": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:0899a090e352cb5eeaae2c7bb52a987b469d23912c7ece86664dfb5c2e074978",
|
"sha256:727d5d3e800ac8b705fca6e19b6fefa1e728a81d62a712df9bd32ed0117c740b",
|
||||||
"sha256:64ab919a5d8b74dd73eaac1f978d0e674d11ff3bbe8815c3d2982477be9a082c"
|
"sha256:a459d060b541beecb50681e6e8a39313cca981e146a59ba7c5229d62f631a016"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '3.9'",
|
"markers": "python_version >= '3.8'",
|
||||||
"version": "==1.38.32"
|
"version": "==1.34.105"
|
||||||
|
},
|
||||||
|
"greenlet": {
|
||||||
|
"hashes": [
|
||||||
|
"sha256:01bc7ea167cf943b4c802068e178bbf70ae2e8c080467070d01bfa02f337ee67",
|
||||||
|
"sha256:0448abc479fab28b00cb472d278828b3ccca164531daab4e970a0458786055d6",
|
||||||
|
"sha256:086152f8fbc5955df88382e8a75984e2bb1c892ad2e3c80a2508954e52295257",
|
||||||
|
"sha256:098d86f528c855ead3479afe84b49242e174ed262456c342d70fc7f972bc13c4",
|
||||||
|
"sha256:149e94a2dd82d19838fe4b2259f1b6b9957d5ba1b25640d2380bea9c5df37676",
|
||||||
|
"sha256:1551a8195c0d4a68fac7a4325efac0d541b48def35feb49d803674ac32582f61",
|
||||||
|
"sha256:15d79dd26056573940fcb8c7413d84118086f2ec1a8acdfa854631084393efcc",
|
||||||
|
"sha256:1996cb9306c8595335bb157d133daf5cf9f693ef413e7673cb07e3e5871379ca",
|
||||||
|
"sha256:1a7191e42732df52cb5f39d3527217e7ab73cae2cb3694d241e18f53d84ea9a7",
|
||||||
|
"sha256:1ea188d4f49089fc6fb283845ab18a2518d279c7cd9da1065d7a84e991748728",
|
||||||
|
"sha256:1f672519db1796ca0d8753f9e78ec02355e862d0998193038c7073045899f305",
|
||||||
|
"sha256:2516a9957eed41dd8f1ec0c604f1cdc86758b587d964668b5b196a9db5bfcde6",
|
||||||
|
"sha256:2797aa5aedac23af156bbb5a6aa2cd3427ada2972c828244eb7d1b9255846379",
|
||||||
|
"sha256:2dd6e660effd852586b6a8478a1d244b8dc90ab5b1321751d2ea15deb49ed414",
|
||||||
|
"sha256:3ddc0f794e6ad661e321caa8d2f0a55ce01213c74722587256fb6566049a8b04",
|
||||||
|
"sha256:3ed7fb269f15dc662787f4119ec300ad0702fa1b19d2135a37c2c4de6fadfd4a",
|
||||||
|
"sha256:419b386f84949bf0e7c73e6032e3457b82a787c1ab4a0e43732898a761cc9dbf",
|
||||||
|
"sha256:43374442353259554ce33599da8b692d5aa96f8976d567d4badf263371fbe491",
|
||||||
|
"sha256:52f59dd9c96ad2fc0d5724107444f76eb20aaccb675bf825df6435acb7703559",
|
||||||
|
"sha256:57e8974f23e47dac22b83436bdcf23080ade568ce77df33159e019d161ce1d1e",
|
||||||
|
"sha256:5b51e85cb5ceda94e79d019ed36b35386e8c37d22f07d6a751cb659b180d5274",
|
||||||
|
"sha256:649dde7de1a5eceb258f9cb00bdf50e978c9db1b996964cd80703614c86495eb",
|
||||||
|
"sha256:64d7675ad83578e3fc149b617a444fab8efdafc9385471f868eb5ff83e446b8b",
|
||||||
|
"sha256:68834da854554926fbedd38c76e60c4a2e3198c6fbed520b106a8986445caaf9",
|
||||||
|
"sha256:6b66c9c1e7ccabad3a7d037b2bcb740122a7b17a53734b7d72a344ce39882a1b",
|
||||||
|
"sha256:70fb482fdf2c707765ab5f0b6655e9cfcf3780d8d87355a063547b41177599be",
|
||||||
|
"sha256:7170375bcc99f1a2fbd9c306f5be8764eaf3ac6b5cb968862cad4c7057756506",
|
||||||
|
"sha256:73a411ef564e0e097dbe7e866bb2dda0f027e072b04da387282b02c308807405",
|
||||||
|
"sha256:77457465d89b8263bca14759d7c1684df840b6811b2499838cc5b040a8b5b113",
|
||||||
|
"sha256:7f362975f2d179f9e26928c5b517524e89dd48530a0202570d55ad6ca5d8a56f",
|
||||||
|
"sha256:81bb9c6d52e8321f09c3d165b2a78c680506d9af285bfccbad9fb7ad5a5da3e5",
|
||||||
|
"sha256:881b7db1ebff4ba09aaaeae6aa491daeb226c8150fc20e836ad00041bcb11230",
|
||||||
|
"sha256:894393ce10ceac937e56ec00bb71c4c2f8209ad516e96033e4b3b1de270e200d",
|
||||||
|
"sha256:99bf650dc5d69546e076f413a87481ee1d2d09aaaaaca058c9251b6d8c14783f",
|
||||||
|
"sha256:9da2bd29ed9e4f15955dd1595ad7bc9320308a3b766ef7f837e23ad4b4aac31a",
|
||||||
|
"sha256:afaff6cf5200befd5cec055b07d1c0a5a06c040fe5ad148abcd11ba6ab9b114e",
|
||||||
|
"sha256:b1b5667cced97081bf57b8fa1d6bfca67814b0afd38208d52538316e9422fc61",
|
||||||
|
"sha256:b37eef18ea55f2ffd8f00ff8fe7c8d3818abd3e25fb73fae2ca3b672e333a7a6",
|
||||||
|
"sha256:b542be2440edc2d48547b5923c408cbe0fc94afb9f18741faa6ae970dbcb9b6d",
|
||||||
|
"sha256:b7dcbe92cc99f08c8dd11f930de4d99ef756c3591a5377d1d9cd7dd5e896da71",
|
||||||
|
"sha256:b7f009caad047246ed379e1c4dbcb8b020f0a390667ea74d2387be2998f58a22",
|
||||||
|
"sha256:bba5387a6975598857d86de9eac14210a49d554a77eb8261cc68b7d082f78ce2",
|
||||||
|
"sha256:c5e1536de2aad7bf62e27baf79225d0d64360d4168cf2e6becb91baf1ed074f3",
|
||||||
|
"sha256:c5ee858cfe08f34712f548c3c363e807e7186f03ad7a5039ebadb29e8c6be067",
|
||||||
|
"sha256:c9db1c18f0eaad2f804728c67d6c610778456e3e1cc4ab4bbd5eeb8e6053c6fc",
|
||||||
|
"sha256:d353cadd6083fdb056bb46ed07e4340b0869c305c8ca54ef9da3421acbdf6881",
|
||||||
|
"sha256:d46677c85c5ba00a9cb6f7a00b2bfa6f812192d2c9f7d9c4f6a55b60216712f3",
|
||||||
|
"sha256:d4d1ac74f5c0c0524e4a24335350edad7e5f03b9532da7ea4d3c54d527784f2e",
|
||||||
|
"sha256:d73a9fe764d77f87f8ec26a0c85144d6a951a6c438dfe50487df5595c6373eac",
|
||||||
|
"sha256:da70d4d51c8b306bb7a031d5cff6cc25ad253affe89b70352af5f1cb68e74b53",
|
||||||
|
"sha256:daf3cb43b7cf2ba96d614252ce1684c1bccee6b2183a01328c98d36fcd7d5cb0",
|
||||||
|
"sha256:dca1e2f3ca00b84a396bc1bce13dd21f680f035314d2379c4160c98153b2059b",
|
||||||
|
"sha256:dd4f49ae60e10adbc94b45c0b5e6a179acc1736cf7a90160b404076ee283cf83",
|
||||||
|
"sha256:e1f145462f1fa6e4a4ae3c0f782e580ce44d57c8f2c7aae1b6fa88c0b2efdb41",
|
||||||
|
"sha256:e3391d1e16e2a5a1507d83e4a8b100f4ee626e8eca43cf2cadb543de69827c4c",
|
||||||
|
"sha256:fcd2469d6a2cf298f198f0487e0a5b1a47a42ca0fa4dfd1b6862c999f018ebbf",
|
||||||
|
"sha256:fd096eb7ffef17c456cfa587523c5f92321ae02427ff955bebe9e3c63bc9f0da",
|
||||||
|
"sha256:fe754d231288e1e64323cfad462fcee8f0288654c10bdf4f603a39ed923bef33"
|
||||||
|
],
|
||||||
|
"markers": "platform_machine == 'aarch64' or (platform_machine == 'ppc64le' or (platform_machine == 'x86_64' or (platform_machine == 'amd64' or (platform_machine == 'AMD64' or (platform_machine == 'win32' or platform_machine == 'WIN32')))))",
|
||||||
|
"version": "==3.0.3"
|
||||||
},
|
},
|
||||||
"jmespath": {
|
"jmespath": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@ -43,241 +107,223 @@
|
|||||||
},
|
},
|
||||||
"pymysql": {
|
"pymysql": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:4de15da4c61dc132f4fb9ab763063e693d521a80fd0e87943b9a453dd4c19d6c",
|
"sha256:4f13a7df8bf36a51e81dd9f3605fede45a4878fe02f9236349fd82a3f0612f96",
|
||||||
"sha256:e127611aaf2b417403c60bf4dc570124aeb4a57f5f37b8e95ae399a42f904cd0"
|
"sha256:8969ec6d763c856f7073c4c64662882675702efcb114b4bcbb955aea3a069fa7"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"markers": "python_version >= '3.7'",
|
"markers": "python_version >= '3.7'",
|
||||||
"version": "==1.1.1"
|
"version": "==1.1.0"
|
||||||
},
|
},
|
||||||
"python-dateutil": {
|
"python-dateutil": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3",
|
"sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3",
|
||||||
"sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"
|
"sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
|
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||||
"version": "==2.9.0.post0"
|
"version": "==2.9.0.post0"
|
||||||
},
|
},
|
||||||
"s3transfer": {
|
"s3transfer": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:0148ef34d6dd964d0d8cf4311b2b21c474693e57c2e069ec708ce043d2b527be",
|
"sha256:5683916b4c724f799e600f41dd9e10a9ff19871bf87623cc8f491cb4f5fa0a19",
|
||||||
"sha256:f5e6db74eb7776a37208001113ea7aa97695368242b364d73e91c981ac522177"
|
"sha256:ceb252b11bcf87080fb7850a224fb6e05c8a776bab8f2b64b7f25b969464839d"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '3.9'",
|
"markers": "python_version >= '3.8'",
|
||||||
"version": "==0.13.0"
|
"version": "==0.10.1"
|
||||||
},
|
},
|
||||||
"six": {
|
"six": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274",
|
"sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926",
|
||||||
"sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"
|
"sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
|
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||||
"version": "==1.17.0"
|
"version": "==1.16.0"
|
||||||
},
|
},
|
||||||
"sqlalchemy": {
|
"sqlalchemy": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:023b3ee6169969beea3bb72312e44d8b7c27c75b347942d943cf49397b7edeb5",
|
"sha256:0094c5dc698a5f78d3d1539853e8ecec02516b62b8223c970c86d44e7a80f6c7",
|
||||||
"sha256:03968a349db483936c249f4d9cd14ff2c296adfa1290b660ba6516f973139582",
|
"sha256:0138c5c16be3600923fa2169532205d18891b28afa817cb49b50e08f62198bb8",
|
||||||
"sha256:05132c906066142103b83d9c250b60508af556982a385d96c4eaa9fb9720ac2b",
|
"sha256:0a089e218654e740a41388893e090d2e2c22c29028c9d1353feb38638820bbeb",
|
||||||
"sha256:087b6b52de812741c27231b5a3586384d60c353fbd0e2f81405a814b5591dc8b",
|
"sha256:0b3f4c438e37d22b83e640f825ef0f37b95db9aa2d68203f2c9549375d0b2260",
|
||||||
"sha256:0b3dbf1e7e9bc95f4bac5e2fb6d3fb2f083254c3fdd20a1789af965caf2d2348",
|
"sha256:16863e2b132b761891d6c49f0a0f70030e0bcac4fd208117f6b7e053e68668d0",
|
||||||
"sha256:118c16cd3f1b00c76d69343e38602006c9cfb9998fa4f798606d28d63f23beda",
|
"sha256:1f9a727312ff6ad5248a4367358e2cf7e625e98b1028b1d7ab7b806b7d757513",
|
||||||
"sha256:1936af879e3db023601196a1684d28e12f19ccf93af01bf3280a3262c4b6b4e5",
|
"sha256:2383146973a15435e4717f94c7509982770e3e54974c71f76500a0136f22810b",
|
||||||
"sha256:1e3f196a0c59b0cae9a0cd332eb1a4bda4696e863f4f1cf84ab0347992c548c2",
|
"sha256:2753743c2afd061bb95a61a51bbb6a1a11ac1c44292fad898f10c9839a7f75b2",
|
||||||
"sha256:23a8825495d8b195c4aa9ff1c430c28f2c821e8c5e2d98089228af887e5d7e29",
|
"sha256:296230899df0b77dec4eb799bcea6fbe39a43707ce7bb166519c97b583cfcab3",
|
||||||
"sha256:293cd444d82b18da48c9f71cd7005844dbbd06ca19be1ccf6779154439eec0b8",
|
"sha256:2a4f4da89c74435f2bc61878cd08f3646b699e7d2eba97144030d1be44e27584",
|
||||||
"sha256:32f9dc8c44acdee06c8fc6440db9eae8b4af8b01e4b1aee7bdd7241c22edff4f",
|
"sha256:2b1708916730f4830bc69d6f49d37f7698b5bd7530aca7f04f785f8849e95255",
|
||||||
"sha256:34ea30ab3ec98355235972dadc497bb659cc75f8292b760394824fab9cf39826",
|
"sha256:2ecabd9ccaa6e914e3dbb2aa46b76dede7eadc8cbf1b8083c94d936bcd5ffb49",
|
||||||
"sha256:3d3549fc3e40667ec7199033a4e40a2f669898a00a7b18a931d3efb4c7900504",
|
"sha256:311710f9a2ee235f1403537b10c7687214bb1f2b9ebb52702c5aa4a77f0b3af7",
|
||||||
"sha256:41836fe661cc98abfae476e14ba1906220f92c4e528771a8a3ae6a151242d2ae",
|
"sha256:37a4b4fb0dd4d2669070fb05b8b8824afd0af57587393015baee1cf9890242d9",
|
||||||
"sha256:4d44522480e0bf34c3d63167b8cfa7289c1c54264c2950cc5fc26e7850967e45",
|
"sha256:3a365eda439b7a00732638f11072907c1bc8e351c7665e7e5da91b169af794af",
|
||||||
"sha256:4eeb195cdedaf17aab6b247894ff2734dcead6c08f748e617bfe05bd5a218443",
|
"sha256:3b48154678e76445c7ded1896715ce05319f74b1e73cf82d4f8b59b46e9c0ddc",
|
||||||
"sha256:4f67766965996e63bb46cfbf2ce5355fc32d9dd3b8ad7e536a920ff9ee422e23",
|
"sha256:3b69e934f0f2b677ec111b4d83f92dc1a3210a779f69bf905273192cf4ed433e",
|
||||||
"sha256:57df5dc6fdb5ed1a88a1ed2195fd31927e705cad62dedd86b46972752a80f576",
|
"sha256:3cb5a646930c5123f8461f6468901573f334c2c63c795b9af350063a736d0134",
|
||||||
"sha256:598d9ebc1e796431bbd068e41e4de4dc34312b7aa3292571bb3674a0cb415dd1",
|
"sha256:408f8b0e2c04677e9c93f40eef3ab22f550fecb3011b187f66a096395ff3d9fd",
|
||||||
"sha256:5b14e97886199c1f52c14629c11d90c11fbb09e9334fa7bb5f6d068d9ced0ce0",
|
"sha256:40ad017c672c00b9b663fcfcd5f0864a0a97828e2ee7ab0c140dc84058d194cf",
|
||||||
"sha256:5e22575d169529ac3e0a120cf050ec9daa94b6a9597993d1702884f6954a7d71",
|
"sha256:5a79d65395ac5e6b0c2890935bad892eabb911c4aa8e8015067ddb37eea3d56c",
|
||||||
"sha256:60c578c45c949f909a4026b7807044e7e564adf793537fc762b2489d522f3d11",
|
"sha256:5a8e3b0a7e09e94be7510d1661339d6b52daf202ed2f5b1f9f48ea34ee6f2d57",
|
||||||
"sha256:6145afea51ff0af7f2564a05fa95eb46f542919e6523729663a5d285ecb3cf5e",
|
"sha256:69c9db1ce00e59e8dd09d7bae852a9add716efdc070a3e2068377e6ff0d6fdaa",
|
||||||
"sha256:6375cd674fe82d7aa9816d1cb96ec592bac1726c11e0cafbf40eeee9a4516b5f",
|
"sha256:7108d569d3990c71e26a42f60474b4c02c8586c4681af5fd67e51a044fdea86a",
|
||||||
"sha256:6854175807af57bdb6425e47adbce7d20a4d79bbfd6f6d6519cd10bb7109a7f8",
|
"sha256:77d2edb1f54aff37e3318f611637171e8ec71472f1fdc7348b41dcb226f93d90",
|
||||||
"sha256:6ab60a5089a8f02009f127806f777fca82581c49e127f08413a66056bd9166dd",
|
"sha256:7d74336c65705b986d12a7e337ba27ab2b9d819993851b140efdf029248e818e",
|
||||||
"sha256:725875a63abf7c399d4548e686debb65cdc2549e1825437096a0af1f7e374814",
|
"sha256:8409de825f2c3b62ab15788635ccaec0c881c3f12a8af2b12ae4910a0a9aeef6",
|
||||||
"sha256:7492967c3386df69f80cf67efd665c0f667cee67032090fe01d7d74b0e19bb08",
|
"sha256:955991a09f0992c68a499791a753523f50f71a6885531568404fa0f231832aa0",
|
||||||
"sha256:81965cc20848ab06583506ef54e37cf15c83c7e619df2ad16807c03100745dea",
|
"sha256:99650e9f4cf3ad0d409fed3eec4f071fadd032e9a5edc7270cd646a26446feeb",
|
||||||
"sha256:81c24e0c0fde47a9723c81d5806569cddef103aebbf79dbc9fcbb617153dea30",
|
"sha256:9a5baf9267b752390252889f0c802ea13b52dfee5e369527da229189b8bd592e",
|
||||||
"sha256:81eedafa609917040d39aa9332e25881a8e7a0862495fcdf2023a9667209deda",
|
"sha256:a0ef36b28534f2a5771191be6edb44cc2673c7b2edf6deac6562400288664221",
|
||||||
"sha256:81f413674d85cfd0dfcd6512e10e0f33c19c21860342a4890c3a2b59479929f9",
|
"sha256:a1429a4b0f709f19ff3b0cf13675b2b9bfa8a7e79990003207a011c0db880a13",
|
||||||
"sha256:8280856dd7c6a68ab3a164b4a4b1c51f7691f6d04af4d4ca23d6ecf2261b7923",
|
"sha256:a7bfc726d167f425d4c16269a9a10fe8630ff6d14b683d588044dcef2d0f6be7",
|
||||||
"sha256:82ca366a844eb551daff9d2e6e7a9e5e76d2612c8564f58db6c19a726869c1df",
|
"sha256:a943d297126c9230719c27fcbbeab57ecd5d15b0bd6bfd26e91bfcfe64220621",
|
||||||
"sha256:8b4af17bda11e907c51d10686eda89049f9ce5669b08fbe71a29747f1e876036",
|
"sha256:ae8c62fe2480dd61c532ccafdbce9b29dacc126fe8be0d9a927ca3e699b9491a",
|
||||||
"sha256:90144d3b0c8b139408da50196c5cad2a6909b51b23df1f0538411cd23ffa45d3",
|
"sha256:b60203c63e8f984df92035610c5fb76d941254cf5d19751faab7d33b21e5ddc0",
|
||||||
"sha256:906e6b0d7d452e9a98e5ab8507c0da791856b2380fdee61b765632bb8698026f",
|
"sha256:b6bf767d14b77f6a18b6982cbbf29d71bede087edae495d11ab358280f304d8e",
|
||||||
"sha256:90c11ceb9a1f482c752a71f203a81858625d8df5746d787a4786bca4ffdf71c6",
|
"sha256:b6c7ec2b1f4969fc19b65b7059ed00497e25f54069407a8701091beb69e591a5",
|
||||||
"sha256:911cc493ebd60de5f285bcae0491a60b4f2a9f0f5c270edd1c4dbaef7a38fc04",
|
"sha256:bba002a9447b291548e8d66fd8c96a6a7ed4f2def0bb155f4f0a1309fd2735d5",
|
||||||
"sha256:9a420a91913092d1e20c86a2f5f1fc85c1a8924dbcaf5e0586df8aceb09c9cc2",
|
"sha256:bc0c53579650a891f9b83fa3cecd4e00218e071d0ba00c4890f5be0c34887ed3",
|
||||||
"sha256:9f8c9fdd15a55d9465e590a402f42082705d66b05afc3ffd2d2eb3c6ba919560",
|
"sha256:c4f61ada6979223013d9ab83a3ed003ded6959eae37d0d685db2c147e9143797",
|
||||||
"sha256:a104c5694dfd2d864a6f91b0956eb5d5883234119cb40010115fd45a16da5e70",
|
"sha256:c62d401223f468eb4da32627bffc0c78ed516b03bb8a34a58be54d618b74d472",
|
||||||
"sha256:a373a400f3e9bac95ba2a06372c4fd1412a7cee53c37fc6c05f829bf672b8769",
|
"sha256:e42203d8d20dc704604862977b1470a122e4892791fe3ed165f041e4bf447a1b",
|
||||||
"sha256:a62448526dd9ed3e3beedc93df9bb6b55a436ed1474db31a2af13b313a70a7e1",
|
"sha256:edc16a50f5e1b7a06a2dcc1f2205b0b961074c123ed17ebda726f376a5ab0953",
|
||||||
"sha256:a8808d5cf866c781150d36a3c8eb3adccfa41a8105d031bf27e92c251e3969d6",
|
"sha256:efedba7e13aa9a6c8407c48facfdfa108a5a4128e35f4c68f20c3407e4376aa9",
|
||||||
"sha256:b1f09b6821406ea1f94053f346f28f8215e293344209129a9c0fcc3578598d7b",
|
"sha256:f1dc3eabd8c0232ee8387fbe03e0a62220a6f089e278b1f0aaf5e2d6210741ad",
|
||||||
"sha256:b2ac41acfc8d965fb0c464eb8f44995770239668956dc4cdf502d1b1ffe0d747",
|
"sha256:f69e4c756ee2686767eb80f94c0125c8b0a0b87ede03eacc5c8ae3b54b99dc46",
|
||||||
"sha256:b46fa6eae1cd1c20e6e6f44e19984d438b6b2d8616d21d783d150df714f44078",
|
"sha256:f7703c2010355dd28f53deb644a05fc30f796bd8598b43f0ba678878780b6e4c",
|
||||||
"sha256:b50eab9994d64f4a823ff99a0ed28a6903224ddbe7fef56a6dd865eec9243440",
|
"sha256:fa561138a64f949f3e889eb9ab8c58e1504ab351d6cf55259dc4c248eaa19da6"
|
||||||
"sha256:bfc9064f6658a3d1cadeaa0ba07570b83ce6801a1314985bf98ec9b95d74e15f",
|
|
||||||
"sha256:c0b0e5e1b5d9f3586601048dd68f392dc0cc99a59bb5faf18aab057ce00d00b2",
|
|
||||||
"sha256:c153265408d18de4cc5ded1941dcd8315894572cddd3c58df5d5b5705b3fa28d",
|
|
||||||
"sha256:d4ae769b9c1c7757e4ccce94b0641bc203bbdf43ba7a2413ab2523d8d047d8dc",
|
|
||||||
"sha256:dc56c9788617b8964ad02e8fcfeed4001c1f8ba91a9e1f31483c0dffb207002a",
|
|
||||||
"sha256:dd5ec3aa6ae6e4d5b5de9357d2133c07be1aff6405b136dad753a16afb6717dd",
|
|
||||||
"sha256:edba70118c4be3c2b1f90754d308d0b79c6fe2c0fdc52d8ddf603916f83f4db9",
|
|
||||||
"sha256:ff8e80c4c4932c10493ff97028decfdb622de69cae87e0f127a7ebe32b4069c6"
|
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"markers": "python_version >= '3.7'",
|
"markers": "python_version >= '3.7'",
|
||||||
"version": "==2.0.41"
|
"version": "==2.0.30"
|
||||||
},
|
},
|
||||||
"tenacity": {
|
"tenacity": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:1169d376c297e7de388d18b4481760d478b0e99a777cad3a9c86e556f4b697cb",
|
"sha256:3649f6443dbc0d9b01b9d8020a9c4ec7a1ff5f6f3c6c8a036ef371f573fe9185",
|
||||||
"sha256:f77bf36710d8b73a50b2dd155c97b870017ad21afe6ab300326b0371b3b05138"
|
"sha256:953d4e6ad24357bceffbc9707bc74349aca9d245f68eb65419cf0c249a1949a2"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"markers": "python_version >= '3.9'",
|
"markers": "python_version >= '3.8'",
|
||||||
"version": "==9.1.2"
|
"version": "==8.3.0"
|
||||||
},
|
},
|
||||||
"typing-extensions": {
|
"typing-extensions": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:8676b788e32f02ab42d9e7c61324048ae4c6d844a399eebace3d4979d75ceef4",
|
"sha256:83f085bd5ca59c80295fc2a82ab5dac679cbe02b9f33f7d83af68e241bea51b0",
|
||||||
"sha256:a1514509136dd0b477638fc68d6a91497af5076466ad0fa6c338e44e359944af"
|
"sha256:c1f94d72897edaf4ce775bb7558d5b79d8126906a14ea5ed1635921406c0387a"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '3.9'",
|
"markers": "python_version >= '3.8'",
|
||||||
"version": "==4.14.0"
|
"version": "==4.11.0"
|
||||||
},
|
},
|
||||||
"urllib3": {
|
"urllib3": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:0ed14ccfbf1c30a9072c7ca157e4319b70d65f623e91e7b32fadb2853431016e",
|
"sha256:34b97092d7e0a3a8cf7cd10e386f401b3737364026c45e622aa02903dffe0f07",
|
||||||
"sha256:40c2dc0c681e47eb8f90e7e27bf6ff7df2e677421fd46756da1161c39ca70d32"
|
"sha256:f8ecc1bba5667413457c529ab955bf8c67b45db799d159066261719e328580a0"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'",
|
"markers": "python_version < '3.10'",
|
||||||
"version": "==1.26.20"
|
"version": "==1.26.18"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"develop": {
|
"develop": {
|
||||||
"autopep8": {
|
"autopep8": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:8d6c87eba648fdcfc83e29b788910b8643171c395d9c4bcf115ece035b9c9dda",
|
"sha256:1fa8964e4618929488f4ec36795c7ff12924a68b8bf01366c094fc52f770b6e7",
|
||||||
"sha256:a203fe0fcad7939987422140ab17a930f684763bf7335bdb6709991dd7ef6c2d"
|
"sha256:2bb76888c5edbcafe6aabab3c47ba534f5a2c2d245c2eddced4a30c4b4946357"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"markers": "python_version >= '3.8'",
|
"markers": "python_version >= '3.8'",
|
||||||
"version": "==2.3.1"
|
"version": "==2.1.0"
|
||||||
},
|
},
|
||||||
"boto3": {
|
"boto3": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:9edf49640c79a05b0a72f4c2d1e24dfc164344b680535a645f455ac624dc3680",
|
"sha256:b633e8fbf7145bdb995ce68a27d096bb89fd393185b0e773418d81cd78db5a03",
|
||||||
"sha256:db58348849a5af061f0f5ec9c3b699da5221ca83354059fdccb798e3ddb6b62a"
|
"sha256:f2c11635be0de7b7c06eb606ece1add125e02d6ed521592294a0a21af09af135"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"markers": "python_version >= '3.8'",
|
"markers": "python_version >= '3.8'",
|
||||||
"version": "==1.35.57"
|
"version": "==1.34.105"
|
||||||
},
|
},
|
||||||
"botocore": {
|
"botocore": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:92ddd02469213766872cb2399269dd20948f90348b42bf08379881d5e946cc34",
|
"sha256:727d5d3e800ac8b705fca6e19b6fefa1e728a81d62a712df9bd32ed0117c740b",
|
||||||
"sha256:d96306558085baf0bcb3b022d7a8c39c93494f031edb376694d2b2dcd0e81327"
|
"sha256:a459d060b541beecb50681e6e8a39313cca981e146a59ba7c5229d62f631a016"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '3.8'",
|
"markers": "python_version >= '3.8'",
|
||||||
"version": "==1.35.57"
|
"version": "==1.34.105"
|
||||||
},
|
},
|
||||||
"coverage": {
|
"coverage": {
|
||||||
"extras": [
|
"extras": [
|
||||||
"toml"
|
"toml"
|
||||||
],
|
],
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:00a1d69c112ff5149cabe60d2e2ee948752c975d95f1e1096742e6077affd376",
|
"sha256:0646599e9b139988b63704d704af8e8df7fa4cbc4a1f33df69d97f36cb0a38de",
|
||||||
"sha256:023bf8ee3ec6d35af9c1c6ccc1d18fa69afa1cb29eaac57cb064dbb262a517f9",
|
"sha256:0cdcbc320b14c3e5877ee79e649677cb7d89ef588852e9583e6b24c2e5072661",
|
||||||
"sha256:0294ca37f1ba500667b1aef631e48d875ced93ad5e06fa665a3295bdd1d95111",
|
"sha256:0d0a0f5e06881ecedfe6f3dd2f56dcb057b6dbeb3327fd32d4b12854df36bf26",
|
||||||
"sha256:06babbb8f4e74b063dbaeb74ad68dfce9186c595a15f11f5d5683f748fa1d172",
|
"sha256:1434e088b41594baa71188a17533083eabf5609e8e72f16ce8c186001e6b8c41",
|
||||||
"sha256:0809082ee480bb8f7416507538243c8863ac74fd8a5d2485c46f0f7499f2b491",
|
"sha256:16db7f26000a07efcf6aea00316f6ac57e7d9a96501e990a36f40c965ec7a95d",
|
||||||
"sha256:0b3fb02fe73bed561fa12d279a417b432e5b50fe03e8d663d61b3d5990f29546",
|
"sha256:1cc0fe9b0b3a8364093c53b0b4c0c2dd4bb23acbec4c9240b5f284095ccf7981",
|
||||||
"sha256:0b58c672d14f16ed92a48db984612f5ce3836ae7d72cdd161001cc54512571f2",
|
"sha256:1fc81d5878cd6274ce971e0a3a18a8803c3fe25457165314271cf78e3aae3aa2",
|
||||||
"sha256:0bcd1069e710600e8e4cf27f65c90c7843fa8edfb4520fb0ccb88894cad08b11",
|
"sha256:2ec92012fefebee89a6b9c79bc39051a6cb3891d562b9270ab10ecfdadbc0c34",
|
||||||
"sha256:1032e178b76a4e2b5b32e19d0fd0abbce4b58e77a1ca695820d10e491fa32b08",
|
"sha256:39afcd3d4339329c5f58de48a52f6e4e50f6578dd6099961cf22228feb25f38f",
|
||||||
"sha256:11a223a14e91a4693d2d0755c7a043db43d96a7450b4f356d506c2562c48642c",
|
"sha256:4a7b0ceee8147444347da6a66be737c9d78f3353b0681715b668b72e79203e4a",
|
||||||
"sha256:12394842a3a8affa3ba62b0d4ab7e9e210c5e366fbac3e8b2a68636fb19892c2",
|
"sha256:4a9ca3f2fae0088c3c71d743d85404cec8df9be818a005ea065495bedc33da35",
|
||||||
"sha256:182e6cd5c040cec0a1c8d415a87b67ed01193ed9ad458ee427741c7d8513d963",
|
"sha256:4bf0655ab60d754491004a5efd7f9cccefcc1081a74c9ef2da4735d6ee4a6223",
|
||||||
"sha256:1d5b8007f81b88696d06f7df0cb9af0d3b835fe0c8dbf489bad70b45f0e45613",
|
"sha256:4cc37def103a2725bc672f84bd939a6fe4522310503207aae4d56351644682f1",
|
||||||
"sha256:1f76846299ba5c54d12c91d776d9605ae33f8ae2b9d1d3c3703cf2db1a67f2c0",
|
"sha256:4fc84a37bfd98db31beae3c2748811a3fa72bf2007ff7902f68746d9757f3746",
|
||||||
"sha256:27fb4a050aaf18772db513091c9c13f6cb94ed40eacdef8dad8411d92d9992db",
|
"sha256:5037f8fcc2a95b1f0e80585bd9d1ec31068a9bcb157d9750a172836e98bc7a90",
|
||||||
"sha256:29155cd511ee058e260db648b6182c419422a0d2e9a4fa44501898cf918866cf",
|
"sha256:54de9ef3a9da981f7af93eafde4ede199e0846cd819eb27c88e2b712aae9708c",
|
||||||
"sha256:29fc0f17b1d3fea332f8001d4558f8214af7f1d87a345f3a133c901d60347c73",
|
"sha256:556cf1a7cbc8028cb60e1ff0be806be2eded2daf8129b8811c63e2b9a6c43bca",
|
||||||
"sha256:2b6b4c83d8e8ea79f27ab80778c19bc037759aea298da4b56621f4474ffeb117",
|
"sha256:57e0204b5b745594e5bc14b9b50006da722827f0b8c776949f1135677e88d0b8",
|
||||||
"sha256:2fdef0d83a2d08d69b1f2210a93c416d54e14d9eb398f6ab2f0a209433db19e1",
|
"sha256:5a5740d1fb60ddf268a3811bcd353de34eb56dc24e8f52a7f05ee513b2d4f596",
|
||||||
"sha256:3c65d37f3a9ebb703e710befdc489a38683a5b152242664b973a7b7b22348a4e",
|
"sha256:5c3721c2c9e4c4953a41a26c14f4cef64330392a6d2d675c8b1db3b645e31f0e",
|
||||||
"sha256:4f704f0998911abf728a7783799444fcbbe8261c4a6c166f667937ae6a8aa522",
|
"sha256:5fa567e99765fe98f4e7d7394ce623e794d7cabb170f2ca2ac5a4174437e90dd",
|
||||||
"sha256:51b44306032045b383a7a8a2c13878de375117946d68dcb54308111f39775a25",
|
"sha256:5fd215c0c7d7aab005221608a3c2b46f58c0285a819565887ee0b718c052aa4e",
|
||||||
"sha256:53d202fd109416ce011578f321460795abfe10bb901b883cafd9b3ef851bacfc",
|
"sha256:6175d1a0559986c6ee3f7fccfc4a90ecd12ba0a383dcc2da30c2b9918d67d8a3",
|
||||||
"sha256:58809e238a8a12a625c70450b48e8767cff9eb67c62e6154a642b21ddf79baea",
|
"sha256:61c4bf1ba021817de12b813338c9be9f0ad5b1e781b9b340a6d29fc13e7c1b5e",
|
||||||
"sha256:5915fcdec0e54ee229926868e9b08586376cae1f5faa9bbaf8faf3561b393d52",
|
"sha256:6537e7c10cc47c595828b8a8be04c72144725c383c4702703ff4e42e44577312",
|
||||||
"sha256:5beb1ee382ad32afe424097de57134175fea3faf847b9af002cc7895be4e2a5a",
|
"sha256:68f962d9b72ce69ea8621f57551b2fa9c70509af757ee3b8105d4f51b92b41a7",
|
||||||
"sha256:5f8ae553cba74085db385d489c7a792ad66f7f9ba2ee85bfa508aeb84cf0ba07",
|
"sha256:7352b9161b33fd0b643ccd1f21f3a3908daaddf414f1c6cb9d3a2fd618bf2572",
|
||||||
"sha256:5fbd612f8a091954a0c8dd4c0b571b973487277d26476f8480bfa4b2a65b5d06",
|
"sha256:796a79f63eca8814ca3317a1ea443645c9ff0d18b188de470ed7ccd45ae79428",
|
||||||
"sha256:6bd818b7ea14bc6e1f06e241e8234508b21edf1b242d49831831a9450e2f35fa",
|
"sha256:79afb6197e2f7f60c4824dd4b2d4c2ec5801ceb6ba9ce5d2c3080e5660d51a4f",
|
||||||
"sha256:6f01ba56b1c0e9d149f9ac85a2f999724895229eb36bd997b61e62999e9b0901",
|
"sha256:7a588d39e0925f6a2bff87154752481273cdb1736270642aeb3635cb9b4cad07",
|
||||||
"sha256:73d2b73584446e66ee633eaad1a56aad577c077f46c35ca3283cd687b7715b0b",
|
"sha256:8748731ad392d736cc9ccac03c9845b13bb07d020a33423fa5b3a36521ac6e4e",
|
||||||
"sha256:7bb92c539a624cf86296dd0c68cd5cc286c9eef2d0c3b8b192b604ce9de20a17",
|
"sha256:8fe7502616b67b234482c3ce276ff26f39ffe88adca2acf0261df4b8454668b4",
|
||||||
"sha256:8165b796df0bd42e10527a3f493c592ba494f16ef3c8b531288e3d0d72c1f6f0",
|
"sha256:9314d5678dcc665330df5b69c1e726a0e49b27df0461c08ca12674bcc19ef136",
|
||||||
"sha256:862264b12ebb65ad8d863d51f17758b1684560b66ab02770d4f0baf2ff75da21",
|
"sha256:9735317685ba6ec7e3754798c8871c2f49aa5e687cc794a0b1d284b2389d1bd5",
|
||||||
"sha256:8902dd6a30173d4ef09954bfcb24b5d7b5190cf14a43170e386979651e09ba19",
|
"sha256:9981706d300c18d8b220995ad22627647be11a4276721c10911e0e9fa44c83e8",
|
||||||
"sha256:8cf717ee42012be8c0cb205dbbf18ffa9003c4cbf4ad078db47b95e10748eec5",
|
"sha256:9e78295f4144f9dacfed4f92935fbe1780021247c2fabf73a819b17f0ccfff8d",
|
||||||
"sha256:8ed9281d1b52628e81393f5eaee24a45cbd64965f41857559c2b7ff19385df51",
|
"sha256:b016ea6b959d3b9556cb401c55a37547135a587db0115635a443b2ce8f1c7228",
|
||||||
"sha256:99b41d18e6b2a48ba949418db48159d7a2e81c5cc290fc934b7d2380515bd0e3",
|
"sha256:b6cf3764c030e5338e7f61f95bd21147963cf6aa16e09d2f74f1fa52013c1206",
|
||||||
"sha256:9cb7fa111d21a6b55cbf633039f7bc2749e74932e3aa7cb7333f675a58a58bf3",
|
"sha256:beccf7b8a10b09c4ae543582c1319c6df47d78fd732f854ac68d518ee1fb97fa",
|
||||||
"sha256:a181e99301a0ae128493a24cfe5cfb5b488c4e0bf2f8702091473d033494d04f",
|
"sha256:c0884920835a033b78d1c73b6d3bbcda8161a900f38a488829a83982925f6c2e",
|
||||||
"sha256:a413a096c4cbac202433c850ee43fa326d2e871b24554da8327b01632673a076",
|
"sha256:c3e757949f268364b96ca894b4c342b41dc6f8f8b66c37878aacef5930db61be",
|
||||||
"sha256:a6b1e54712ba3474f34b7ef7a41e65bd9037ad47916ccb1cc78769bae324c01a",
|
"sha256:ca498687ca46a62ae590253fba634a1fe9836bc56f626852fb2720f334c9e4e5",
|
||||||
"sha256:ade3ca1e5f0ff46b678b66201f7ff477e8fa11fb537f3b55c3f0568fbfe6e718",
|
"sha256:d1d0d98d95dd18fe29dc66808e1accf59f037d5716f86a501fc0256455219668",
|
||||||
"sha256:b0ac3d42cb51c4b12df9c5f0dd2f13a4f24f01943627120ec4d293c9181219ba",
|
"sha256:d21918e9ef11edf36764b93101e2ae8cc82aa5efdc7c5a4e9c6c35a48496d601",
|
||||||
"sha256:b369ead6527d025a0fe7bd3864e46dbee3aa8f652d48df6174f8d0bac9e26e0e",
|
"sha256:d7fed867ee50edf1a0b4a11e8e5d0895150e572af1cd6d315d557758bfa9c057",
|
||||||
"sha256:b57b768feb866f44eeed9f46975f3d6406380275c5ddfe22f531a2bf187eda27",
|
"sha256:db66fc317a046556a96b453a58eced5024af4582a8dbdc0c23ca4dbc0d5b3146",
|
||||||
"sha256:b8d3a03d9bfcaf5b0141d07a88456bb6a4c3ce55c080712fec8418ef3610230e",
|
"sha256:dde0070c40ea8bb3641e811c1cfbf18e265d024deff6de52c5950677a8fb1e0f",
|
||||||
"sha256:bc66f0bf1d7730a17430a50163bb264ba9ded56739112368ba985ddaa9c3bd09",
|
"sha256:df4e745a81c110e7446b1cc8131bf986157770fa405fe90e15e850aaf7619bc8",
|
||||||
"sha256:bf20494da9653f6410213424f5f8ad0ed885e01f7e8e59811f572bdb20b8972e",
|
"sha256:e2213def81a50519d7cc56ed643c9e93e0247f5bbe0d1247d15fa520814a7cd7",
|
||||||
"sha256:c48167910a8f644671de9f2083a23630fbf7a1cb70ce939440cd3328e0919f70",
|
"sha256:ef48e2707fb320c8f139424a596f5b69955a85b178f15af261bab871873bb987",
|
||||||
"sha256:c481b47f6b5845064c65a7bc78bc0860e635a9b055af0df46fdf1c58cebf8e8f",
|
"sha256:f152cbf5b88aaeb836127d920dd0f5e7edff5a66f10c079157306c4343d86c19",
|
||||||
"sha256:c7c8b95bf47db6d19096a5e052ffca0a05f335bc63cef281a6e8fe864d450a72",
|
"sha256:fc0b4d8bfeabd25ea75e94632f5b6e047eef8adaed0c2161ada1e922e7f7cece"
|
||||||
"sha256:c9b8e184898ed014884ca84c70562b4a82cbc63b044d366fedc68bc2b2f3394a",
|
|
||||||
"sha256:cc8ff50b50ce532de2fa7a7daae9dd12f0a699bfcd47f20945364e5c31799fef",
|
|
||||||
"sha256:d541423cdd416b78626b55f123412fcf979d22a2c39fce251b350de38c15c15b",
|
|
||||||
"sha256:dab4d16dfef34b185032580e2f2f89253d302facba093d5fa9dbe04f569c4f4b",
|
|
||||||
"sha256:dacbc52de979f2823a819571f2e3a350a7e36b8cb7484cdb1e289bceaf35305f",
|
|
||||||
"sha256:df57bdbeffe694e7842092c5e2e0bc80fff7f43379d465f932ef36f027179806",
|
|
||||||
"sha256:ed8fe9189d2beb6edc14d3ad19800626e1d9f2d975e436f84e19efb7fa19469b",
|
|
||||||
"sha256:f3ddf056d3ebcf6ce47bdaf56142af51bb7fad09e4af310241e9db7a3a8022e1",
|
|
||||||
"sha256:f8fe4984b431f8621ca53d9380901f62bfb54ff759a1348cd140490ada7b693c",
|
|
||||||
"sha256:fe439416eb6380de434886b00c859304338f8b19f6f54811984f3420a2e03858"
|
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '3.9'",
|
"markers": "python_version >= '3.8'",
|
||||||
"version": "==7.6.4"
|
"version": "==7.5.1"
|
||||||
},
|
},
|
||||||
"exceptiongroup": {
|
"exceptiongroup": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b",
|
"sha256:5258b9ed329c5bbdd31a309f53cbfb0b155341807f6ff7606a1e801a891b29ad",
|
||||||
"sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"
|
"sha256:a4785e48b045528f5bfe627b6ad554ff32def154f42372786903b7abcfe1aa16"
|
||||||
],
|
],
|
||||||
"markers": "python_version < '3.11'",
|
"markers": "python_version < '3.11'",
|
||||||
"version": "==1.2.2"
|
"version": "==1.2.1"
|
||||||
},
|
},
|
||||||
"flake8": {
|
"flake8": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:049d058491e228e03e67b390f311bbf88fce2dbaa8fa673e7aea87b7198b8d38",
|
"sha256:33f96621059e65eec474169085dc92bf26e7b2d47366b70be2f67ab80dc25132",
|
||||||
"sha256:597477df7860daa5aa0fdd84bf5208a043ab96b8e96ab708770ae0364dd03213"
|
"sha256:a6dfbb75e03252917f2473ea9653f7cd799c3064e54d4c8140044c5c065f53c3"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"markers": "python_full_version >= '3.8.1'",
|
"markers": "python_full_version >= '3.8.1'",
|
||||||
"version": "==7.1.1"
|
"version": "==7.0.0"
|
||||||
},
|
},
|
||||||
"iniconfig": {
|
"iniconfig": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@ -305,11 +351,11 @@
|
|||||||
},
|
},
|
||||||
"packaging": {
|
"packaging": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759",
|
"sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5",
|
||||||
"sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"
|
"sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '3.8'",
|
"markers": "python_version >= '3.7'",
|
||||||
"version": "==24.2"
|
"version": "==24.0"
|
||||||
},
|
},
|
||||||
"pluggy": {
|
"pluggy": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@ -321,11 +367,11 @@
|
|||||||
},
|
},
|
||||||
"pycodestyle": {
|
"pycodestyle": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:46f0fb92069a7c28ab7bb558f05bfc0110dac69a0cd23c61ea0040283a9d78b3",
|
"sha256:41ba0e7afc9752dfb53ced5489e89f8186be00e599e712660695b7a75ff2663f",
|
||||||
"sha256:6838eae08bbce4f6accd5d5572075c63626a15ee3e6f842df996bf62f6d73521"
|
"sha256:44fe31000b2d866f2e41841b18528a505fbd7fef9017b04eff4e2648a0fadc67"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '3.8'",
|
"markers": "python_version >= '3.8'",
|
||||||
"version": "==2.12.1"
|
"version": "==2.11.1"
|
||||||
},
|
},
|
||||||
"pyflakes": {
|
"pyflakes": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@ -337,21 +383,21 @@
|
|||||||
},
|
},
|
||||||
"pytest": {
|
"pytest": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:70b98107bd648308a7952b06e6ca9a50bc660be218d53c257cc1fc94fda10181",
|
"sha256:1733f0620f6cda4095bbf0d9ff8022486e91892245bb9e7d5542c018f612f233",
|
||||||
"sha256:a6853c7375b2663155079443d2e45de913a911a11d669df02a50814944db57b2"
|
"sha256:d507d4482197eac0ba2bae2e9babf0672eb333017bcedaa5fb1a3d42c1174b3f"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"markers": "python_version >= '3.8'",
|
"markers": "python_version >= '3.8'",
|
||||||
"version": "==8.3.3"
|
"version": "==8.2.0"
|
||||||
},
|
},
|
||||||
"pytest-cov": {
|
"pytest-cov": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:eee6f1b9e61008bd34975a4d5bab25801eb31898b032dd55addc93e96fcaaa35",
|
"sha256:4f0764a1219df53214206bf1feea4633c3b558a2925c8b59f144f682861ce652",
|
||||||
"sha256:fde0b595ca248bb8e2d76f020b465f3b107c9632e6a1d1705f17834c89dcadc0"
|
"sha256:5837b58e9f6ebd335b0f8060eecce69b662415b16dc503883a02f45dfeb14857"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"markers": "python_version >= '3.9'",
|
"markers": "python_version >= '3.8'",
|
||||||
"version": "==6.0.0"
|
"version": "==5.0.0"
|
||||||
},
|
},
|
||||||
"python-dateutil": {
|
"python-dateutil": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@ -363,11 +409,11 @@
|
|||||||
},
|
},
|
||||||
"s3transfer": {
|
"s3transfer": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:263ed587a5803c6c708d3ce44dc4dfedaab4c1a32e8329bab818933d79ddcf5d",
|
"sha256:5683916b4c724f799e600f41dd9e10a9ff19871bf87623cc8f491cb4f5fa0a19",
|
||||||
"sha256:4f50ed74ab84d474ce614475e0b8d5047ff080810aac5d01ea25231cfc944b0c"
|
"sha256:ceb252b11bcf87080fb7850a224fb6e05c8a776bab8f2b64b7f25b969464839d"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '3.8'",
|
"markers": "python_version >= '3.8'",
|
||||||
"version": "==0.10.3"
|
"version": "==0.10.1"
|
||||||
},
|
},
|
||||||
"six": {
|
"six": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@ -379,19 +425,19 @@
|
|||||||
},
|
},
|
||||||
"tomli": {
|
"tomli": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:2ebe24485c53d303f690b0ec092806a085f07af5a5aa1464f3931eec36caaa38",
|
"sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc",
|
||||||
"sha256:d46d457a85337051c36524bc5349dd91b1877838e2979ac5ced3e710ed8a60ed"
|
"sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"
|
||||||
],
|
],
|
||||||
"markers": "python_version < '3.11'",
|
"markers": "python_version < '3.11'",
|
||||||
"version": "==2.0.2"
|
"version": "==2.0.1"
|
||||||
},
|
},
|
||||||
"urllib3": {
|
"urllib3": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:0ed14ccfbf1c30a9072c7ca157e4319b70d65f623e91e7b32fadb2853431016e",
|
"sha256:34b97092d7e0a3a8cf7cd10e386f401b3737364026c45e622aa02903dffe0f07",
|
||||||
"sha256:40c2dc0c681e47eb8f90e7e27bf6ff7df2e677421fd46756da1161c39ca70d32"
|
"sha256:f8ecc1bba5667413457c529ab955bf8c67b45db799d159066261719e328580a0"
|
||||||
],
|
],
|
||||||
"markers": "python_version < '3.10'",
|
"markers": "python_version < '3.10'",
|
||||||
"version": "==1.26.20"
|
"version": "==1.26.18"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
218
ecs/jskult-batch-laundering/Pipfile.lock
generated
218
ecs/jskult-batch-laundering/Pipfile.lock
generated
@ -16,115 +16,171 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"default": {
|
"default": {
|
||||||
|
"greenlet": {
|
||||||
|
"hashes": [
|
||||||
|
"sha256:01bc7ea167cf943b4c802068e178bbf70ae2e8c080467070d01bfa02f337ee67",
|
||||||
|
"sha256:0448abc479fab28b00cb472d278828b3ccca164531daab4e970a0458786055d6",
|
||||||
|
"sha256:086152f8fbc5955df88382e8a75984e2bb1c892ad2e3c80a2508954e52295257",
|
||||||
|
"sha256:098d86f528c855ead3479afe84b49242e174ed262456c342d70fc7f972bc13c4",
|
||||||
|
"sha256:149e94a2dd82d19838fe4b2259f1b6b9957d5ba1b25640d2380bea9c5df37676",
|
||||||
|
"sha256:1551a8195c0d4a68fac7a4325efac0d541b48def35feb49d803674ac32582f61",
|
||||||
|
"sha256:15d79dd26056573940fcb8c7413d84118086f2ec1a8acdfa854631084393efcc",
|
||||||
|
"sha256:1996cb9306c8595335bb157d133daf5cf9f693ef413e7673cb07e3e5871379ca",
|
||||||
|
"sha256:1a7191e42732df52cb5f39d3527217e7ab73cae2cb3694d241e18f53d84ea9a7",
|
||||||
|
"sha256:1ea188d4f49089fc6fb283845ab18a2518d279c7cd9da1065d7a84e991748728",
|
||||||
|
"sha256:1f672519db1796ca0d8753f9e78ec02355e862d0998193038c7073045899f305",
|
||||||
|
"sha256:2516a9957eed41dd8f1ec0c604f1cdc86758b587d964668b5b196a9db5bfcde6",
|
||||||
|
"sha256:2797aa5aedac23af156bbb5a6aa2cd3427ada2972c828244eb7d1b9255846379",
|
||||||
|
"sha256:2dd6e660effd852586b6a8478a1d244b8dc90ab5b1321751d2ea15deb49ed414",
|
||||||
|
"sha256:3ddc0f794e6ad661e321caa8d2f0a55ce01213c74722587256fb6566049a8b04",
|
||||||
|
"sha256:3ed7fb269f15dc662787f4119ec300ad0702fa1b19d2135a37c2c4de6fadfd4a",
|
||||||
|
"sha256:419b386f84949bf0e7c73e6032e3457b82a787c1ab4a0e43732898a761cc9dbf",
|
||||||
|
"sha256:43374442353259554ce33599da8b692d5aa96f8976d567d4badf263371fbe491",
|
||||||
|
"sha256:52f59dd9c96ad2fc0d5724107444f76eb20aaccb675bf825df6435acb7703559",
|
||||||
|
"sha256:57e8974f23e47dac22b83436bdcf23080ade568ce77df33159e019d161ce1d1e",
|
||||||
|
"sha256:5b51e85cb5ceda94e79d019ed36b35386e8c37d22f07d6a751cb659b180d5274",
|
||||||
|
"sha256:649dde7de1a5eceb258f9cb00bdf50e978c9db1b996964cd80703614c86495eb",
|
||||||
|
"sha256:64d7675ad83578e3fc149b617a444fab8efdafc9385471f868eb5ff83e446b8b",
|
||||||
|
"sha256:68834da854554926fbedd38c76e60c4a2e3198c6fbed520b106a8986445caaf9",
|
||||||
|
"sha256:6b66c9c1e7ccabad3a7d037b2bcb740122a7b17a53734b7d72a344ce39882a1b",
|
||||||
|
"sha256:70fb482fdf2c707765ab5f0b6655e9cfcf3780d8d87355a063547b41177599be",
|
||||||
|
"sha256:7170375bcc99f1a2fbd9c306f5be8764eaf3ac6b5cb968862cad4c7057756506",
|
||||||
|
"sha256:73a411ef564e0e097dbe7e866bb2dda0f027e072b04da387282b02c308807405",
|
||||||
|
"sha256:77457465d89b8263bca14759d7c1684df840b6811b2499838cc5b040a8b5b113",
|
||||||
|
"sha256:7f362975f2d179f9e26928c5b517524e89dd48530a0202570d55ad6ca5d8a56f",
|
||||||
|
"sha256:81bb9c6d52e8321f09c3d165b2a78c680506d9af285bfccbad9fb7ad5a5da3e5",
|
||||||
|
"sha256:881b7db1ebff4ba09aaaeae6aa491daeb226c8150fc20e836ad00041bcb11230",
|
||||||
|
"sha256:894393ce10ceac937e56ec00bb71c4c2f8209ad516e96033e4b3b1de270e200d",
|
||||||
|
"sha256:99bf650dc5d69546e076f413a87481ee1d2d09aaaaaca058c9251b6d8c14783f",
|
||||||
|
"sha256:9da2bd29ed9e4f15955dd1595ad7bc9320308a3b766ef7f837e23ad4b4aac31a",
|
||||||
|
"sha256:afaff6cf5200befd5cec055b07d1c0a5a06c040fe5ad148abcd11ba6ab9b114e",
|
||||||
|
"sha256:b1b5667cced97081bf57b8fa1d6bfca67814b0afd38208d52538316e9422fc61",
|
||||||
|
"sha256:b37eef18ea55f2ffd8f00ff8fe7c8d3818abd3e25fb73fae2ca3b672e333a7a6",
|
||||||
|
"sha256:b542be2440edc2d48547b5923c408cbe0fc94afb9f18741faa6ae970dbcb9b6d",
|
||||||
|
"sha256:b7dcbe92cc99f08c8dd11f930de4d99ef756c3591a5377d1d9cd7dd5e896da71",
|
||||||
|
"sha256:b7f009caad047246ed379e1c4dbcb8b020f0a390667ea74d2387be2998f58a22",
|
||||||
|
"sha256:bba5387a6975598857d86de9eac14210a49d554a77eb8261cc68b7d082f78ce2",
|
||||||
|
"sha256:c5e1536de2aad7bf62e27baf79225d0d64360d4168cf2e6becb91baf1ed074f3",
|
||||||
|
"sha256:c5ee858cfe08f34712f548c3c363e807e7186f03ad7a5039ebadb29e8c6be067",
|
||||||
|
"sha256:c9db1c18f0eaad2f804728c67d6c610778456e3e1cc4ab4bbd5eeb8e6053c6fc",
|
||||||
|
"sha256:d353cadd6083fdb056bb46ed07e4340b0869c305c8ca54ef9da3421acbdf6881",
|
||||||
|
"sha256:d46677c85c5ba00a9cb6f7a00b2bfa6f812192d2c9f7d9c4f6a55b60216712f3",
|
||||||
|
"sha256:d4d1ac74f5c0c0524e4a24335350edad7e5f03b9532da7ea4d3c54d527784f2e",
|
||||||
|
"sha256:d73a9fe764d77f87f8ec26a0c85144d6a951a6c438dfe50487df5595c6373eac",
|
||||||
|
"sha256:da70d4d51c8b306bb7a031d5cff6cc25ad253affe89b70352af5f1cb68e74b53",
|
||||||
|
"sha256:daf3cb43b7cf2ba96d614252ce1684c1bccee6b2183a01328c98d36fcd7d5cb0",
|
||||||
|
"sha256:dca1e2f3ca00b84a396bc1bce13dd21f680f035314d2379c4160c98153b2059b",
|
||||||
|
"sha256:dd4f49ae60e10adbc94b45c0b5e6a179acc1736cf7a90160b404076ee283cf83",
|
||||||
|
"sha256:e1f145462f1fa6e4a4ae3c0f782e580ce44d57c8f2c7aae1b6fa88c0b2efdb41",
|
||||||
|
"sha256:e3391d1e16e2a5a1507d83e4a8b100f4ee626e8eca43cf2cadb543de69827c4c",
|
||||||
|
"sha256:fcd2469d6a2cf298f198f0487e0a5b1a47a42ca0fa4dfd1b6862c999f018ebbf",
|
||||||
|
"sha256:fd096eb7ffef17c456cfa587523c5f92321ae02427ff955bebe9e3c63bc9f0da",
|
||||||
|
"sha256:fe754d231288e1e64323cfad462fcee8f0288654c10bdf4f603a39ed923bef33"
|
||||||
|
],
|
||||||
|
"markers": "platform_machine == 'aarch64' or (platform_machine == 'ppc64le' or (platform_machine == 'x86_64' or (platform_machine == 'amd64' or (platform_machine == 'AMD64' or (platform_machine == 'win32' or platform_machine == 'WIN32')))))",
|
||||||
|
"version": "==3.0.3"
|
||||||
|
},
|
||||||
"pymysql": {
|
"pymysql": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:4de15da4c61dc132f4fb9ab763063e693d521a80fd0e87943b9a453dd4c19d6c",
|
"sha256:4f13a7df8bf36a51e81dd9f3605fede45a4878fe02f9236349fd82a3f0612f96",
|
||||||
"sha256:e127611aaf2b417403c60bf4dc570124aeb4a57f5f37b8e95ae399a42f904cd0"
|
"sha256:8969ec6d763c856f7073c4c64662882675702efcb114b4bcbb955aea3a069fa7"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"markers": "python_version >= '3.7'",
|
"markers": "python_version >= '3.7'",
|
||||||
"version": "==1.1.1"
|
"version": "==1.1.0"
|
||||||
},
|
},
|
||||||
"sqlalchemy": {
|
"sqlalchemy": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:023b3ee6169969beea3bb72312e44d8b7c27c75b347942d943cf49397b7edeb5",
|
"sha256:0094c5dc698a5f78d3d1539853e8ecec02516b62b8223c970c86d44e7a80f6c7",
|
||||||
"sha256:03968a349db483936c249f4d9cd14ff2c296adfa1290b660ba6516f973139582",
|
"sha256:0138c5c16be3600923fa2169532205d18891b28afa817cb49b50e08f62198bb8",
|
||||||
"sha256:05132c906066142103b83d9c250b60508af556982a385d96c4eaa9fb9720ac2b",
|
"sha256:0a089e218654e740a41388893e090d2e2c22c29028c9d1353feb38638820bbeb",
|
||||||
"sha256:087b6b52de812741c27231b5a3586384d60c353fbd0e2f81405a814b5591dc8b",
|
"sha256:0b3f4c438e37d22b83e640f825ef0f37b95db9aa2d68203f2c9549375d0b2260",
|
||||||
"sha256:0b3dbf1e7e9bc95f4bac5e2fb6d3fb2f083254c3fdd20a1789af965caf2d2348",
|
"sha256:16863e2b132b761891d6c49f0a0f70030e0bcac4fd208117f6b7e053e68668d0",
|
||||||
"sha256:118c16cd3f1b00c76d69343e38602006c9cfb9998fa4f798606d28d63f23beda",
|
"sha256:1f9a727312ff6ad5248a4367358e2cf7e625e98b1028b1d7ab7b806b7d757513",
|
||||||
"sha256:1936af879e3db023601196a1684d28e12f19ccf93af01bf3280a3262c4b6b4e5",
|
"sha256:2383146973a15435e4717f94c7509982770e3e54974c71f76500a0136f22810b",
|
||||||
"sha256:1e3f196a0c59b0cae9a0cd332eb1a4bda4696e863f4f1cf84ab0347992c548c2",
|
"sha256:2753743c2afd061bb95a61a51bbb6a1a11ac1c44292fad898f10c9839a7f75b2",
|
||||||
"sha256:23a8825495d8b195c4aa9ff1c430c28f2c821e8c5e2d98089228af887e5d7e29",
|
"sha256:296230899df0b77dec4eb799bcea6fbe39a43707ce7bb166519c97b583cfcab3",
|
||||||
"sha256:293cd444d82b18da48c9f71cd7005844dbbd06ca19be1ccf6779154439eec0b8",
|
"sha256:2a4f4da89c74435f2bc61878cd08f3646b699e7d2eba97144030d1be44e27584",
|
||||||
"sha256:32f9dc8c44acdee06c8fc6440db9eae8b4af8b01e4b1aee7bdd7241c22edff4f",
|
"sha256:2b1708916730f4830bc69d6f49d37f7698b5bd7530aca7f04f785f8849e95255",
|
||||||
"sha256:34ea30ab3ec98355235972dadc497bb659cc75f8292b760394824fab9cf39826",
|
"sha256:2ecabd9ccaa6e914e3dbb2aa46b76dede7eadc8cbf1b8083c94d936bcd5ffb49",
|
||||||
"sha256:3d3549fc3e40667ec7199033a4e40a2f669898a00a7b18a931d3efb4c7900504",
|
"sha256:311710f9a2ee235f1403537b10c7687214bb1f2b9ebb52702c5aa4a77f0b3af7",
|
||||||
"sha256:41836fe661cc98abfae476e14ba1906220f92c4e528771a8a3ae6a151242d2ae",
|
"sha256:37a4b4fb0dd4d2669070fb05b8b8824afd0af57587393015baee1cf9890242d9",
|
||||||
"sha256:4d44522480e0bf34c3d63167b8cfa7289c1c54264c2950cc5fc26e7850967e45",
|
"sha256:3a365eda439b7a00732638f11072907c1bc8e351c7665e7e5da91b169af794af",
|
||||||
"sha256:4eeb195cdedaf17aab6b247894ff2734dcead6c08f748e617bfe05bd5a218443",
|
"sha256:3b48154678e76445c7ded1896715ce05319f74b1e73cf82d4f8b59b46e9c0ddc",
|
||||||
"sha256:4f67766965996e63bb46cfbf2ce5355fc32d9dd3b8ad7e536a920ff9ee422e23",
|
"sha256:3b69e934f0f2b677ec111b4d83f92dc1a3210a779f69bf905273192cf4ed433e",
|
||||||
"sha256:57df5dc6fdb5ed1a88a1ed2195fd31927e705cad62dedd86b46972752a80f576",
|
"sha256:3cb5a646930c5123f8461f6468901573f334c2c63c795b9af350063a736d0134",
|
||||||
"sha256:598d9ebc1e796431bbd068e41e4de4dc34312b7aa3292571bb3674a0cb415dd1",
|
"sha256:408f8b0e2c04677e9c93f40eef3ab22f550fecb3011b187f66a096395ff3d9fd",
|
||||||
"sha256:5b14e97886199c1f52c14629c11d90c11fbb09e9334fa7bb5f6d068d9ced0ce0",
|
"sha256:40ad017c672c00b9b663fcfcd5f0864a0a97828e2ee7ab0c140dc84058d194cf",
|
||||||
"sha256:5e22575d169529ac3e0a120cf050ec9daa94b6a9597993d1702884f6954a7d71",
|
"sha256:5a79d65395ac5e6b0c2890935bad892eabb911c4aa8e8015067ddb37eea3d56c",
|
||||||
"sha256:60c578c45c949f909a4026b7807044e7e564adf793537fc762b2489d522f3d11",
|
"sha256:5a8e3b0a7e09e94be7510d1661339d6b52daf202ed2f5b1f9f48ea34ee6f2d57",
|
||||||
"sha256:6145afea51ff0af7f2564a05fa95eb46f542919e6523729663a5d285ecb3cf5e",
|
"sha256:69c9db1ce00e59e8dd09d7bae852a9add716efdc070a3e2068377e6ff0d6fdaa",
|
||||||
"sha256:6375cd674fe82d7aa9816d1cb96ec592bac1726c11e0cafbf40eeee9a4516b5f",
|
"sha256:7108d569d3990c71e26a42f60474b4c02c8586c4681af5fd67e51a044fdea86a",
|
||||||
"sha256:6854175807af57bdb6425e47adbce7d20a4d79bbfd6f6d6519cd10bb7109a7f8",
|
"sha256:77d2edb1f54aff37e3318f611637171e8ec71472f1fdc7348b41dcb226f93d90",
|
||||||
"sha256:6ab60a5089a8f02009f127806f777fca82581c49e127f08413a66056bd9166dd",
|
"sha256:7d74336c65705b986d12a7e337ba27ab2b9d819993851b140efdf029248e818e",
|
||||||
"sha256:725875a63abf7c399d4548e686debb65cdc2549e1825437096a0af1f7e374814",
|
"sha256:8409de825f2c3b62ab15788635ccaec0c881c3f12a8af2b12ae4910a0a9aeef6",
|
||||||
"sha256:7492967c3386df69f80cf67efd665c0f667cee67032090fe01d7d74b0e19bb08",
|
"sha256:955991a09f0992c68a499791a753523f50f71a6885531568404fa0f231832aa0",
|
||||||
"sha256:81965cc20848ab06583506ef54e37cf15c83c7e619df2ad16807c03100745dea",
|
"sha256:99650e9f4cf3ad0d409fed3eec4f071fadd032e9a5edc7270cd646a26446feeb",
|
||||||
"sha256:81c24e0c0fde47a9723c81d5806569cddef103aebbf79dbc9fcbb617153dea30",
|
"sha256:9a5baf9267b752390252889f0c802ea13b52dfee5e369527da229189b8bd592e",
|
||||||
"sha256:81eedafa609917040d39aa9332e25881a8e7a0862495fcdf2023a9667209deda",
|
"sha256:a0ef36b28534f2a5771191be6edb44cc2673c7b2edf6deac6562400288664221",
|
||||||
"sha256:81f413674d85cfd0dfcd6512e10e0f33c19c21860342a4890c3a2b59479929f9",
|
"sha256:a1429a4b0f709f19ff3b0cf13675b2b9bfa8a7e79990003207a011c0db880a13",
|
||||||
"sha256:8280856dd7c6a68ab3a164b4a4b1c51f7691f6d04af4d4ca23d6ecf2261b7923",
|
"sha256:a7bfc726d167f425d4c16269a9a10fe8630ff6d14b683d588044dcef2d0f6be7",
|
||||||
"sha256:82ca366a844eb551daff9d2e6e7a9e5e76d2612c8564f58db6c19a726869c1df",
|
"sha256:a943d297126c9230719c27fcbbeab57ecd5d15b0bd6bfd26e91bfcfe64220621",
|
||||||
"sha256:8b4af17bda11e907c51d10686eda89049f9ce5669b08fbe71a29747f1e876036",
|
"sha256:ae8c62fe2480dd61c532ccafdbce9b29dacc126fe8be0d9a927ca3e699b9491a",
|
||||||
"sha256:90144d3b0c8b139408da50196c5cad2a6909b51b23df1f0538411cd23ffa45d3",
|
"sha256:b60203c63e8f984df92035610c5fb76d941254cf5d19751faab7d33b21e5ddc0",
|
||||||
"sha256:906e6b0d7d452e9a98e5ab8507c0da791856b2380fdee61b765632bb8698026f",
|
"sha256:b6bf767d14b77f6a18b6982cbbf29d71bede087edae495d11ab358280f304d8e",
|
||||||
"sha256:90c11ceb9a1f482c752a71f203a81858625d8df5746d787a4786bca4ffdf71c6",
|
"sha256:b6c7ec2b1f4969fc19b65b7059ed00497e25f54069407a8701091beb69e591a5",
|
||||||
"sha256:911cc493ebd60de5f285bcae0491a60b4f2a9f0f5c270edd1c4dbaef7a38fc04",
|
"sha256:bba002a9447b291548e8d66fd8c96a6a7ed4f2def0bb155f4f0a1309fd2735d5",
|
||||||
"sha256:9a420a91913092d1e20c86a2f5f1fc85c1a8924dbcaf5e0586df8aceb09c9cc2",
|
"sha256:bc0c53579650a891f9b83fa3cecd4e00218e071d0ba00c4890f5be0c34887ed3",
|
||||||
"sha256:9f8c9fdd15a55d9465e590a402f42082705d66b05afc3ffd2d2eb3c6ba919560",
|
"sha256:c4f61ada6979223013d9ab83a3ed003ded6959eae37d0d685db2c147e9143797",
|
||||||
"sha256:a104c5694dfd2d864a6f91b0956eb5d5883234119cb40010115fd45a16da5e70",
|
"sha256:c62d401223f468eb4da32627bffc0c78ed516b03bb8a34a58be54d618b74d472",
|
||||||
"sha256:a373a400f3e9bac95ba2a06372c4fd1412a7cee53c37fc6c05f829bf672b8769",
|
"sha256:e42203d8d20dc704604862977b1470a122e4892791fe3ed165f041e4bf447a1b",
|
||||||
"sha256:a62448526dd9ed3e3beedc93df9bb6b55a436ed1474db31a2af13b313a70a7e1",
|
"sha256:edc16a50f5e1b7a06a2dcc1f2205b0b961074c123ed17ebda726f376a5ab0953",
|
||||||
"sha256:a8808d5cf866c781150d36a3c8eb3adccfa41a8105d031bf27e92c251e3969d6",
|
"sha256:efedba7e13aa9a6c8407c48facfdfa108a5a4128e35f4c68f20c3407e4376aa9",
|
||||||
"sha256:b1f09b6821406ea1f94053f346f28f8215e293344209129a9c0fcc3578598d7b",
|
"sha256:f1dc3eabd8c0232ee8387fbe03e0a62220a6f089e278b1f0aaf5e2d6210741ad",
|
||||||
"sha256:b2ac41acfc8d965fb0c464eb8f44995770239668956dc4cdf502d1b1ffe0d747",
|
"sha256:f69e4c756ee2686767eb80f94c0125c8b0a0b87ede03eacc5c8ae3b54b99dc46",
|
||||||
"sha256:b46fa6eae1cd1c20e6e6f44e19984d438b6b2d8616d21d783d150df714f44078",
|
"sha256:f7703c2010355dd28f53deb644a05fc30f796bd8598b43f0ba678878780b6e4c",
|
||||||
"sha256:b50eab9994d64f4a823ff99a0ed28a6903224ddbe7fef56a6dd865eec9243440",
|
"sha256:fa561138a64f949f3e889eb9ab8c58e1504ab351d6cf55259dc4c248eaa19da6"
|
||||||
"sha256:bfc9064f6658a3d1cadeaa0ba07570b83ce6801a1314985bf98ec9b95d74e15f",
|
|
||||||
"sha256:c0b0e5e1b5d9f3586601048dd68f392dc0cc99a59bb5faf18aab057ce00d00b2",
|
|
||||||
"sha256:c153265408d18de4cc5ded1941dcd8315894572cddd3c58df5d5b5705b3fa28d",
|
|
||||||
"sha256:d4ae769b9c1c7757e4ccce94b0641bc203bbdf43ba7a2413ab2523d8d047d8dc",
|
|
||||||
"sha256:dc56c9788617b8964ad02e8fcfeed4001c1f8ba91a9e1f31483c0dffb207002a",
|
|
||||||
"sha256:dd5ec3aa6ae6e4d5b5de9357d2133c07be1aff6405b136dad753a16afb6717dd",
|
|
||||||
"sha256:edba70118c4be3c2b1f90754d308d0b79c6fe2c0fdc52d8ddf603916f83f4db9",
|
|
||||||
"sha256:ff8e80c4c4932c10493ff97028decfdb622de69cae87e0f127a7ebe32b4069c6"
|
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"markers": "python_version >= '3.7'",
|
"markers": "python_version >= '3.7'",
|
||||||
"version": "==2.0.41"
|
"version": "==2.0.30"
|
||||||
},
|
},
|
||||||
"tenacity": {
|
"tenacity": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:1169d376c297e7de388d18b4481760d478b0e99a777cad3a9c86e556f4b697cb",
|
"sha256:3649f6443dbc0d9b01b9d8020a9c4ec7a1ff5f6f3c6c8a036ef371f573fe9185",
|
||||||
"sha256:f77bf36710d8b73a50b2dd155c97b870017ad21afe6ab300326b0371b3b05138"
|
"sha256:953d4e6ad24357bceffbc9707bc74349aca9d245f68eb65419cf0c249a1949a2"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"markers": "python_version >= '3.9'",
|
"markers": "python_version >= '3.8'",
|
||||||
"version": "==9.1.2"
|
"version": "==8.3.0"
|
||||||
},
|
},
|
||||||
"typing-extensions": {
|
"typing-extensions": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:8676b788e32f02ab42d9e7c61324048ae4c6d844a399eebace3d4979d75ceef4",
|
"sha256:83f085bd5ca59c80295fc2a82ab5dac679cbe02b9f33f7d83af68e241bea51b0",
|
||||||
"sha256:a1514509136dd0b477638fc68d6a91497af5076466ad0fa6c338e44e359944af"
|
"sha256:c1f94d72897edaf4ce775bb7558d5b79d8126906a14ea5ed1635921406c0387a"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '3.9'",
|
"markers": "python_version >= '3.8'",
|
||||||
"version": "==4.14.0"
|
"version": "==4.11.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"develop": {
|
"develop": {
|
||||||
"autopep8": {
|
"autopep8": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:8d6c87eba648fdcfc83e29b788910b8643171c395d9c4bcf115ece035b9c9dda",
|
"sha256:1fa8964e4618929488f4ec36795c7ff12924a68b8bf01366c094fc52f770b6e7",
|
||||||
"sha256:a203fe0fcad7939987422140ab17a930f684763bf7335bdb6709991dd7ef6c2d"
|
"sha256:2bb76888c5edbcafe6aabab3c47ba534f5a2c2d245c2eddced4a30c4b4946357"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"markers": "python_version >= '3.8'",
|
"markers": "python_version >= '3.8'",
|
||||||
"version": "==2.3.1"
|
"version": "==2.1.0"
|
||||||
},
|
},
|
||||||
"flake8": {
|
"flake8": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:049d058491e228e03e67b390f311bbf88fce2dbaa8fa673e7aea87b7198b8d38",
|
"sha256:33f96621059e65eec474169085dc92bf26e7b2d47366b70be2f67ab80dc25132",
|
||||||
"sha256:597477df7860daa5aa0fdd84bf5208a043ab96b8e96ab708770ae0364dd03213"
|
"sha256:a6dfbb75e03252917f2473ea9653f7cd799c3064e54d4c8140044c5c065f53c3"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"markers": "python_full_version >= '3.8.1'",
|
"markers": "python_full_version >= '3.8.1'",
|
||||||
"version": "==7.1.1"
|
"version": "==7.0.0"
|
||||||
},
|
},
|
||||||
"mccabe": {
|
"mccabe": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@ -136,11 +192,11 @@
|
|||||||
},
|
},
|
||||||
"pycodestyle": {
|
"pycodestyle": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:46f0fb92069a7c28ab7bb558f05bfc0110dac69a0cd23c61ea0040283a9d78b3",
|
"sha256:41ba0e7afc9752dfb53ced5489e89f8186be00e599e712660695b7a75ff2663f",
|
||||||
"sha256:6838eae08bbce4f6accd5d5572075c63626a15ee3e6f842df996bf62f6d73521"
|
"sha256:44fe31000b2d866f2e41841b18528a505fbd7fef9017b04eff4e2648a0fadc67"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '3.8'",
|
"markers": "python_version >= '3.8'",
|
||||||
"version": "==2.12.1"
|
"version": "==2.11.1"
|
||||||
},
|
},
|
||||||
"pyflakes": {
|
"pyflakes": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@ -152,11 +208,11 @@
|
|||||||
},
|
},
|
||||||
"tomli": {
|
"tomli": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:2ebe24485c53d303f690b0ec092806a085f07af5a5aa1464f3931eec36caaa38",
|
"sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc",
|
||||||
"sha256:d46d457a85337051c36524bc5349dd91b1877838e2979ac5ced3e710ed8a60ed"
|
"sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"
|
||||||
],
|
],
|
||||||
"markers": "python_version < '3.11'",
|
"markers": "python_version < '3.11'",
|
||||||
"version": "==2.0.2"
|
"version": "==2.0.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
218
ecs/jskult-dbdump/Pipfile.lock
generated
218
ecs/jskult-dbdump/Pipfile.lock
generated
@ -16,115 +16,171 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"default": {
|
"default": {
|
||||||
|
"greenlet": {
|
||||||
|
"hashes": [
|
||||||
|
"sha256:01bc7ea167cf943b4c802068e178bbf70ae2e8c080467070d01bfa02f337ee67",
|
||||||
|
"sha256:0448abc479fab28b00cb472d278828b3ccca164531daab4e970a0458786055d6",
|
||||||
|
"sha256:086152f8fbc5955df88382e8a75984e2bb1c892ad2e3c80a2508954e52295257",
|
||||||
|
"sha256:098d86f528c855ead3479afe84b49242e174ed262456c342d70fc7f972bc13c4",
|
||||||
|
"sha256:149e94a2dd82d19838fe4b2259f1b6b9957d5ba1b25640d2380bea9c5df37676",
|
||||||
|
"sha256:1551a8195c0d4a68fac7a4325efac0d541b48def35feb49d803674ac32582f61",
|
||||||
|
"sha256:15d79dd26056573940fcb8c7413d84118086f2ec1a8acdfa854631084393efcc",
|
||||||
|
"sha256:1996cb9306c8595335bb157d133daf5cf9f693ef413e7673cb07e3e5871379ca",
|
||||||
|
"sha256:1a7191e42732df52cb5f39d3527217e7ab73cae2cb3694d241e18f53d84ea9a7",
|
||||||
|
"sha256:1ea188d4f49089fc6fb283845ab18a2518d279c7cd9da1065d7a84e991748728",
|
||||||
|
"sha256:1f672519db1796ca0d8753f9e78ec02355e862d0998193038c7073045899f305",
|
||||||
|
"sha256:2516a9957eed41dd8f1ec0c604f1cdc86758b587d964668b5b196a9db5bfcde6",
|
||||||
|
"sha256:2797aa5aedac23af156bbb5a6aa2cd3427ada2972c828244eb7d1b9255846379",
|
||||||
|
"sha256:2dd6e660effd852586b6a8478a1d244b8dc90ab5b1321751d2ea15deb49ed414",
|
||||||
|
"sha256:3ddc0f794e6ad661e321caa8d2f0a55ce01213c74722587256fb6566049a8b04",
|
||||||
|
"sha256:3ed7fb269f15dc662787f4119ec300ad0702fa1b19d2135a37c2c4de6fadfd4a",
|
||||||
|
"sha256:419b386f84949bf0e7c73e6032e3457b82a787c1ab4a0e43732898a761cc9dbf",
|
||||||
|
"sha256:43374442353259554ce33599da8b692d5aa96f8976d567d4badf263371fbe491",
|
||||||
|
"sha256:52f59dd9c96ad2fc0d5724107444f76eb20aaccb675bf825df6435acb7703559",
|
||||||
|
"sha256:57e8974f23e47dac22b83436bdcf23080ade568ce77df33159e019d161ce1d1e",
|
||||||
|
"sha256:5b51e85cb5ceda94e79d019ed36b35386e8c37d22f07d6a751cb659b180d5274",
|
||||||
|
"sha256:649dde7de1a5eceb258f9cb00bdf50e978c9db1b996964cd80703614c86495eb",
|
||||||
|
"sha256:64d7675ad83578e3fc149b617a444fab8efdafc9385471f868eb5ff83e446b8b",
|
||||||
|
"sha256:68834da854554926fbedd38c76e60c4a2e3198c6fbed520b106a8986445caaf9",
|
||||||
|
"sha256:6b66c9c1e7ccabad3a7d037b2bcb740122a7b17a53734b7d72a344ce39882a1b",
|
||||||
|
"sha256:70fb482fdf2c707765ab5f0b6655e9cfcf3780d8d87355a063547b41177599be",
|
||||||
|
"sha256:7170375bcc99f1a2fbd9c306f5be8764eaf3ac6b5cb968862cad4c7057756506",
|
||||||
|
"sha256:73a411ef564e0e097dbe7e866bb2dda0f027e072b04da387282b02c308807405",
|
||||||
|
"sha256:77457465d89b8263bca14759d7c1684df840b6811b2499838cc5b040a8b5b113",
|
||||||
|
"sha256:7f362975f2d179f9e26928c5b517524e89dd48530a0202570d55ad6ca5d8a56f",
|
||||||
|
"sha256:81bb9c6d52e8321f09c3d165b2a78c680506d9af285bfccbad9fb7ad5a5da3e5",
|
||||||
|
"sha256:881b7db1ebff4ba09aaaeae6aa491daeb226c8150fc20e836ad00041bcb11230",
|
||||||
|
"sha256:894393ce10ceac937e56ec00bb71c4c2f8209ad516e96033e4b3b1de270e200d",
|
||||||
|
"sha256:99bf650dc5d69546e076f413a87481ee1d2d09aaaaaca058c9251b6d8c14783f",
|
||||||
|
"sha256:9da2bd29ed9e4f15955dd1595ad7bc9320308a3b766ef7f837e23ad4b4aac31a",
|
||||||
|
"sha256:afaff6cf5200befd5cec055b07d1c0a5a06c040fe5ad148abcd11ba6ab9b114e",
|
||||||
|
"sha256:b1b5667cced97081bf57b8fa1d6bfca67814b0afd38208d52538316e9422fc61",
|
||||||
|
"sha256:b37eef18ea55f2ffd8f00ff8fe7c8d3818abd3e25fb73fae2ca3b672e333a7a6",
|
||||||
|
"sha256:b542be2440edc2d48547b5923c408cbe0fc94afb9f18741faa6ae970dbcb9b6d",
|
||||||
|
"sha256:b7dcbe92cc99f08c8dd11f930de4d99ef756c3591a5377d1d9cd7dd5e896da71",
|
||||||
|
"sha256:b7f009caad047246ed379e1c4dbcb8b020f0a390667ea74d2387be2998f58a22",
|
||||||
|
"sha256:bba5387a6975598857d86de9eac14210a49d554a77eb8261cc68b7d082f78ce2",
|
||||||
|
"sha256:c5e1536de2aad7bf62e27baf79225d0d64360d4168cf2e6becb91baf1ed074f3",
|
||||||
|
"sha256:c5ee858cfe08f34712f548c3c363e807e7186f03ad7a5039ebadb29e8c6be067",
|
||||||
|
"sha256:c9db1c18f0eaad2f804728c67d6c610778456e3e1cc4ab4bbd5eeb8e6053c6fc",
|
||||||
|
"sha256:d353cadd6083fdb056bb46ed07e4340b0869c305c8ca54ef9da3421acbdf6881",
|
||||||
|
"sha256:d46677c85c5ba00a9cb6f7a00b2bfa6f812192d2c9f7d9c4f6a55b60216712f3",
|
||||||
|
"sha256:d4d1ac74f5c0c0524e4a24335350edad7e5f03b9532da7ea4d3c54d527784f2e",
|
||||||
|
"sha256:d73a9fe764d77f87f8ec26a0c85144d6a951a6c438dfe50487df5595c6373eac",
|
||||||
|
"sha256:da70d4d51c8b306bb7a031d5cff6cc25ad253affe89b70352af5f1cb68e74b53",
|
||||||
|
"sha256:daf3cb43b7cf2ba96d614252ce1684c1bccee6b2183a01328c98d36fcd7d5cb0",
|
||||||
|
"sha256:dca1e2f3ca00b84a396bc1bce13dd21f680f035314d2379c4160c98153b2059b",
|
||||||
|
"sha256:dd4f49ae60e10adbc94b45c0b5e6a179acc1736cf7a90160b404076ee283cf83",
|
||||||
|
"sha256:e1f145462f1fa6e4a4ae3c0f782e580ce44d57c8f2c7aae1b6fa88c0b2efdb41",
|
||||||
|
"sha256:e3391d1e16e2a5a1507d83e4a8b100f4ee626e8eca43cf2cadb543de69827c4c",
|
||||||
|
"sha256:fcd2469d6a2cf298f198f0487e0a5b1a47a42ca0fa4dfd1b6862c999f018ebbf",
|
||||||
|
"sha256:fd096eb7ffef17c456cfa587523c5f92321ae02427ff955bebe9e3c63bc9f0da",
|
||||||
|
"sha256:fe754d231288e1e64323cfad462fcee8f0288654c10bdf4f603a39ed923bef33"
|
||||||
|
],
|
||||||
|
"markers": "platform_machine == 'aarch64' or (platform_machine == 'ppc64le' or (platform_machine == 'x86_64' or (platform_machine == 'amd64' or (platform_machine == 'AMD64' or (platform_machine == 'win32' or platform_machine == 'WIN32')))))",
|
||||||
|
"version": "==3.0.3"
|
||||||
|
},
|
||||||
"pymysql": {
|
"pymysql": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:4de15da4c61dc132f4fb9ab763063e693d521a80fd0e87943b9a453dd4c19d6c",
|
"sha256:4f13a7df8bf36a51e81dd9f3605fede45a4878fe02f9236349fd82a3f0612f96",
|
||||||
"sha256:e127611aaf2b417403c60bf4dc570124aeb4a57f5f37b8e95ae399a42f904cd0"
|
"sha256:8969ec6d763c856f7073c4c64662882675702efcb114b4bcbb955aea3a069fa7"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"markers": "python_version >= '3.7'",
|
"markers": "python_version >= '3.7'",
|
||||||
"version": "==1.1.1"
|
"version": "==1.1.0"
|
||||||
},
|
},
|
||||||
"sqlalchemy": {
|
"sqlalchemy": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:023b3ee6169969beea3bb72312e44d8b7c27c75b347942d943cf49397b7edeb5",
|
"sha256:0094c5dc698a5f78d3d1539853e8ecec02516b62b8223c970c86d44e7a80f6c7",
|
||||||
"sha256:03968a349db483936c249f4d9cd14ff2c296adfa1290b660ba6516f973139582",
|
"sha256:0138c5c16be3600923fa2169532205d18891b28afa817cb49b50e08f62198bb8",
|
||||||
"sha256:05132c906066142103b83d9c250b60508af556982a385d96c4eaa9fb9720ac2b",
|
"sha256:0a089e218654e740a41388893e090d2e2c22c29028c9d1353feb38638820bbeb",
|
||||||
"sha256:087b6b52de812741c27231b5a3586384d60c353fbd0e2f81405a814b5591dc8b",
|
"sha256:0b3f4c438e37d22b83e640f825ef0f37b95db9aa2d68203f2c9549375d0b2260",
|
||||||
"sha256:0b3dbf1e7e9bc95f4bac5e2fb6d3fb2f083254c3fdd20a1789af965caf2d2348",
|
"sha256:16863e2b132b761891d6c49f0a0f70030e0bcac4fd208117f6b7e053e68668d0",
|
||||||
"sha256:118c16cd3f1b00c76d69343e38602006c9cfb9998fa4f798606d28d63f23beda",
|
"sha256:1f9a727312ff6ad5248a4367358e2cf7e625e98b1028b1d7ab7b806b7d757513",
|
||||||
"sha256:1936af879e3db023601196a1684d28e12f19ccf93af01bf3280a3262c4b6b4e5",
|
"sha256:2383146973a15435e4717f94c7509982770e3e54974c71f76500a0136f22810b",
|
||||||
"sha256:1e3f196a0c59b0cae9a0cd332eb1a4bda4696e863f4f1cf84ab0347992c548c2",
|
"sha256:2753743c2afd061bb95a61a51bbb6a1a11ac1c44292fad898f10c9839a7f75b2",
|
||||||
"sha256:23a8825495d8b195c4aa9ff1c430c28f2c821e8c5e2d98089228af887e5d7e29",
|
"sha256:296230899df0b77dec4eb799bcea6fbe39a43707ce7bb166519c97b583cfcab3",
|
||||||
"sha256:293cd444d82b18da48c9f71cd7005844dbbd06ca19be1ccf6779154439eec0b8",
|
"sha256:2a4f4da89c74435f2bc61878cd08f3646b699e7d2eba97144030d1be44e27584",
|
||||||
"sha256:32f9dc8c44acdee06c8fc6440db9eae8b4af8b01e4b1aee7bdd7241c22edff4f",
|
"sha256:2b1708916730f4830bc69d6f49d37f7698b5bd7530aca7f04f785f8849e95255",
|
||||||
"sha256:34ea30ab3ec98355235972dadc497bb659cc75f8292b760394824fab9cf39826",
|
"sha256:2ecabd9ccaa6e914e3dbb2aa46b76dede7eadc8cbf1b8083c94d936bcd5ffb49",
|
||||||
"sha256:3d3549fc3e40667ec7199033a4e40a2f669898a00a7b18a931d3efb4c7900504",
|
"sha256:311710f9a2ee235f1403537b10c7687214bb1f2b9ebb52702c5aa4a77f0b3af7",
|
||||||
"sha256:41836fe661cc98abfae476e14ba1906220f92c4e528771a8a3ae6a151242d2ae",
|
"sha256:37a4b4fb0dd4d2669070fb05b8b8824afd0af57587393015baee1cf9890242d9",
|
||||||
"sha256:4d44522480e0bf34c3d63167b8cfa7289c1c54264c2950cc5fc26e7850967e45",
|
"sha256:3a365eda439b7a00732638f11072907c1bc8e351c7665e7e5da91b169af794af",
|
||||||
"sha256:4eeb195cdedaf17aab6b247894ff2734dcead6c08f748e617bfe05bd5a218443",
|
"sha256:3b48154678e76445c7ded1896715ce05319f74b1e73cf82d4f8b59b46e9c0ddc",
|
||||||
"sha256:4f67766965996e63bb46cfbf2ce5355fc32d9dd3b8ad7e536a920ff9ee422e23",
|
"sha256:3b69e934f0f2b677ec111b4d83f92dc1a3210a779f69bf905273192cf4ed433e",
|
||||||
"sha256:57df5dc6fdb5ed1a88a1ed2195fd31927e705cad62dedd86b46972752a80f576",
|
"sha256:3cb5a646930c5123f8461f6468901573f334c2c63c795b9af350063a736d0134",
|
||||||
"sha256:598d9ebc1e796431bbd068e41e4de4dc34312b7aa3292571bb3674a0cb415dd1",
|
"sha256:408f8b0e2c04677e9c93f40eef3ab22f550fecb3011b187f66a096395ff3d9fd",
|
||||||
"sha256:5b14e97886199c1f52c14629c11d90c11fbb09e9334fa7bb5f6d068d9ced0ce0",
|
"sha256:40ad017c672c00b9b663fcfcd5f0864a0a97828e2ee7ab0c140dc84058d194cf",
|
||||||
"sha256:5e22575d169529ac3e0a120cf050ec9daa94b6a9597993d1702884f6954a7d71",
|
"sha256:5a79d65395ac5e6b0c2890935bad892eabb911c4aa8e8015067ddb37eea3d56c",
|
||||||
"sha256:60c578c45c949f909a4026b7807044e7e564adf793537fc762b2489d522f3d11",
|
"sha256:5a8e3b0a7e09e94be7510d1661339d6b52daf202ed2f5b1f9f48ea34ee6f2d57",
|
||||||
"sha256:6145afea51ff0af7f2564a05fa95eb46f542919e6523729663a5d285ecb3cf5e",
|
"sha256:69c9db1ce00e59e8dd09d7bae852a9add716efdc070a3e2068377e6ff0d6fdaa",
|
||||||
"sha256:6375cd674fe82d7aa9816d1cb96ec592bac1726c11e0cafbf40eeee9a4516b5f",
|
"sha256:7108d569d3990c71e26a42f60474b4c02c8586c4681af5fd67e51a044fdea86a",
|
||||||
"sha256:6854175807af57bdb6425e47adbce7d20a4d79bbfd6f6d6519cd10bb7109a7f8",
|
"sha256:77d2edb1f54aff37e3318f611637171e8ec71472f1fdc7348b41dcb226f93d90",
|
||||||
"sha256:6ab60a5089a8f02009f127806f777fca82581c49e127f08413a66056bd9166dd",
|
"sha256:7d74336c65705b986d12a7e337ba27ab2b9d819993851b140efdf029248e818e",
|
||||||
"sha256:725875a63abf7c399d4548e686debb65cdc2549e1825437096a0af1f7e374814",
|
"sha256:8409de825f2c3b62ab15788635ccaec0c881c3f12a8af2b12ae4910a0a9aeef6",
|
||||||
"sha256:7492967c3386df69f80cf67efd665c0f667cee67032090fe01d7d74b0e19bb08",
|
"sha256:955991a09f0992c68a499791a753523f50f71a6885531568404fa0f231832aa0",
|
||||||
"sha256:81965cc20848ab06583506ef54e37cf15c83c7e619df2ad16807c03100745dea",
|
"sha256:99650e9f4cf3ad0d409fed3eec4f071fadd032e9a5edc7270cd646a26446feeb",
|
||||||
"sha256:81c24e0c0fde47a9723c81d5806569cddef103aebbf79dbc9fcbb617153dea30",
|
"sha256:9a5baf9267b752390252889f0c802ea13b52dfee5e369527da229189b8bd592e",
|
||||||
"sha256:81eedafa609917040d39aa9332e25881a8e7a0862495fcdf2023a9667209deda",
|
"sha256:a0ef36b28534f2a5771191be6edb44cc2673c7b2edf6deac6562400288664221",
|
||||||
"sha256:81f413674d85cfd0dfcd6512e10e0f33c19c21860342a4890c3a2b59479929f9",
|
"sha256:a1429a4b0f709f19ff3b0cf13675b2b9bfa8a7e79990003207a011c0db880a13",
|
||||||
"sha256:8280856dd7c6a68ab3a164b4a4b1c51f7691f6d04af4d4ca23d6ecf2261b7923",
|
"sha256:a7bfc726d167f425d4c16269a9a10fe8630ff6d14b683d588044dcef2d0f6be7",
|
||||||
"sha256:82ca366a844eb551daff9d2e6e7a9e5e76d2612c8564f58db6c19a726869c1df",
|
"sha256:a943d297126c9230719c27fcbbeab57ecd5d15b0bd6bfd26e91bfcfe64220621",
|
||||||
"sha256:8b4af17bda11e907c51d10686eda89049f9ce5669b08fbe71a29747f1e876036",
|
"sha256:ae8c62fe2480dd61c532ccafdbce9b29dacc126fe8be0d9a927ca3e699b9491a",
|
||||||
"sha256:90144d3b0c8b139408da50196c5cad2a6909b51b23df1f0538411cd23ffa45d3",
|
"sha256:b60203c63e8f984df92035610c5fb76d941254cf5d19751faab7d33b21e5ddc0",
|
||||||
"sha256:906e6b0d7d452e9a98e5ab8507c0da791856b2380fdee61b765632bb8698026f",
|
"sha256:b6bf767d14b77f6a18b6982cbbf29d71bede087edae495d11ab358280f304d8e",
|
||||||
"sha256:90c11ceb9a1f482c752a71f203a81858625d8df5746d787a4786bca4ffdf71c6",
|
"sha256:b6c7ec2b1f4969fc19b65b7059ed00497e25f54069407a8701091beb69e591a5",
|
||||||
"sha256:911cc493ebd60de5f285bcae0491a60b4f2a9f0f5c270edd1c4dbaef7a38fc04",
|
"sha256:bba002a9447b291548e8d66fd8c96a6a7ed4f2def0bb155f4f0a1309fd2735d5",
|
||||||
"sha256:9a420a91913092d1e20c86a2f5f1fc85c1a8924dbcaf5e0586df8aceb09c9cc2",
|
"sha256:bc0c53579650a891f9b83fa3cecd4e00218e071d0ba00c4890f5be0c34887ed3",
|
||||||
"sha256:9f8c9fdd15a55d9465e590a402f42082705d66b05afc3ffd2d2eb3c6ba919560",
|
"sha256:c4f61ada6979223013d9ab83a3ed003ded6959eae37d0d685db2c147e9143797",
|
||||||
"sha256:a104c5694dfd2d864a6f91b0956eb5d5883234119cb40010115fd45a16da5e70",
|
"sha256:c62d401223f468eb4da32627bffc0c78ed516b03bb8a34a58be54d618b74d472",
|
||||||
"sha256:a373a400f3e9bac95ba2a06372c4fd1412a7cee53c37fc6c05f829bf672b8769",
|
"sha256:e42203d8d20dc704604862977b1470a122e4892791fe3ed165f041e4bf447a1b",
|
||||||
"sha256:a62448526dd9ed3e3beedc93df9bb6b55a436ed1474db31a2af13b313a70a7e1",
|
"sha256:edc16a50f5e1b7a06a2dcc1f2205b0b961074c123ed17ebda726f376a5ab0953",
|
||||||
"sha256:a8808d5cf866c781150d36a3c8eb3adccfa41a8105d031bf27e92c251e3969d6",
|
"sha256:efedba7e13aa9a6c8407c48facfdfa108a5a4128e35f4c68f20c3407e4376aa9",
|
||||||
"sha256:b1f09b6821406ea1f94053f346f28f8215e293344209129a9c0fcc3578598d7b",
|
"sha256:f1dc3eabd8c0232ee8387fbe03e0a62220a6f089e278b1f0aaf5e2d6210741ad",
|
||||||
"sha256:b2ac41acfc8d965fb0c464eb8f44995770239668956dc4cdf502d1b1ffe0d747",
|
"sha256:f69e4c756ee2686767eb80f94c0125c8b0a0b87ede03eacc5c8ae3b54b99dc46",
|
||||||
"sha256:b46fa6eae1cd1c20e6e6f44e19984d438b6b2d8616d21d783d150df714f44078",
|
"sha256:f7703c2010355dd28f53deb644a05fc30f796bd8598b43f0ba678878780b6e4c",
|
||||||
"sha256:b50eab9994d64f4a823ff99a0ed28a6903224ddbe7fef56a6dd865eec9243440",
|
"sha256:fa561138a64f949f3e889eb9ab8c58e1504ab351d6cf55259dc4c248eaa19da6"
|
||||||
"sha256:bfc9064f6658a3d1cadeaa0ba07570b83ce6801a1314985bf98ec9b95d74e15f",
|
|
||||||
"sha256:c0b0e5e1b5d9f3586601048dd68f392dc0cc99a59bb5faf18aab057ce00d00b2",
|
|
||||||
"sha256:c153265408d18de4cc5ded1941dcd8315894572cddd3c58df5d5b5705b3fa28d",
|
|
||||||
"sha256:d4ae769b9c1c7757e4ccce94b0641bc203bbdf43ba7a2413ab2523d8d047d8dc",
|
|
||||||
"sha256:dc56c9788617b8964ad02e8fcfeed4001c1f8ba91a9e1f31483c0dffb207002a",
|
|
||||||
"sha256:dd5ec3aa6ae6e4d5b5de9357d2133c07be1aff6405b136dad753a16afb6717dd",
|
|
||||||
"sha256:edba70118c4be3c2b1f90754d308d0b79c6fe2c0fdc52d8ddf603916f83f4db9",
|
|
||||||
"sha256:ff8e80c4c4932c10493ff97028decfdb622de69cae87e0f127a7ebe32b4069c6"
|
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"markers": "python_version >= '3.7'",
|
"markers": "python_version >= '3.7'",
|
||||||
"version": "==2.0.41"
|
"version": "==2.0.30"
|
||||||
},
|
},
|
||||||
"tenacity": {
|
"tenacity": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:1169d376c297e7de388d18b4481760d478b0e99a777cad3a9c86e556f4b697cb",
|
"sha256:3649f6443dbc0d9b01b9d8020a9c4ec7a1ff5f6f3c6c8a036ef371f573fe9185",
|
||||||
"sha256:f77bf36710d8b73a50b2dd155c97b870017ad21afe6ab300326b0371b3b05138"
|
"sha256:953d4e6ad24357bceffbc9707bc74349aca9d245f68eb65419cf0c249a1949a2"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"markers": "python_version >= '3.9'",
|
"markers": "python_version >= '3.8'",
|
||||||
"version": "==9.1.2"
|
"version": "==8.3.0"
|
||||||
},
|
},
|
||||||
"typing-extensions": {
|
"typing-extensions": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:8676b788e32f02ab42d9e7c61324048ae4c6d844a399eebace3d4979d75ceef4",
|
"sha256:83f085bd5ca59c80295fc2a82ab5dac679cbe02b9f33f7d83af68e241bea51b0",
|
||||||
"sha256:a1514509136dd0b477638fc68d6a91497af5076466ad0fa6c338e44e359944af"
|
"sha256:c1f94d72897edaf4ce775bb7558d5b79d8126906a14ea5ed1635921406c0387a"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '3.9'",
|
"markers": "python_version >= '3.8'",
|
||||||
"version": "==4.14.0"
|
"version": "==4.11.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"develop": {
|
"develop": {
|
||||||
"autopep8": {
|
"autopep8": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:8d6c87eba648fdcfc83e29b788910b8643171c395d9c4bcf115ece035b9c9dda",
|
"sha256:1fa8964e4618929488f4ec36795c7ff12924a68b8bf01366c094fc52f770b6e7",
|
||||||
"sha256:a203fe0fcad7939987422140ab17a930f684763bf7335bdb6709991dd7ef6c2d"
|
"sha256:2bb76888c5edbcafe6aabab3c47ba534f5a2c2d245c2eddced4a30c4b4946357"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"markers": "python_version >= '3.8'",
|
"markers": "python_version >= '3.8'",
|
||||||
"version": "==2.3.1"
|
"version": "==2.1.0"
|
||||||
},
|
},
|
||||||
"flake8": {
|
"flake8": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:049d058491e228e03e67b390f311bbf88fce2dbaa8fa673e7aea87b7198b8d38",
|
"sha256:33f96621059e65eec474169085dc92bf26e7b2d47366b70be2f67ab80dc25132",
|
||||||
"sha256:597477df7860daa5aa0fdd84bf5208a043ab96b8e96ab708770ae0364dd03213"
|
"sha256:a6dfbb75e03252917f2473ea9653f7cd799c3064e54d4c8140044c5c065f53c3"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"markers": "python_full_version >= '3.8.1'",
|
"markers": "python_full_version >= '3.8.1'",
|
||||||
"version": "==7.1.1"
|
"version": "==7.0.0"
|
||||||
},
|
},
|
||||||
"mccabe": {
|
"mccabe": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@ -136,11 +192,11 @@
|
|||||||
},
|
},
|
||||||
"pycodestyle": {
|
"pycodestyle": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:46f0fb92069a7c28ab7bb558f05bfc0110dac69a0cd23c61ea0040283a9d78b3",
|
"sha256:41ba0e7afc9752dfb53ced5489e89f8186be00e599e712660695b7a75ff2663f",
|
||||||
"sha256:6838eae08bbce4f6accd5d5572075c63626a15ee3e6f842df996bf62f6d73521"
|
"sha256:44fe31000b2d866f2e41841b18528a505fbd7fef9017b04eff4e2648a0fadc67"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '3.8'",
|
"markers": "python_version >= '3.8'",
|
||||||
"version": "==2.12.1"
|
"version": "==2.11.1"
|
||||||
},
|
},
|
||||||
"pyflakes": {
|
"pyflakes": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@ -152,11 +208,11 @@
|
|||||||
},
|
},
|
||||||
"tomli": {
|
"tomli": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:2ebe24485c53d303f690b0ec092806a085f07af5a5aa1464f3931eec36caaa38",
|
"sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc",
|
||||||
"sha256:d46d457a85337051c36524bc5349dd91b1877838e2979ac5ced3e710ed8a60ed"
|
"sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"
|
||||||
],
|
],
|
||||||
"markers": "python_version < '3.11'",
|
"markers": "python_version < '3.11'",
|
||||||
"version": "==2.0.2"
|
"version": "==2.0.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -26,7 +26,6 @@ openpyxl = "*"
|
|||||||
xlrd = "*"
|
xlrd = "*"
|
||||||
sqlalchemy = "==2.*"
|
sqlalchemy = "==2.*"
|
||||||
mojimoji = "*"
|
mojimoji = "*"
|
||||||
numpy = "==2.0.*"
|
|
||||||
|
|
||||||
[dev-packages]
|
[dev-packages]
|
||||||
autopep8 = "*"
|
autopep8 = "*"
|
||||||
|
|||||||
2094
ecs/jskult-webapp/Pipfile.lock
generated
2094
ecs/jskult-webapp/Pipfile.lock
generated
File diff suppressed because it is too large
Load Diff
@ -1,10 +1,6 @@
|
|||||||
FROM python:3.12-slim-bookworm
|
FROM python:3.9
|
||||||
|
|
||||||
ENV TZ="Asia/Tokyo"
|
ENV TZ="Asia/Tokyo"
|
||||||
# pythonの標準出力をバッファリングしないフラグ
|
|
||||||
ENV PYTHONUNBUFFERED=1
|
|
||||||
# pythonのバイトコードを生成しないフラグ
|
|
||||||
ENV PYTHONDONTWRITEBYTECODE=1
|
|
||||||
|
|
||||||
WORKDIR /usr/src/app
|
WORKDIR /usr/src/app
|
||||||
COPY Pipfile Pipfile.lock ./
|
COPY Pipfile Pipfile.lock ./
|
||||||
@ -16,7 +12,6 @@ RUN apt update && apt install -y less vim curl wget gzip unzip sudo lsb-release
|
|||||||
# mysqlをインストール
|
# mysqlをインストール
|
||||||
RUN \
|
RUN \
|
||||||
wget https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb && \
|
wget https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb && \
|
||||||
apt install -y gnupg && \
|
|
||||||
dpkg -i mysql-apt-config_0.8.29-1_all.deb < mysql_dpkg_selection.txt && \
|
dpkg -i mysql-apt-config_0.8.29-1_all.deb < mysql_dpkg_selection.txt && \
|
||||||
apt update && \
|
apt update && \
|
||||||
apt install -y mysql-client
|
apt install -y mysql-client
|
||||||
|
|||||||
@ -10,7 +10,7 @@ autopep8 = "*"
|
|||||||
flake8 = "*"
|
flake8 = "*"
|
||||||
|
|
||||||
[requires]
|
[requires]
|
||||||
python_version = "3.12"
|
python_version = "3.9"
|
||||||
|
|
||||||
[pipenv]
|
[pipenv]
|
||||||
allow_prereleases = true
|
allow_prereleases = true
|
||||||
|
|||||||
32
ecs/restore-dbdump/Pipfile.lock
generated
32
ecs/restore-dbdump/Pipfile.lock
generated
@ -1,11 +1,11 @@
|
|||||||
{
|
{
|
||||||
"_meta": {
|
"_meta": {
|
||||||
"hash": {
|
"hash": {
|
||||||
"sha256": "2f7808325e11704ced6ad10c85e1d583663a03d7ccabaa9696ab1fe133a6b30c"
|
"sha256": "cc5f54bfb2073051a26f113ceac64e12fdd0bf8faa36f1a42210cc9c921c134b"
|
||||||
},
|
},
|
||||||
"pipfile-spec": 6,
|
"pipfile-spec": 6,
|
||||||
"requires": {
|
"requires": {
|
||||||
"python_version": "3.12"
|
"python_version": "3.9"
|
||||||
},
|
},
|
||||||
"sources": [
|
"sources": [
|
||||||
{
|
{
|
||||||
@ -19,21 +19,19 @@
|
|||||||
"develop": {
|
"develop": {
|
||||||
"autopep8": {
|
"autopep8": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:89440a4f969197b69a995e4ce0661b031f455a9f776d2c5ba3dbd83466931758",
|
"sha256:1fa8964e4618929488f4ec36795c7ff12924a68b8bf01366c094fc52f770b6e7",
|
||||||
"sha256:ce8ad498672c845a0c3de2629c15b635ec2b05ef8177a6e7c91c74f3e9b51128"
|
"sha256:2bb76888c5edbcafe6aabab3c47ba534f5a2c2d245c2eddced4a30c4b4946357"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"markers": "python_version >= '3.9'",
|
"version": "==2.1.0"
|
||||||
"version": "==2.3.2"
|
|
||||||
},
|
},
|
||||||
"flake8": {
|
"flake8": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:1cbc62e65536f65e6d754dfe6f1bada7f5cf392d6f5db3c2b85892466c3e7c1a",
|
"sha256:33f96621059e65eec474169085dc92bf26e7b2d47366b70be2f67ab80dc25132",
|
||||||
"sha256:c586ffd0b41540951ae41af572e6790dbd49fc12b3aa2541685d253d9bd504bd"
|
"sha256:a6dfbb75e03252917f2473ea9653f7cd799c3064e54d4c8140044c5c065f53c3"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"markers": "python_full_version >= '3.8.1'",
|
"version": "==7.0.0"
|
||||||
"version": "==7.1.2"
|
|
||||||
},
|
},
|
||||||
"mccabe": {
|
"mccabe": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@ -45,11 +43,11 @@
|
|||||||
},
|
},
|
||||||
"pycodestyle": {
|
"pycodestyle": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:46f0fb92069a7c28ab7bb558f05bfc0110dac69a0cd23c61ea0040283a9d78b3",
|
"sha256:41ba0e7afc9752dfb53ced5489e89f8186be00e599e712660695b7a75ff2663f",
|
||||||
"sha256:6838eae08bbce4f6accd5d5572075c63626a15ee3e6f842df996bf62f6d73521"
|
"sha256:44fe31000b2d866f2e41841b18528a505fbd7fef9017b04eff4e2648a0fadc67"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '3.8'",
|
"markers": "python_version >= '3.8'",
|
||||||
"version": "==2.12.1"
|
"version": "==2.11.1"
|
||||||
},
|
},
|
||||||
"pyflakes": {
|
"pyflakes": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@ -58,6 +56,14 @@
|
|||||||
],
|
],
|
||||||
"markers": "python_version >= '3.8'",
|
"markers": "python_version >= '3.8'",
|
||||||
"version": "==3.2.0"
|
"version": "==3.2.0"
|
||||||
|
},
|
||||||
|
"tomli": {
|
||||||
|
"hashes": [
|
||||||
|
"sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc",
|
||||||
|
"sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"
|
||||||
|
],
|
||||||
|
"markers": "python_version < '3.11'",
|
||||||
|
"version": "==2.0.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,21 +1,20 @@
|
|||||||
# AWS公式のDockerイメージを利用
|
FROM python:3.9
|
||||||
FROM public.ecr.aws/lambda/python:3.12
|
|
||||||
|
|
||||||
|
ENV WORKDIR /function/
|
||||||
ENV TZ="Asia/Tokyo"
|
ENV TZ="Asia/Tokyo"
|
||||||
|
WORKDIR ${WORKDIR}
|
||||||
|
|
||||||
# pythonの標準出力をバッファリングしないフラグ
|
COPY Pipfile Pipfile.lock ${WORKDIR}
|
||||||
ENV PYTHONUNBUFFERED=1
|
RUN \
|
||||||
# pythonのバイトコードを生成しないフラグ
|
apt update -y && \
|
||||||
ENV PYTHONDONTWRITEBYTECODE=1
|
# パッケージのセキュリティアップデートのみを適用するコマンド
|
||||||
|
apt install -y unattended-upgrades && \
|
||||||
# 必要なファイルをイメージにコピー
|
unattended-upgrades && \
|
||||||
COPY Pipfile Pipfile.lock ./
|
pip install --upgrade pip wheel setuptools && \
|
||||||
|
pip install pipenv --no-cache-dir && \
|
||||||
# ライブラリインストール
|
|
||||||
RUN pip install pipenv --no-cache-dir && \
|
|
||||||
pipenv install --system --deploy && \
|
pipenv install --system --deploy && \
|
||||||
pip uninstall -y pipenv virtualenv-clone virtualenv
|
pip uninstall -y pipenv virtualenv-clone virtualenv
|
||||||
COPY check-view-option ./
|
COPY check-view-option ./
|
||||||
|
|
||||||
# lambdaハンドラを起動
|
ENTRYPOINT [ "/usr/local/bin/python", "-m", "awslambdaric" ]
|
||||||
CMD [ "main.handler" ]
|
CMD [ "main.handler" ]
|
||||||
|
|||||||
@ -4,6 +4,7 @@ verify_ssl = true
|
|||||||
name = "pypi"
|
name = "pypi"
|
||||||
|
|
||||||
[packages]
|
[packages]
|
||||||
|
awslambdaric = "*"
|
||||||
boto3 = "*"
|
boto3 = "*"
|
||||||
pymysql = "*"
|
pymysql = "*"
|
||||||
cryptography = "*"
|
cryptography = "*"
|
||||||
@ -13,4 +14,4 @@ autopep8 = "*"
|
|||||||
flake8 = "*"
|
flake8 = "*"
|
||||||
|
|
||||||
[requires]
|
[requires]
|
||||||
python_version = "3.12"
|
python_version = "3.9"
|
||||||
|
|||||||
399
lambda/check-view-security-option/Pipfile.lock
generated
399
lambda/check-view-security-option/Pipfile.lock
generated
@ -1,11 +1,11 @@
|
|||||||
{
|
{
|
||||||
"_meta": {
|
"_meta": {
|
||||||
"hash": {
|
"hash": {
|
||||||
"sha256": "8a7a2fa969a29f51ceb9f9370d834d1f06d1bd604f719c2280bf4cdf06be3943"
|
"sha256": "0bf055eba7a510de27e990db23f5203946ebbc02a6c678b89051dc0d1437444f"
|
||||||
},
|
},
|
||||||
"pipfile-spec": 6,
|
"pipfile-spec": 6,
|
||||||
"requires": {
|
"requires": {
|
||||||
"python_version": "3.12"
|
"python_version": "3.9"
|
||||||
},
|
},
|
||||||
"sources": [
|
"sources": [
|
||||||
{
|
{
|
||||||
@ -16,139 +16,149 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"default": {
|
"default": {
|
||||||
"boto3": {
|
"awslambdaric": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:3faa2c328a61745f3215a63039606a6fcf55d9afe1cc76e3a5e27b9db58cdbf6",
|
"sha256:04d4d4b63cef0e9aad3adea95a5cf3f81634bccde625f104ff025f764a3e8874",
|
||||||
"sha256:b998edac72f6740bd5d9d585cf3880f2dfeb4842e626b34430fd0e9623378011"
|
"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",
|
"index": "pypi",
|
||||||
"markers": "python_version >= '3.9'",
|
"markers": "python_version >= '3.6'",
|
||||||
"version": "==1.38.32"
|
"version": "==2.0.11"
|
||||||
|
},
|
||||||
|
"boto3": {
|
||||||
|
"hashes": [
|
||||||
|
"sha256:b633e8fbf7145bdb995ce68a27d096bb89fd393185b0e773418d81cd78db5a03",
|
||||||
|
"sha256:f2c11635be0de7b7c06eb606ece1add125e02d6ed521592294a0a21af09af135"
|
||||||
|
],
|
||||||
|
"index": "pypi",
|
||||||
|
"markers": "python_version >= '3.8'",
|
||||||
|
"version": "==1.34.105"
|
||||||
},
|
},
|
||||||
"botocore": {
|
"botocore": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:0899a090e352cb5eeaae2c7bb52a987b469d23912c7ece86664dfb5c2e074978",
|
"sha256:727d5d3e800ac8b705fca6e19b6fefa1e728a81d62a712df9bd32ed0117c740b",
|
||||||
"sha256:64ab919a5d8b74dd73eaac1f978d0e674d11ff3bbe8815c3d2982477be9a082c"
|
"sha256:a459d060b541beecb50681e6e8a39313cca981e146a59ba7c5229d62f631a016"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '3.9'",
|
"markers": "python_version >= '3.8'",
|
||||||
"version": "==1.38.32"
|
"version": "==1.34.105"
|
||||||
},
|
},
|
||||||
"cffi": {
|
"cffi": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8",
|
"sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc",
|
||||||
"sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2",
|
"sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a",
|
||||||
"sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1",
|
"sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417",
|
||||||
"sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15",
|
"sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab",
|
||||||
"sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36",
|
"sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520",
|
||||||
"sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824",
|
"sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36",
|
||||||
"sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8",
|
"sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743",
|
||||||
"sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36",
|
"sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8",
|
||||||
"sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17",
|
"sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed",
|
||||||
"sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf",
|
"sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684",
|
||||||
"sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc",
|
"sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56",
|
||||||
"sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3",
|
"sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324",
|
||||||
"sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed",
|
"sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d",
|
||||||
"sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702",
|
"sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235",
|
||||||
"sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1",
|
"sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e",
|
||||||
"sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8",
|
"sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088",
|
||||||
"sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903",
|
"sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000",
|
||||||
"sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6",
|
"sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7",
|
||||||
"sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d",
|
"sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e",
|
||||||
"sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b",
|
"sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673",
|
||||||
"sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e",
|
"sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c",
|
||||||
"sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be",
|
"sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe",
|
||||||
"sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c",
|
"sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2",
|
||||||
"sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683",
|
"sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098",
|
||||||
"sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9",
|
"sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8",
|
||||||
"sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c",
|
"sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a",
|
||||||
"sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8",
|
"sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0",
|
||||||
"sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1",
|
"sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b",
|
||||||
"sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4",
|
"sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896",
|
||||||
"sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655",
|
"sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e",
|
||||||
"sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67",
|
"sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9",
|
||||||
"sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595",
|
"sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2",
|
||||||
"sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0",
|
"sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b",
|
||||||
"sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65",
|
"sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6",
|
||||||
"sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41",
|
"sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404",
|
||||||
"sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6",
|
"sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f",
|
||||||
"sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401",
|
"sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0",
|
||||||
"sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6",
|
"sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4",
|
||||||
"sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3",
|
"sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc",
|
||||||
"sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16",
|
"sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936",
|
||||||
"sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93",
|
"sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba",
|
||||||
"sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e",
|
"sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872",
|
||||||
"sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4",
|
"sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb",
|
||||||
"sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964",
|
"sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614",
|
||||||
"sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c",
|
"sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1",
|
||||||
"sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576",
|
"sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d",
|
||||||
"sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0",
|
"sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969",
|
||||||
"sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3",
|
"sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b",
|
||||||
"sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662",
|
"sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4",
|
||||||
"sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3",
|
"sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627",
|
||||||
"sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff",
|
"sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956",
|
||||||
"sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5",
|
"sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357"
|
||||||
"sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd",
|
|
||||||
"sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f",
|
|
||||||
"sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5",
|
|
||||||
"sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14",
|
|
||||||
"sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d",
|
|
||||||
"sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9",
|
|
||||||
"sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7",
|
|
||||||
"sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382",
|
|
||||||
"sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a",
|
|
||||||
"sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e",
|
|
||||||
"sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a",
|
|
||||||
"sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4",
|
|
||||||
"sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99",
|
|
||||||
"sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87",
|
|
||||||
"sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b"
|
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '3.8'",
|
"markers": "platform_python_implementation != 'PyPy'",
|
||||||
"version": "==1.17.1"
|
"version": "==1.16.0"
|
||||||
},
|
},
|
||||||
"cryptography": {
|
"cryptography": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:00094838ecc7c6594171e8c8a9166124c1197b074cfca23645cee573910d76bc",
|
"sha256:02c0eee2d7133bdbbc5e24441258d5d2244beb31da5ed19fbb80315f4bbbff55",
|
||||||
"sha256:050ce5209d5072472971e6efbfc8ec5a8f9a841de5a4db0ebd9c2e392cb81972",
|
"sha256:0d563795db98b4cd57742a78a288cdbdc9daedac29f2239793071fe114f13785",
|
||||||
"sha256:232954730c362638544758a8160c4ee1b832dc011d2c41a306ad8f7cccc5bb0b",
|
"sha256:16268d46086bb8ad5bf0a2b5544d8a9ed87a0e33f5e77dd3c3301e63d941a83b",
|
||||||
"sha256:25286aacb947286620a31f78f2ed1a32cded7be5d8b729ba3fb2c988457639e4",
|
"sha256:1a58839984d9cb34c855197043eaae2c187d930ca6d644612843b4fe8513c886",
|
||||||
"sha256:2f8f8f0b73b885ddd7f3d8c2b2234a7d3ba49002b0223f58cfde1bedd9563c56",
|
"sha256:2954fccea107026512b15afb4aa664a5640cd0af630e2ee3962f2602693f0c82",
|
||||||
"sha256:38deed72285c7ed699864f964a3f4cf11ab3fb38e8d39cfcd96710cd2b5bb716",
|
"sha256:2e47577f9b18723fa294b0ea9a17d5e53a227867a0a4904a1a076d1646d45ca1",
|
||||||
"sha256:3ad69eeb92a9de9421e1f6685e85a10fbcfb75c833b42cc9bc2ba9fb00da4710",
|
"sha256:31adb7d06fe4383226c3e963471f6837742889b3c4caa55aac20ad951bc8ffda",
|
||||||
"sha256:5555365a50efe1f486eed6ac7062c33b97ccef409f5970a0b6f205a7cfab59c8",
|
"sha256:3577d029bc3f4827dd5bf8bf7710cac13527b470bbf1820a3f394adb38ed7d5f",
|
||||||
"sha256:555e5e2d3a53b4fabeca32835878b2818b3f23966a4efb0d566689777c5a12c8",
|
"sha256:36017400817987670037fbb0324d71489b6ead6231c9604f8fc1f7d008087c68",
|
||||||
"sha256:57a6500d459e8035e813bd8b51b671977fb149a8c95ed814989da682314d0782",
|
"sha256:362e7197754c231797ec45ee081f3088a27a47c6c01eff2ac83f60f85a50fe60",
|
||||||
"sha256:5833bb4355cb377ebd880457663a972cd044e7f49585aee39245c0d592904578",
|
"sha256:3de9a45d3b2b7d8088c3fbf1ed4395dfeff79d07842217b38df14ef09ce1d8d7",
|
||||||
"sha256:71320fbefd05454ef2d457c481ba9a5b0e540f3753354fff6f780927c25d19b0",
|
"sha256:4f698edacf9c9e0371112792558d2f705b5645076cc0aaae02f816a0171770fd",
|
||||||
"sha256:7573d9eebaeceeb55285205dbbb8753ac1e962af3d9640791d12b36864065e71",
|
"sha256:5482e789294854c28237bba77c4c83be698be740e31a3ae5e879ee5444166582",
|
||||||
"sha256:92d5f428c1a0439b2040435a1d6bc1b26ebf0af88b093c3628913dd464d13fa1",
|
"sha256:5e44507bf8d14b36b8389b226665d597bc0f18ea035d75b4e53c7b1ea84583cc",
|
||||||
"sha256:97787952246a77d77934d41b62fb1b6f3581d83f71b44796a4158d93b8f5c490",
|
"sha256:779245e13b9a6638df14641d029add5dc17edbef6ec915688f3acb9e720a5858",
|
||||||
"sha256:9bb5bf55dcb69f7067d80354d0a348368da907345a2c448b0babc4215ccd3497",
|
"sha256:789caea816c6704f63f6241a519bfa347f72fbd67ba28d04636b7c6b7da94b0b",
|
||||||
"sha256:9cc80ce69032ffa528b5e16d217fa4d8d4bb7d6ba8659c1b4d74a1b0f4235fca",
|
"sha256:7f8b25fa616d8b846aef64b15c606bb0828dbc35faf90566eb139aa9cff67af2",
|
||||||
"sha256:9e4253ed8f5948a3589b3caee7ad9a5bf218ffd16869c516535325fece163dcc",
|
"sha256:8cb8ce7c3347fcf9446f201dc30e2d5a3c898d009126010cbd1f443f28b52678",
|
||||||
"sha256:9eda14f049d7f09c2e8fb411dda17dd6b16a3c76a1de5e249188a32aeb92de19",
|
"sha256:93a3209f6bb2b33e725ed08ee0991b92976dfdcf4e8b38646540674fc7508e13",
|
||||||
"sha256:a2b56de3417fd5f48773ad8e91abaa700b678dc7fe1e0c757e1ae340779acf7b",
|
"sha256:a3a5ac8b56fe37f3125e5b72b61dcde43283e5370827f5233893d461b7360cd4",
|
||||||
"sha256:af3f92b1dc25621f5fad065288a44ac790c5798e986a34d393ab27d2b27fcff9",
|
"sha256:a47787a5e3649008a1102d3df55424e86606c9bae6fb77ac59afe06d234605f8",
|
||||||
"sha256:c5edcb90da1843df85292ef3a313513766a78fbbb83f584a5a58fb001a5a9d57",
|
"sha256:a79165431551042cc9d1d90e6145d5d0d3ab0f2d66326c201d9b0e7f5bf43604",
|
||||||
"sha256:c824c9281cb628015bfc3c59335163d4ca0540d49de4582d6c2637312907e4b1",
|
"sha256:a987f840718078212fdf4504d0fd4c6effe34a7e4740378e59d47696e8dfb477",
|
||||||
"sha256:c92519d242703b675ccefd0f0562eb45e74d438e001f8ab52d628e885751fb06",
|
"sha256:a9bc127cdc4ecf87a5ea22a2556cab6c7eda2923f84e4f3cc588e8470ce4e42e",
|
||||||
"sha256:ca932e11218bcc9ef812aa497cdf669484870ecbcf2d99b765d6c27a86000942",
|
"sha256:bd13b5e9b543532453de08bcdc3cc7cebec6f9883e886fd20a92f26940fd3e7a",
|
||||||
"sha256:cb6ab89421bc90e0422aca911c69044c2912fc3debb19bb3c1bfe28ee3dff6ab",
|
"sha256:c65f96dad14f8528a447414125e1fc8feb2ad5a272b8f68477abbcc1ea7d94b9",
|
||||||
"sha256:cfd84777b4b6684955ce86156cfb5e08d75e80dc2585e10d69e47f014f0a5342",
|
"sha256:d8e3098721b84392ee45af2dd554c947c32cc52f862b6a3ae982dbb90f577f14",
|
||||||
"sha256:d377dde61c5d67eb4311eace661c3efda46c62113ff56bf05e2d679e02aebb5b",
|
"sha256:e6b79d0adb01aae87e8a44c2b64bc3f3fe59515280e00fb6d57a7267a2583cda",
|
||||||
"sha256:d54ae41e6bd70ea23707843021c778f151ca258081586f0cfa31d936ae43d1b2",
|
"sha256:e6b8f1881dac458c34778d0a424ae5769de30544fc678eac51c1c8bb2183e9da",
|
||||||
"sha256:dc10ec1e9f21f33420cc05214989544727e776286c1c16697178978327b95c9c",
|
"sha256:e9b2a6309f14c0497f348d08a065d52f3020656f675819fc405fb63bbcd26562",
|
||||||
"sha256:ec21313dd335c51d7877baf2972569f40a4291b76a0ce51391523ae358d05899",
|
"sha256:ecbfbc00bf55888edda9868a4cf927205de8499e7fabe6c050322298382953f2",
|
||||||
"sha256:ec64ee375b5aaa354b2b273c921144a660a511f9df8785e6d1c942967106438e",
|
"sha256:efd0bf5205240182e0f13bcaea41be4fdf5c22c5129fc7ced4a0282ac86998c9"
|
||||||
"sha256:ed43d396f42028c1f47b5fec012e9e12631266e3825e95c00e3cf94d472dac49",
|
|
||||||
"sha256:edd6d51869beb7f0d472e902ef231a9b7689508e83880ea16ca3311a00bf5ce7",
|
|
||||||
"sha256:f22af3c78abfbc7cbcdf2c55d23c3e022e1a462ee2481011d518c7fb9c9f3d65",
|
|
||||||
"sha256:fae1e637f527750811588e4582988932c222f8251f7b7ea93739acb624e1487f",
|
|
||||||
"sha256:fed5aaca1750e46db870874c9c273cd5182a9e9deb16f06f7bdffdb5c2bde4b9"
|
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"markers": "python_version >= '3.7' and python_full_version not in '3.9.0, 3.9.1'",
|
"markers": "python_version >= '3.7'",
|
||||||
"version": "==45.0.3"
|
"version": "==42.0.7"
|
||||||
},
|
},
|
||||||
"jmespath": {
|
"jmespath": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@ -168,64 +178,155 @@
|
|||||||
},
|
},
|
||||||
"pymysql": {
|
"pymysql": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:4de15da4c61dc132f4fb9ab763063e693d521a80fd0e87943b9a453dd4c19d6c",
|
"sha256:4f13a7df8bf36a51e81dd9f3605fede45a4878fe02f9236349fd82a3f0612f96",
|
||||||
"sha256:e127611aaf2b417403c60bf4dc570124aeb4a57f5f37b8e95ae399a42f904cd0"
|
"sha256:8969ec6d763c856f7073c4c64662882675702efcb114b4bcbb955aea3a069fa7"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"markers": "python_version >= '3.7'",
|
"markers": "python_version >= '3.7'",
|
||||||
"version": "==1.1.1"
|
"version": "==1.1.0"
|
||||||
},
|
},
|
||||||
"python-dateutil": {
|
"python-dateutil": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3",
|
"sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3",
|
||||||
"sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"
|
"sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
|
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||||
"version": "==2.9.0.post0"
|
"version": "==2.9.0.post0"
|
||||||
},
|
},
|
||||||
"s3transfer": {
|
"s3transfer": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:0148ef34d6dd964d0d8cf4311b2b21c474693e57c2e069ec708ce043d2b527be",
|
"sha256:5683916b4c724f799e600f41dd9e10a9ff19871bf87623cc8f491cb4f5fa0a19",
|
||||||
"sha256:f5e6db74eb7776a37208001113ea7aa97695368242b364d73e91c981ac522177"
|
"sha256:ceb252b11bcf87080fb7850a224fb6e05c8a776bab8f2b64b7f25b969464839d"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '3.9'",
|
"markers": "python_version >= '3.8'",
|
||||||
"version": "==0.13.0"
|
"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": {
|
"six": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274",
|
"sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926",
|
||||||
"sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"
|
"sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
|
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||||
"version": "==1.17.0"
|
"version": "==1.16.0"
|
||||||
},
|
},
|
||||||
"urllib3": {
|
"urllib3": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:0ed14ccfbf1c30a9072c7ca157e4319b70d65f623e91e7b32fadb2853431016e",
|
"sha256:34b97092d7e0a3a8cf7cd10e386f401b3737364026c45e622aa02903dffe0f07",
|
||||||
"sha256:40c2dc0c681e47eb8f90e7e27bf6ff7df2e677421fd46756da1161c39ca70d32"
|
"sha256:f8ecc1bba5667413457c529ab955bf8c67b45db799d159066261719e328580a0"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'",
|
"markers": "python_version < '3.10'",
|
||||||
"version": "==1.26.20"
|
"version": "==1.26.18"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"develop": {
|
"develop": {
|
||||||
"autopep8": {
|
"autopep8": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:89440a4f969197b69a995e4ce0661b031f455a9f776d2c5ba3dbd83466931758",
|
"sha256:1fa8964e4618929488f4ec36795c7ff12924a68b8bf01366c094fc52f770b6e7",
|
||||||
"sha256:ce8ad498672c845a0c3de2629c15b635ec2b05ef8177a6e7c91c74f3e9b51128"
|
"sha256:2bb76888c5edbcafe6aabab3c47ba534f5a2c2d245c2eddced4a30c4b4946357"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"markers": "python_version >= '3.9'",
|
"markers": "python_version >= '3.8'",
|
||||||
"version": "==2.3.2"
|
"version": "==2.1.0"
|
||||||
},
|
},
|
||||||
"flake8": {
|
"flake8": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:1cbc62e65536f65e6d754dfe6f1bada7f5cf392d6f5db3c2b85892466c3e7c1a",
|
"sha256:33f96621059e65eec474169085dc92bf26e7b2d47366b70be2f67ab80dc25132",
|
||||||
"sha256:c586ffd0b41540951ae41af572e6790dbd49fc12b3aa2541685d253d9bd504bd"
|
"sha256:a6dfbb75e03252917f2473ea9653f7cd799c3064e54d4c8140044c5c065f53c3"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"markers": "python_full_version >= '3.8.1'",
|
"markers": "python_full_version >= '3.8.1'",
|
||||||
"version": "==7.1.2"
|
"version": "==7.0.0"
|
||||||
},
|
},
|
||||||
"mccabe": {
|
"mccabe": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@ -237,11 +338,11 @@
|
|||||||
},
|
},
|
||||||
"pycodestyle": {
|
"pycodestyle": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:46f0fb92069a7c28ab7bb558f05bfc0110dac69a0cd23c61ea0040283a9d78b3",
|
"sha256:41ba0e7afc9752dfb53ced5489e89f8186be00e599e712660695b7a75ff2663f",
|
||||||
"sha256:6838eae08bbce4f6accd5d5572075c63626a15ee3e6f842df996bf62f6d73521"
|
"sha256:44fe31000b2d866f2e41841b18528a505fbd7fef9017b04eff4e2648a0fadc67"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '3.8'",
|
"markers": "python_version >= '3.8'",
|
||||||
"version": "==2.12.1"
|
"version": "==2.11.1"
|
||||||
},
|
},
|
||||||
"pyflakes": {
|
"pyflakes": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@ -250,6 +351,14 @@
|
|||||||
],
|
],
|
||||||
"markers": "python_version >= '3.8'",
|
"markers": "python_version >= '3.8'",
|
||||||
"version": "==3.2.0"
|
"version": "==3.2.0"
|
||||||
|
},
|
||||||
|
"tomli": {
|
||||||
|
"hashes": [
|
||||||
|
"sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc",
|
||||||
|
"sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"
|
||||||
|
],
|
||||||
|
"markers": "python_version < '3.11'",
|
||||||
|
"version": "==2.0.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,11 +6,12 @@ from constants import AWS_RESOURCE_S3, S3_RESPONSE_BODY, UTF8
|
|||||||
class S3Resource:
|
class S3Resource:
|
||||||
|
|
||||||
def __init__(self, bucket_name: str) -> None:
|
def __init__(self, bucket_name: str) -> None:
|
||||||
self.__s3_client = boto3.client(AWS_RESOURCE_S3)
|
self.__s3_resource = boto3.resource(AWS_RESOURCE_S3)
|
||||||
self.__s3_bucket = bucket_name
|
self.__s3_bucket = self.__s3_resource.Bucket(bucket_name)
|
||||||
|
|
||||||
def get_object(self, object_key: str):
|
def get_object(self, object_key: str):
|
||||||
response = self.__s3_client.get_object(Bucket=self.__s3_bucket, Key=object_key)
|
s3_object = self.__s3_bucket.Object(object_key)
|
||||||
|
response = s3_object.get()
|
||||||
return response[S3_RESPONSE_BODY].read().decode(UTF8)
|
return response[S3_RESPONSE_BODY].read().decode(UTF8)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,329 +0,0 @@
|
|||||||
import csv
|
|
||||||
import datetime
|
|
||||||
import io
|
|
||||||
import json
|
|
||||||
import logging
|
|
||||||
import os
|
|
||||||
import re
|
|
||||||
from zoneinfo import ZoneInfo
|
|
||||||
|
|
||||||
import boto3
|
|
||||||
from dateutil.relativedelta import relativedelta
|
|
||||||
|
|
||||||
# 環境変数
|
|
||||||
CONFIG_BUCKET_NAME = os.environ["CONFIG_BUCKET_NAME"]
|
|
||||||
MBJ_NOTICE_TOPIC = os.environ["MBJ_NOTICE_TOPIC"]
|
|
||||||
PROCESSED_MESSAGE_DYNAMODB_TABLE_NAME = os.environ["PROCESSED_MESSAGE_DYNAMODB_TABLE_NAME"]
|
|
||||||
PROCESSED_MESSAGE_EXPIRES_PERIOD = int(os.environ["PROCESSED_MESSAGE_EXPIRES_PERIOD"])
|
|
||||||
LOG_LEVEL = os.environ["LOG_LEVEL"]
|
|
||||||
TZ = os.environ["TZ"]
|
|
||||||
|
|
||||||
# 定数
|
|
||||||
ROW_COMMENT_SYMBOL = '#'
|
|
||||||
INDEX_REGEX = 0
|
|
||||||
INDEX_DATA_NAME = 1
|
|
||||||
INDEX_ROW_COMMENT_SYMBOL = 0
|
|
||||||
INDEX_SPLIT_NUM = 1
|
|
||||||
INDEX_LAST = -1
|
|
||||||
|
|
||||||
# メール本文に出力する不足ファイル名一覧のインデント
|
|
||||||
MAIL_INDENT = ' '
|
|
||||||
|
|
||||||
# AWS操作クライアント
|
|
||||||
s3_client = boto3.client('s3')
|
|
||||||
sns_client = boto3.client('sns')
|
|
||||||
dynamodb_client = boto3.client('dynamodb')
|
|
||||||
|
|
||||||
|
|
||||||
# logger設定
|
|
||||||
def log_datetime_convert_tz(*arg):
|
|
||||||
"""ログに出力するタイムスタンプのロケールを変更する(JST指定)"""
|
|
||||||
return datetime.datetime.now(ZoneInfo(TZ)).timetuple()
|
|
||||||
|
|
||||||
|
|
||||||
logger = logging.getLogger()
|
|
||||||
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 is_duplicate_message(message_id: str) -> bool:
|
|
||||||
"""DynamoDBテーブルに処理済みのSQSメッセージIdが存在するかどうかを調査する
|
|
||||||
|
|
||||||
Args:
|
|
||||||
message_id (str): SQSメッセージId
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
bool: 存在する場合はTrue
|
|
||||||
"""
|
|
||||||
return dynamodb_client.query(
|
|
||||||
TableName=PROCESSED_MESSAGE_DYNAMODB_TABLE_NAME,
|
|
||||||
Select='COUNT',
|
|
||||||
KeyConditionExpression='message_id = :message_id',
|
|
||||||
ExpressionAttributeValues={
|
|
||||||
':message_id': {'S': message_id}
|
|
||||||
}
|
|
||||||
)["Count"] != 0
|
|
||||||
|
|
||||||
|
|
||||||
def put_success_messages_to_dynamo_db(batch_success_items: list[str]) -> bool:
|
|
||||||
"""処理済みのSQSメッセージIdをDynamoDBにPushする
|
|
||||||
|
|
||||||
Args:
|
|
||||||
batch_success_items (list[str]): SQSメッセージIdのリスト
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
bool: 登録成功の場合、True
|
|
||||||
"""
|
|
||||||
|
|
||||||
# レコードの有効期限を算出
|
|
||||||
now = datetime.datetime.now(ZoneInfo(TZ))
|
|
||||||
record_expiration_datetime = now + \
|
|
||||||
datetime.timedelta(minutes=PROCESSED_MESSAGE_EXPIRES_PERIOD)
|
|
||||||
record_expiration_time = record_expiration_datetime.timestamp()
|
|
||||||
|
|
||||||
for message_id in batch_success_items:
|
|
||||||
dynamodb_client.put_item(
|
|
||||||
TableName=PROCESSED_MESSAGE_DYNAMODB_TABLE_NAME,
|
|
||||||
Item={
|
|
||||||
'message_id': {'S': message_id},
|
|
||||||
'record_expiration_time': {'N': f'{record_expiration_time}'}
|
|
||||||
}
|
|
||||||
)
|
|
||||||
return True
|
|
||||||
|
|
||||||
|
|
||||||
def substitute_mail_template(mail_template: str, mail_msg: str) -> str:
|
|
||||||
"""メールテンプレートのプレースホルダーを置き換える
|
|
||||||
|
|
||||||
Args:
|
|
||||||
mail_template (str): 置き換え前のメールテンプレート
|
|
||||||
mail_msg (str): メールテンプレートのプレースホルダーを置き換える文言(ファイル一覧)
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
str: 置き換え後のメール本文
|
|
||||||
"""
|
|
||||||
substitute_dict = {
|
|
||||||
"notice_file_names": mail_msg
|
|
||||||
}
|
|
||||||
mail_str = mail_template.format_map(substitute_dict)
|
|
||||||
return mail_str
|
|
||||||
|
|
||||||
|
|
||||||
def make_failure_item_on_error(message_id: str) -> dict[str, str]:
|
|
||||||
"""Report batch item failuresによる処理に失敗したメッセージの判別のためのレスポンスを作成する
|
|
||||||
@see <https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#services-sqs-batchfailurereporting>
|
|
||||||
Args:
|
|
||||||
message_id (str): SQSメッセージId
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
dict[str, str]: Report batch item failuresで失敗したSQSメッセージを判別するための辞書オブジェクト
|
|
||||||
"""
|
|
||||||
return {"itemIdentifier": message_id}
|
|
||||||
|
|
||||||
|
|
||||||
def daily_data_unreceive_check(records: list, execute_date: str) -> tuple[list[dict[str, str]], list[str]]:
|
|
||||||
"""日次データ未受領チェック
|
|
||||||
|
|
||||||
Args:
|
|
||||||
records (list): SQS Eventのレコードリスト
|
|
||||||
execute_date (str): 処理稼働年月日
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
tuple[list[dict[str, str]], list[str]]: 失敗メッセージIdのリスト, 成功メッセージIdのリスト
|
|
||||||
"""
|
|
||||||
batch_failed_items = []
|
|
||||||
batch_success_items = []
|
|
||||||
|
|
||||||
for record in records:
|
|
||||||
# メール挿入用文言を格納するためのメモリを保持する
|
|
||||||
mail_message = ''
|
|
||||||
try:
|
|
||||||
# SQSパラメータをJSONシリアライズし、Pythonの辞書オブジェクト(イベントパラメータ)を取得する。
|
|
||||||
event_parameter = json.loads(record['body'])
|
|
||||||
receive_date = execute_date.strftime('%Y/%m/%d')
|
|
||||||
|
|
||||||
try:
|
|
||||||
# 1.SQSメッセージIDを取得する
|
|
||||||
message_id = record["messageId"]
|
|
||||||
# 2.DynamoDBテーブルからレコードを取得し、処理済みメッセージかどうかを判別する
|
|
||||||
if is_duplicate_message(message_id):
|
|
||||||
logger.info(f'I-02-02 受信したメッセージは既に処理済みのため、処理をスキップします。メッセージID: {message_id} データソース バケットディレクトリ: {event_parameter["check_bucket_name"]}/{event_parameter["check_folder_prefix"]}/')
|
|
||||||
continue
|
|
||||||
except Exception as e:
|
|
||||||
logger.exception(f"E-02-01 メッセージ重複チェック処理に失敗しました エラー内容:{e}")
|
|
||||||
batch_failed_items.append(make_failure_item_on_error(message_id))
|
|
||||||
continue
|
|
||||||
|
|
||||||
# ③ 設定ファイル[受領チェック対象ファイルリスト]を読み込む
|
|
||||||
try:
|
|
||||||
logger.info('I-03-01 ' +'受領チェック対象ファイルリスト読込 読込元:' + f'{CONFIG_BUCKET_NAME}/{event_parameter["check_target_file_list"]}')
|
|
||||||
check_target_file_list_response = s3_client.get_object(
|
|
||||||
Bucket=CONFIG_BUCKET_NAME,
|
|
||||||
Key=f'{event_parameter["check_target_file_list"]}'
|
|
||||||
)
|
|
||||||
logger.info('I-03-02 受領チェック対象ファイルリストを読み込みました')
|
|
||||||
except Exception as e:
|
|
||||||
logger.exception(f"E-03-01 受領チェック対象ファイルリストの読み込みに失敗しました エラー内容:{e} 読込元:{CONFIG_BUCKET_NAME}/{event_parameter["check_target_file_list"]}")
|
|
||||||
batch_failed_items.append(make_failure_item_on_error(message_id))
|
|
||||||
continue
|
|
||||||
|
|
||||||
# ④ 受領チェック処理を行う
|
|
||||||
logger.info(f'I-04-01 日次データ受領チェック ({event_parameter['data_source_name']}) 処理開始')
|
|
||||||
object_prefix = f'{event_parameter["check_folder_prefix"]}/{receive_date}/'
|
|
||||||
|
|
||||||
# 1.日次データバックアップ保管バケットの処理稼働月に該当するサブフォルダにあるファイル一覧を取得する
|
|
||||||
logger.info(f'I-04-02 オブジェクトリストの取得 取得先:{event_parameter['check_bucket_name']}/{object_prefix}')
|
|
||||||
receive_file_list_response = s3_client.list_objects_v2(Bucket=event_parameter['check_bucket_name'], Prefix=object_prefix)
|
|
||||||
receive_file_list = []
|
|
||||||
for content in receive_file_list_response.get('Contents', []):
|
|
||||||
# オブジェクトのキーからファイル名を切り出してリストに追加
|
|
||||||
obj_key = content['Key'].rsplit('/', INDEX_SPLIT_NUM)
|
|
||||||
receive_file_list.append(obj_key[INDEX_LAST])
|
|
||||||
|
|
||||||
# 2.I/Fファイルチェック処理
|
|
||||||
logger.info(f'I-04-03 日次受信データ({event_parameter['data_source_name']}) 未受領チェック処理開始')
|
|
||||||
check_target_file_name_body = io.TextIOWrapper(io.BytesIO(
|
|
||||||
check_target_file_list_response["Body"].read()), encoding='utf-8')
|
|
||||||
match_count = 0
|
|
||||||
row_count = 0
|
|
||||||
for tsv_row in csv.reader(check_target_file_name_body, delimiter='\t'):
|
|
||||||
# 「④1.」で取得したリストが「③」で読み込んだファイル内に存在するか確認する
|
|
||||||
is_file_not_exists = True
|
|
||||||
for file_name in receive_file_list:
|
|
||||||
match_result = re.fullmatch(tsv_row[INDEX_REGEX], file_name)
|
|
||||||
# 「③」で読み込んだファイルに記載されている全てが「④1.」で取得したリストに存在した場合
|
|
||||||
if match_result is not None:
|
|
||||||
is_file_not_exists = False
|
|
||||||
logger.info(f'I-04-04 I/Fファイルの受領を確認しました ファイル名:{file_name}')
|
|
||||||
match_count += 1
|
|
||||||
if is_file_not_exists:
|
|
||||||
logger.info(f'I-04-06 I/Fファイルに不足があります ファイル名:{tsv_row[INDEX_DATA_NAME]}')
|
|
||||||
mail_message += f'{MAIL_INDENT}{tsv_row[INDEX_DATA_NAME]}\n'
|
|
||||||
|
|
||||||
row_count += 1
|
|
||||||
|
|
||||||
if row_count == match_count:
|
|
||||||
logger.info('I-04-05 I/Fファイルは全て受領していることを確認しました')
|
|
||||||
|
|
||||||
# ⑤ 「①」でメモリ保持しているメール挿入用文言に出力内容が存在するか確認する
|
|
||||||
logger.info('I-05-01 メール送信処理開始')
|
|
||||||
|
|
||||||
if len(mail_message) == 0:
|
|
||||||
logger.info(
|
|
||||||
f'I-05-09 {execute_date} {event_parameter["data_source_name"]}データI/Fファイルに不足が無いため、メール送信処理をスキップします')
|
|
||||||
batch_success_items.append(message_id)
|
|
||||||
continue
|
|
||||||
|
|
||||||
# 1.存在した場合
|
|
||||||
logger.info(f'I-05-02 {execute_date} {event_parameter["data_source_name"]} データI/Fファイルに不足があるため、メール送信処理を開始します')
|
|
||||||
|
|
||||||
try:
|
|
||||||
logger.info('I-05-03 ' +f'通知メール(タイトル)テンプレートファイル読込 読込元:{CONFIG_BUCKET_NAME}/{event_parameter["notice_mail_title_template"]}')
|
|
||||||
mail_title_response = s3_client.get_object(
|
|
||||||
Bucket=CONFIG_BUCKET_NAME,
|
|
||||||
Key=f'{event_parameter["notice_mail_title_template"]}'
|
|
||||||
)
|
|
||||||
mail_title_template = (mail_title_response['Body'].read().decode('utf-8'))
|
|
||||||
# 改行を取り除く
|
|
||||||
mail_title_without_line_break = mail_title_template.splitlines()[0]
|
|
||||||
logger.info('I-05-04 通知メール(タイトル)テンプレートファイルを読み込みました')
|
|
||||||
except Exception as e:
|
|
||||||
logger.exception(
|
|
||||||
f'E-05-01 通知メール(タイトル)テンプレートファイルの読み込みに失敗しました エラー内容:{e} 読込元:{CONFIG_BUCKET_NAME}/{event_parameter["notice_mail_title_template"]}')
|
|
||||||
batch_failed_items.append(
|
|
||||||
make_failure_item_on_error(message_id))
|
|
||||||
continue
|
|
||||||
|
|
||||||
try:
|
|
||||||
logger.info('I-05-05 ' +f'通知メール(本文)テンプレートファイル読込 読込元:{CONFIG_BUCKET_NAME}/{event_parameter["notice_mail_body_template"]}')
|
|
||||||
mail_body_template_response = s3_client.get_object(
|
|
||||||
Bucket=CONFIG_BUCKET_NAME,
|
|
||||||
Key=f'{event_parameter["notice_mail_body_template"]}'
|
|
||||||
)
|
|
||||||
mail_body_template = (mail_body_template_response['Body'].read().decode('utf-8'))
|
|
||||||
# メール本文内のプレースホルダーを置き換える
|
|
||||||
mail_body = substitute_mail_template(mail_body_template, mail_message)
|
|
||||||
logger.info('I-05-06 通知メール(本文)テンプレートファイルを読み込みました')
|
|
||||||
except Exception as e:
|
|
||||||
logger.exception(f'E-05-02 通知メール(本文)テンプレートファイルの読み込みに失敗しました エラー内容:{e} 読込元:{CONFIG_BUCKET_NAME}/{event_parameter["notice_mail_body_template"]}')
|
|
||||||
batch_failed_items.append(make_failure_item_on_error(message_id))
|
|
||||||
continue
|
|
||||||
|
|
||||||
logger.info(f'I-05-07 メール送信指示をします 送信先トピック:{MBJ_NOTICE_TOPIC}')
|
|
||||||
params = {
|
|
||||||
'TopicArn': MBJ_NOTICE_TOPIC,
|
|
||||||
'Subject': mail_title_without_line_break,
|
|
||||||
'Message': mail_body
|
|
||||||
}
|
|
||||||
sns_client.publish(**params)
|
|
||||||
logger.info('I-05-08 メール送信指示をしました')
|
|
||||||
|
|
||||||
batch_success_items.append(message_id)
|
|
||||||
except Exception as e:
|
|
||||||
logger.exception(f'E-99 想定外のエラーが発生しました エラー内容:{e}')
|
|
||||||
batch_failed_items.append(make_failure_item_on_error(message_id))
|
|
||||||
continue
|
|
||||||
|
|
||||||
return batch_failed_items, batch_success_items
|
|
||||||
|
|
||||||
|
|
||||||
def lambda_handler(event, context):
|
|
||||||
try:
|
|
||||||
# ① 処理開始ログを出力する
|
|
||||||
logger.info('I-01-01 処理開始 日次データ受領チェック処理')
|
|
||||||
# 処理稼働年月を取得しメモリに保持する
|
|
||||||
execute_date = datetime.date.today()
|
|
||||||
# 処理成功メッセージIDリストをメモリに保持する(初期値=空のリスト)
|
|
||||||
batch_success_items = []
|
|
||||||
# 処理失敗メッセージIDリストをメモリに保持する(初期値=空のリスト)
|
|
||||||
batch_failed_items = []
|
|
||||||
|
|
||||||
# ② SQSメッセージ重複排除処理を行う
|
|
||||||
logger.info('I-02-01 メッセージ処理開始')
|
|
||||||
batch_failed_items, batch_success_items = daily_data_unreceive_check(event["Records"], execute_date)
|
|
||||||
logger.info('I-06-01 すべてのメッセージの処理完了')
|
|
||||||
|
|
||||||
# ⑦ メッセージを処理済として、以下のDynamoDBテーブルに記録する
|
|
||||||
put_success_messages_to_dynamo_db(batch_success_items)
|
|
||||||
logger.info('I-07-01 処理済みメッセージIDの記録完了')
|
|
||||||
logger.info('I-07-02 処理終了 日次データ受領チェック処理')
|
|
||||||
|
|
||||||
except Exception as e:
|
|
||||||
logger.exception(f'E-99 想定外のエラーが発生しました エラー内容:{e}')
|
|
||||||
raise e
|
|
||||||
|
|
||||||
return batch_failed_items
|
|
||||||
|
|
||||||
|
|
||||||
# 動作確認用のコード
|
|
||||||
# if __name__ == '__main__':
|
|
||||||
# lambda_handler({
|
|
||||||
# "Records": [
|
|
||||||
# {
|
|
||||||
# "messageId": "19dd0b57-b21e-4ac1-bd88-01bbb068cb78",
|
|
||||||
# "receiptHandle": "MessageReceiptHandle",
|
|
||||||
# "body": "{\"data_source_name\":\"data_source_name\",\"check_bucket_name\":\"check_bucket_name\",\"check_folder_prefix\":\"check_folder_prefix\",\"check_target_file_list\":\"check_target_file_list\",\"notice_mail_title_template\":\"notice_mail_title_template\",\"notice_mail_body_template\":\"notice_mail_body_template\"\r\n}",
|
|
||||||
# "attributes": {
|
|
||||||
# "ApproximateReceiveCount": "1",
|
|
||||||
# "SentTimestamp": "1523232000000",
|
|
||||||
# "SenderId": "123456789012",
|
|
||||||
# "ApproximateFirstReceiveTimestamp": "1523232000001"
|
|
||||||
# },
|
|
||||||
# "messageAttributes": {},
|
|
||||||
# "md5OfBody": "{{{md5_of_body}}}",
|
|
||||||
# "eventSource": "aws:sqs",
|
|
||||||
# "eventSourceARN": "arn:aws:sqs:us-east-1:123456789012:MyQueue",
|
|
||||||
# "awsRegion": "us-east-1"
|
|
||||||
# }
|
|
||||||
# ]
|
|
||||||
# }, {})
|
|
||||||
@ -8,9 +8,8 @@ import boto3
|
|||||||
|
|
||||||
sns_client = boto3.client('sns')
|
sns_client = boto3.client('sns')
|
||||||
|
|
||||||
|
|
||||||
def lambda_handler(event, context):
|
def lambda_handler(event, context):
|
||||||
awslogs_dict = event.get('awslogs')
|
awslogs_dict = event.get('awslogs')
|
||||||
base64_data = awslogs_dict.get('data')
|
base64_data = awslogs_dict.get('data')
|
||||||
try:
|
try:
|
||||||
decoded_gzip_data = base64.b64decode(base64_data)
|
decoded_gzip_data = base64.b64decode(base64_data)
|
||||||
@ -19,16 +18,12 @@ def lambda_handler(event, context):
|
|||||||
log_event_str = gzip.GzipFile(fileobj=BytesIO(decoded_gzip_data)).read()
|
log_event_str = gzip.GzipFile(fileobj=BytesIO(decoded_gzip_data)).read()
|
||||||
log_event = json.loads(log_event_str)
|
log_event = json.loads(log_event_str)
|
||||||
|
|
||||||
# SNSのSubjectパラメータは100文字までという制限があるため、100文字に切り出す(切り捨てた分は「...」に変換)
|
|
||||||
subject = f'Detect Error(or Warning) in {log_event.get("logGroup")}'
|
|
||||||
subject = subject[:97] + '...' if len(subject) > 100 else subject
|
|
||||||
|
|
||||||
publish_message = {
|
publish_message = {
|
||||||
'Subject': subject,
|
'Subject': f'Detect Error(or Warning) in {log_event.get("logGroup")}',
|
||||||
'Message': '\n'.join([log.get('message') for log in log_event.get('logEvents')]),
|
'Message': '\n'.join([log.get('message') for log in log_event.get('logEvents')]),
|
||||||
'TopicArn': os.environ.get('SNS_TOPIC_ARN')
|
'TopicArn': os.environ.get('SNS_TOPIC_ARN')
|
||||||
}
|
}
|
||||||
|
|
||||||
print(publish_message)
|
print(publish_message)
|
||||||
|
|
||||||
sns_client.publish(**publish_message)
|
sns_client.publish(**publish_message)
|
||||||
|
|||||||
@ -1,26 +1,17 @@
|
|||||||
FROM python:3.12-slim-bookworm
|
FROM python:3.9
|
||||||
|
|
||||||
ENV TZ="Asia/Tokyo"
|
ENV TZ="Asia/Tokyo"
|
||||||
|
|
||||||
# pythonの標準出力をバッファリングしないフラグ
|
|
||||||
ENV PYTHONUNBUFFERED=1
|
|
||||||
# pythonのバイトコードを生成しないフラグ
|
|
||||||
ENV PYTHONDONTWRITEBYTECODE=1
|
|
||||||
|
|
||||||
# 必要なファイルをイメージにコピー
|
|
||||||
WORKDIR /function
|
WORKDIR /function
|
||||||
COPY Pipfile Pipfile.lock ./
|
COPY requirements.txt ./
|
||||||
|
RUN \
|
||||||
# ライブラリインストール
|
apt update -y && \
|
||||||
RUN apt update -y && \
|
# パッケージのセキュリティアップデートのみを適用するコマンド
|
||||||
apt-get -y install gnupg2 && \
|
apt install -y unattended-upgrades && \
|
||||||
pip install pipenv --no-cache-dir && \
|
unattended-upgrades && \
|
||||||
pipenv install --system --deploy && \
|
pip install --upgrade pip wheel setuptools && \
|
||||||
pip uninstall -y pipenv virtualenv-clone virtualenv
|
pip install --no-cache-dir -r requirements.txt
|
||||||
COPY datadecrypt ./
|
COPY datadecrypt ./
|
||||||
|
|
||||||
# エントリーポイントの設定
|
|
||||||
ENTRYPOINT [ "/usr/local/bin/python", "-m", "awslambdaric" ]
|
ENTRYPOINT [ "/usr/local/bin/python", "-m", "awslambdaric" ]
|
||||||
|
|
||||||
# lambdaハンドラを起動
|
|
||||||
CMD [ "main.handler" ]
|
CMD [ "main.handler" ]
|
||||||
@ -1,16 +0,0 @@
|
|||||||
[[source]]
|
|
||||||
url = "https://pypi.org/simple"
|
|
||||||
verify_ssl = true
|
|
||||||
name = "pypi"
|
|
||||||
|
|
||||||
[packages]
|
|
||||||
boto3 = "*"
|
|
||||||
python-gnupg = "*"
|
|
||||||
awslambdaric = "*"
|
|
||||||
|
|
||||||
[dev-packages]
|
|
||||||
autopep8 = "*"
|
|
||||||
flake8 = "*"
|
|
||||||
|
|
||||||
[requires]
|
|
||||||
python_version = "3.12"
|
|
||||||
281
lambda/sap-data-decrypt/Pipfile.lock
generated
281
lambda/sap-data-decrypt/Pipfile.lock
generated
@ -1,281 +0,0 @@
|
|||||||
{
|
|
||||||
"_meta": {
|
|
||||||
"hash": {
|
|
||||||
"sha256": "1a02067c1f004e5d31364e9631ef0cefbe083f9c667e82317ebda4bda9b2133e"
|
|
||||||
},
|
|
||||||
"pipfile-spec": 6,
|
|
||||||
"requires": {
|
|
||||||
"python_version": "3.12"
|
|
||||||
},
|
|
||||||
"sources": [
|
|
||||||
{
|
|
||||||
"name": "pypi",
|
|
||||||
"url": "https://pypi.org/simple",
|
|
||||||
"verify_ssl": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"awslambdaric": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:09ba762169869c576f8842d2b08fa6e30254494eabe533eb77efef0e38af33fa",
|
|
||||||
"sha256:0b30fd0b2e62c46c268eaf316c3bc77ba6d3900caea3c81cdf211952062e118f",
|
|
||||||
"sha256:134b5132803094ce0488f2b3e071745f09779c583371e84bc5979c21a5bac46a",
|
|
||||||
"sha256:1c1fd30570b9a2c5cc4ccd2151c883312c5eef2dbf759c8e9d29c18cec6de2e8",
|
|
||||||
"sha256:2cd110915f17967bfc39079c37efd7f9ca65eedb049c79f5203f02dcb3a514fc",
|
|
||||||
"sha256:329bd2e09d6a8257b9a7ff386d9956783ec905bba4c00ea2f841fbc89246910e",
|
|
||||||
"sha256:37159c9f67d5cced4dcf72963d29dcac48b214f601931d15b78f58a1336c9dc5",
|
|
||||||
"sha256:4972127ef34729c44c9567148e68a4eacc283d685400f9d08bf51138ac4ee3d5",
|
|
||||||
"sha256:537e4986f723cb981af01d031743c9ae09b9ddc497d2582a548da0d696c81809",
|
|
||||||
"sha256:6c8ecbcf05cf02f1bd263a0831b1acf3c29cd9296cb72e74067de71185f6c118",
|
|
||||||
"sha256:755db7118d1ed900a675a2608ea9c48c463949ede5cc91648c542a5ec89df4ed",
|
|
||||||
"sha256:7b7e44922dc4f22cdc9462d5eb41b43f8edfd4ec091f26b91bcbd9eec9c0e368",
|
|
||||||
"sha256:84855b22f2dfb68f1180ea9acbd18e5b636aed02d45e88d7bdfbf10551ba5658",
|
|
||||||
"sha256:889b4bb6e9d88aab26d67cce7f9212aafa1f53c64eca2dc83cdf42a79eb3e6ec",
|
|
||||||
"sha256:9bb003f14f3754a3d6912e3a478cf3a306b84febdc26b612fe23c1143a89f0fd",
|
|
||||||
"sha256:a5860d96e08cc4bab5bd4d7a2cd5eeb10ea17d0269fe4c1b7c57ac8d06abbf70",
|
|
||||||
"sha256:a7066867f704675c65da522ee28174d674b847f7df9479eb7f60cbba2ab85e09",
|
|
||||||
"sha256:a9d0d3de5a3fd9b2d8496b07e30b471b74d6a7839c878bef89419db0dae8795e",
|
|
||||||
"sha256:ad2ff7352517b590ca5748f75b9b9df906b111139753f35bcb069f25c14d3c94",
|
|
||||||
"sha256:dc30e9b674828b4d00f703f7774e1bc6e78f8cc1b7fd577e583d66e1c62734ea",
|
|
||||||
"sha256:fbe854813e5a1bac7d68cc05827dbcf5eb7fd2158ec2e6972d5643d00c3f3f61"
|
|
||||||
],
|
|
||||||
"index": "pypi",
|
|
||||||
"markers": "python_version >= '3.9'",
|
|
||||||
"version": "==3.1.1"
|
|
||||||
},
|
|
||||||
"boto3": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:3faa2c328a61745f3215a63039606a6fcf55d9afe1cc76e3a5e27b9db58cdbf6",
|
|
||||||
"sha256:b998edac72f6740bd5d9d585cf3880f2dfeb4842e626b34430fd0e9623378011"
|
|
||||||
],
|
|
||||||
"index": "pypi",
|
|
||||||
"markers": "python_version >= '3.9'",
|
|
||||||
"version": "==1.38.32"
|
|
||||||
},
|
|
||||||
"botocore": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:0899a090e352cb5eeaae2c7bb52a987b469d23912c7ece86664dfb5c2e074978",
|
|
||||||
"sha256:64ab919a5d8b74dd73eaac1f978d0e674d11ff3bbe8815c3d2982477be9a082c"
|
|
||||||
],
|
|
||||||
"markers": "python_version >= '3.9'",
|
|
||||||
"version": "==1.38.32"
|
|
||||||
},
|
|
||||||
"jmespath": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980",
|
|
||||||
"sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe"
|
|
||||||
],
|
|
||||||
"markers": "python_version >= '3.7'",
|
|
||||||
"version": "==1.0.1"
|
|
||||||
},
|
|
||||||
"python-dateutil": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3",
|
|
||||||
"sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"
|
|
||||||
],
|
|
||||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
|
|
||||||
"version": "==2.9.0.post0"
|
|
||||||
},
|
|
||||||
"python-gnupg": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:40ce25cde9df29af91fe931ce9df3ce544e14a37f62b13ca878c897217b2de6c",
|
|
||||||
"sha256:f2fdb5fb29615c77c2743e1cb3d9314353a6e87b10c37d238d91ae1c6feae086"
|
|
||||||
],
|
|
||||||
"index": "pypi",
|
|
||||||
"version": "==0.5.4"
|
|
||||||
},
|
|
||||||
"s3transfer": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:0148ef34d6dd964d0d8cf4311b2b21c474693e57c2e069ec708ce043d2b527be",
|
|
||||||
"sha256:f5e6db74eb7776a37208001113ea7aa97695368242b364d73e91c981ac522177"
|
|
||||||
],
|
|
||||||
"markers": "python_version >= '3.9'",
|
|
||||||
"version": "==0.13.0"
|
|
||||||
},
|
|
||||||
"simplejson": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:000602141d0bddfcff60ea6a6e97d5e10c9db6b17fd2d6c66199fa481b6214bb",
|
|
||||||
"sha256:03d7a426e416fe0d3337115f04164cd9427eb4256e843a6b8751cacf70abc832",
|
|
||||||
"sha256:03db8cb64154189a92a7786209f24e391644f3a3fa335658be2df2af1960b8d8",
|
|
||||||
"sha256:03ec618ed65caab48e81e3ed29586236a8e57daef792f1f3bb59504a7e98cd10",
|
|
||||||
"sha256:0821871404a537fd0e22eba240c74c0467c28af6cc435903eca394cfc74a0497",
|
|
||||||
"sha256:1190f9a3ce644fd50ec277ac4a98c0517f532cfebdcc4bd975c0979a9f05e1fb",
|
|
||||||
"sha256:15c7de4c88ab2fbcb8781a3b982ef883696736134e20b1210bca43fb42ff1acf",
|
|
||||||
"sha256:1b9fd15853b90aec3b1739f4471efbf1ac05066a2c7041bf8db821bb73cd2ddc",
|
|
||||||
"sha256:1bd6bfe5678d73fbd5328eea6a35216503796428fc47f1237432522febaf3a0c",
|
|
||||||
"sha256:272cc767826e924a6bd369ea3dbf18e166ded29059c7a4d64d21a9a22424b5b5",
|
|
||||||
"sha256:299b1007b8101d50d95bc0db1bf5c38dc372e85b504cf77f596462083ee77e3f",
|
|
||||||
"sha256:2b6436c48e64378fa844d8c9e58a5ed0352bbcfd4028369a9b46679b7ab79d2d",
|
|
||||||
"sha256:2e671dd62051129185d3a9a92c60101f56cbc174854a1a3dfb69114ebd9e1699",
|
|
||||||
"sha256:325b8c107253d3217e89d7b50c71015b5b31e2433e6c5bf38967b2f80630a8ca",
|
|
||||||
"sha256:339f407373325a36b7fd744b688ba5bae0666b5d340ec6d98aebc3014bf3d8ea",
|
|
||||||
"sha256:3466d2839fdc83e1af42e07b90bc8ff361c4e8796cd66722a40ba14e458faddd",
|
|
||||||
"sha256:391345b4157cc4e120027e013bd35c45e2c191e2bf48b8913af488cdc3b9243c",
|
|
||||||
"sha256:3c4f0a61cdc05550782ca4a2cdb311ea196c2e6be6b24a09bf71360ca8c3ca9b",
|
|
||||||
"sha256:3d7310172d5340febd258cb147f46aae30ad57c445f4d7e1ae8461c10aaf43b0",
|
|
||||||
"sha256:3e7963197d958fcf9e98b212b80977d56c022384621ff463d98afc3b6b1ce7e8",
|
|
||||||
"sha256:455a882ff3f97d810709f7b620007d4e0aca8da71d06fc5c18ba11daf1c4df49",
|
|
||||||
"sha256:463f1fca8fbf23d088e5850fdd0dd4d5faea8900a9f9680270bd98fd649814ca",
|
|
||||||
"sha256:4762e05577955312a4c6802f58dd02e040cc79ae59cda510aa1564d84449c102",
|
|
||||||
"sha256:489c3a43116082bad56795215786313832ba3991cca1f55838e52a553f451ab6",
|
|
||||||
"sha256:49d059b8363327eee3c94799dd96782314b2dbd7bcc293b4ad48db69d6f4d362",
|
|
||||||
"sha256:4a586ce4f78cec11f22fe55c5bee0f067e803aab9bad3441afe2181693b5ebb5",
|
|
||||||
"sha256:4a8e197e4cf6d42c2c57e7c52cd7c1e7b3e37c5911df1314fb393320131e2101",
|
|
||||||
"sha256:4a92e948bad8df7fa900ba2ba0667a98303f3db206cbaac574935c332838208e",
|
|
||||||
"sha256:51b41f284d603c4380732d7d619f8b34bd04bc4aa0ed0ed5f4ffd0539b14da44",
|
|
||||||
"sha256:5c0de368f3052a59a1acf21f8b2dd28686a9e4eba2da7efae7ed9554cb31e7bc",
|
|
||||||
"sha256:627d4486a1ea7edf1f66bb044ace1ce6b4c1698acd1b05353c97ba4864ea2e17",
|
|
||||||
"sha256:652d8eecbb9a3b6461b21ec7cf11fd0acbab144e45e600c817ecf18e4580b99e",
|
|
||||||
"sha256:69dd28d4ce38390ea4aaf212902712c0fd1093dc4c1ff67e09687c3c3e15a749",
|
|
||||||
"sha256:6a6dd11ee282937ad749da6f3b8d87952ad585b26e5edfa10da3ae2536c73078",
|
|
||||||
"sha256:6bd09c8c75666e7f62a33d2f1fb57f81da1fcbb19a9fe7d7910b5756e1dd6048",
|
|
||||||
"sha256:6c21f5c026ca633cfffcb6bc1fac2e99f65cb2b24657d3bef21aed9916cc3bbf",
|
|
||||||
"sha256:6d4f320c33277a5b715db5bf5b10dae10c19076bd6d66c2843e04bd12d1f1ea5",
|
|
||||||
"sha256:6dd3a1d5aca87bf947f3339b0f8e8e329f1badf548bdbff37fac63c17936da8e",
|
|
||||||
"sha256:6e18345c8dda5d699be8166b61f9d80aaee4545b709f1363f60813dc032dac53",
|
|
||||||
"sha256:6e6697a3067d281f01de0fe96fc7cba4ea870d96d7deb7bfcf85186d74456503",
|
|
||||||
"sha256:71b75d448fd0ceb2e7c90e72bb82c41f8462550d48529980bc0bab1d2495bfbb",
|
|
||||||
"sha256:71e849e7ceb2178344998cbe5ade101f1b329460243c79c27fbfc51c0447a7c3",
|
|
||||||
"sha256:74a1608f9e6e8c27a4008d70a54270868306d80ed48c9df7872f9f4b8ac87808",
|
|
||||||
"sha256:7551682b60bba3a9e2780742e101cf0a64250e76de7d09b1c4b0c8a7c7cc6834",
|
|
||||||
"sha256:76461ec929282dde4a08061071a47281ad939d0202dc4e63cdd135844e162fbc",
|
|
||||||
"sha256:78520f04b7548a5e476b5396c0847e066f1e0a4c0c5e920da1ad65e95f410b11",
|
|
||||||
"sha256:7ceed598e4bacbf5133fe7a418f7991bb2df0683f3ac11fbf9e36a2bc7aa4b85",
|
|
||||||
"sha256:7e9d73f46119240e4f4f07868241749d67d09873f40cb968d639aa9ccc488b86",
|
|
||||||
"sha256:7eaae2b88eb5da53caaffdfa50e2e12022553949b88c0df4f9a9663609373f72",
|
|
||||||
"sha256:87fc623d457173a0213bc9ca4e346b83c9d443f63ed5cca847fb0cacea3cfc95",
|
|
||||||
"sha256:884e6183d16b725e113b83a6fc0230152ab6627d4d36cb05c89c2c5bccfa7bc6",
|
|
||||||
"sha256:88a7baa8211089b9e58d78fbc1b0b322103f3f3d459ff16f03a36cece0d0fcf0",
|
|
||||||
"sha256:896a6c04d7861d507d800da7642479c3547060bf97419d9ef73d98ced8258766",
|
|
||||||
"sha256:8a6c1bbac39fa4a79f83cbf1df6ccd8ff7069582a9fd8db1e52cea073bc2c697",
|
|
||||||
"sha256:8bb98fdf318c05aefd08a92583bd6ee148e93c6756fb1befb7b2d5f27824be78",
|
|
||||||
"sha256:8c09948f1a486a89251ee3a67c9f8c969b379f6ffff1a6064b41fea3bce0a112",
|
|
||||||
"sha256:8d23b7f8d6b72319d6d55a0261089ff621ce87e54731c2d3de6a9bf7be5c028c",
|
|
||||||
"sha256:90b573693d1526bed576f6817e2a492eaaef68f088b57d7a9e83d122bbb49e51",
|
|
||||||
"sha256:9a74e70818818981294b8e6956ce3496c5e1bd4726ac864fae473197671f7b85",
|
|
||||||
"sha256:9c079606f461a6e950099167e21e13985147c8a24be8eea66c9ad68f73fad744",
|
|
||||||
"sha256:9daf8cdc7ee8a9e9f7a3b313ba0a003391857e90d0e82fbcd4d614aa05cb7c3b",
|
|
||||||
"sha256:9e8eacf6a3491bf76ea91a8d46726368a6be0eb94993f60b8583550baae9439e",
|
|
||||||
"sha256:9faceb68fba27ef17eda306e4cd97a7b4b14fdadca5fbb15790ba8b26ebeec0c",
|
|
||||||
"sha256:a2cc4f6486f9f515b62f5831ff1888886619b84fc837de68f26d919ba7bbdcbc",
|
|
||||||
"sha256:a3c2df555ee4016148fa192e2b9cd9e60bc1d40769366134882685e90aee2a1e",
|
|
||||||
"sha256:a7e15b716d09f318c8cda3e20f82fae81684ce3d3acd1d7770fa3007df1769de",
|
|
||||||
"sha256:a8011f1dd1d676befcd4d675ebdbfdbbefd3bf350052b956ba8c699fca7d8cef",
|
|
||||||
"sha256:ab19c2da8c043607bde4d4ef3a6b633e668a7d2e3d56f40a476a74c5ea71949f",
|
|
||||||
"sha256:ab980fcc446ab87ea0879edad41a5c28f2d86020014eb035cf5161e8de4474c6",
|
|
||||||
"sha256:ae6e637dc24f8fee332ed23dd070e81394138e42cd4fd9d0923e5045ba122e27",
|
|
||||||
"sha256:ae81e482476eaa088ef9d0120ae5345de924f23962c0c1e20abbdff597631f87",
|
|
||||||
"sha256:af8377a8af78226e82e3a4349efdde59ffa421ae88be67e18cef915e4023a595",
|
|
||||||
"sha256:b122a19b552b212fc3b5b96fc5ce92333d4a9ac0a800803e1f17ebb16dac4be5",
|
|
||||||
"sha256:b2578bedaedf6294415197b267d4ef678fea336dd78ee2a6d2f4b028e9d07be3",
|
|
||||||
"sha256:b63fdbab29dc3868d6f009a59797cefaba315fd43cd32ddd998ee1da28e50e29",
|
|
||||||
"sha256:bd9577ec1c8c3a43040e3787711e4c257c70035b7551a21854b5dec88dad09e1",
|
|
||||||
"sha256:c02f4868a3a46ffe284a51a88d134dc96feff6079a7115164885331a1ba8ed9f",
|
|
||||||
"sha256:c1336ba7bcb722ad487cd265701ff0583c0bb6de638364ca947bb84ecc0015d1",
|
|
||||||
"sha256:c6fdcc9debb711ddd2ad6d69f9386a3d9e8e253234bbb30513e0a7caa9510c51",
|
|
||||||
"sha256:c7edf279c1376f28bf41e916c015a2a08896597869d57d621f55b6a30c7e1e6d",
|
|
||||||
"sha256:c939a1e576bded47d7d03aa2afc2ae90b928b2cf1d9dc2070ceec51fd463f430",
|
|
||||||
"sha256:cbbd7b215ad4fc6f058b5dd4c26ee5c59f72e031dfda3ac183d7968a99e4ca3a",
|
|
||||||
"sha256:cd2cdead1d3197f0ff43373cf4730213420523ba48697743e135e26f3d179f38",
|
|
||||||
"sha256:cda5c32a98f392909088111ecec23f2b0d39346ceae1a0fea23ab2d1f84ec21d",
|
|
||||||
"sha256:ceab2ce2acdc7fbaa433a93006758db6ba9a659e80c4faa13b80b9d2318e9b17",
|
|
||||||
"sha256:d34d04bf90b4cea7c22d8b19091633908f14a096caa301b24c2f3d85b5068fb8",
|
|
||||||
"sha256:d492ed8e92f3a9f9be829205f44b1d0a89af6582f0cf43e0d129fa477b93fe0c",
|
|
||||||
"sha256:d8853c269a4c5146ddca4aa7c70e631795e9d11239d5fedb1c6bbc91ffdebcac",
|
|
||||||
"sha256:d9202b9de38f12e99a40addd1a8d508a13c77f46d87ab1f9095f154667f4fe81",
|
|
||||||
"sha256:dfe7a9da5fd2a3499436cd350f31539e0a6ded5da6b5b3d422df016444d65e43",
|
|
||||||
"sha256:e041add470e8f8535cc05509485eb7205729a84441f03b25cde80ad48823792e",
|
|
||||||
"sha256:e25b2a0c396f3b84fb89573d07b0e1846ed563eb364f2ea8230ca92b8a8cb786",
|
|
||||||
"sha256:e39eaa57c7757daa25bcd21f976c46be443b73dd6c3da47fe5ce7b7048ccefe2",
|
|
||||||
"sha256:e580aa65d5f6c3bf41b9b4afe74be5d5ddba9576701c107c772d936ea2b5043a",
|
|
||||||
"sha256:e64139b4ec4f1f24c142ff7dcafe55a22b811a74d86d66560c8815687143037d",
|
|
||||||
"sha256:e66712b17d8425bb7ff8968d4c7c7fd5a2dd7bd63728b28356223c000dd2f91f",
|
|
||||||
"sha256:e836fb88902799eac8debc2b642300748f4860a197fa3d9ea502112b6bb8e142",
|
|
||||||
"sha256:e91703a4c5fec53e36875ae426ad785f4120bd1d93b65bed4752eeccd1789e0c",
|
|
||||||
"sha256:e975aac6a5acd8b510eba58d5591e10a03e3d16c1cf8a8624ca177491f7230f0",
|
|
||||||
"sha256:ec6a1e0a7aff76f0e008bebfa950188b9c50b58c1885d898145f48fc8e189a56",
|
|
||||||
"sha256:ed6a17fd397f0e2b3ad668fc9e19253ed2e3875ad9086bd7f795c29a3223f4a1",
|
|
||||||
"sha256:ede69c765e9901861ad7c6139023b7b7d5807c48a2539d817b4ab40018002d5f",
|
|
||||||
"sha256:eea7e2b7d858f6fdfbf0fe3cb846d6bd8a45446865bc09960e51f3d473c2271b",
|
|
||||||
"sha256:efd3bc6c6b17e3d4620eb6be5196f0d1c08b6ce7c3101fa8e292b79e0908944b",
|
|
||||||
"sha256:f31c4a3a7ab18467ee73a27f3e59158255d1520f3aad74315edde7a940f1be23",
|
|
||||||
"sha256:f4bd49ecde87b0fe9f55cc971449a32832bca9910821f7072bbfae1155eaa007",
|
|
||||||
"sha256:f5272b5866b259fe6c33c4a8c5073bf8b359c3c97b70c298a2f09a69b52c7c41",
|
|
||||||
"sha256:f5aee2a4cb6b146bd17333ac623610f069f34e8f31d2f4f0c1a2186e50c594f0",
|
|
||||||
"sha256:f924b485537b640dc69434565463fd6fc0c68c65a8c6e01a823dd26c9983cf79",
|
|
||||||
"sha256:fc0f523ce923e7f38eb67804bc80e0a028c76d7868500aa3f59225574b5d0453"
|
|
||||||
],
|
|
||||||
"markers": "python_version >= '2.5' and python_version not in '3.0, 3.1, 3.2'",
|
|
||||||
"version": "==3.20.1"
|
|
||||||
},
|
|
||||||
"six": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274",
|
|
||||||
"sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"
|
|
||||||
],
|
|
||||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
|
|
||||||
"version": "==1.17.0"
|
|
||||||
},
|
|
||||||
"snapshot-restore-py": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:38f99e696793790f54658e71c68c7a8a40cea877c81232b5052383b1301aceba",
|
|
||||||
"sha256:4d27f82fb6f09968f422501e9c3c2dea48a46cd19dc798eb7d6cbc57523c8004"
|
|
||||||
],
|
|
||||||
"markers": "python_version >= '3.9'",
|
|
||||||
"version": "==1.0.0"
|
|
||||||
},
|
|
||||||
"urllib3": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:414bc6535b787febd7567804cc015fee39daab8ad86268f1310a9250697de466",
|
|
||||||
"sha256:4e16665048960a0900c702d4a66415956a584919c03361cac9f1df5c5dd7e813"
|
|
||||||
],
|
|
||||||
"markers": "python_version >= '3.9'",
|
|
||||||
"version": "==2.4.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"develop": {
|
|
||||||
"autopep8": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:89440a4f969197b69a995e4ce0661b031f455a9f776d2c5ba3dbd83466931758",
|
|
||||||
"sha256:ce8ad498672c845a0c3de2629c15b635ec2b05ef8177a6e7c91c74f3e9b51128"
|
|
||||||
],
|
|
||||||
"index": "pypi",
|
|
||||||
"markers": "python_version >= '3.9'",
|
|
||||||
"version": "==2.3.2"
|
|
||||||
},
|
|
||||||
"flake8": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:93b92ba5bdb60754a6da14fa3b93a9361fd00a59632ada61fd7b130436c40343",
|
|
||||||
"sha256:fa558ae3f6f7dbf2b4f22663e5343b6b6023620461f8d4ff2019ef4b5ee70426"
|
|
||||||
],
|
|
||||||
"index": "pypi",
|
|
||||||
"markers": "python_version >= '3.9'",
|
|
||||||
"version": "==7.2.0"
|
|
||||||
},
|
|
||||||
"mccabe": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325",
|
|
||||||
"sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"
|
|
||||||
],
|
|
||||||
"markers": "python_version >= '3.6'",
|
|
||||||
"version": "==0.7.0"
|
|
||||||
},
|
|
||||||
"pycodestyle": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:35863c5974a271c7a726ed228a14a4f6daf49df369d8c50cd9a6f58a5e143ba9",
|
|
||||||
"sha256:c8415bf09abe81d9c7f872502a6eee881fbe85d8763dd5b9924bb0a01d67efae"
|
|
||||||
],
|
|
||||||
"markers": "python_version >= '3.9'",
|
|
||||||
"version": "==2.13.0"
|
|
||||||
},
|
|
||||||
"pyflakes": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:5039c8339cbb1944045f4ee5466908906180f13cc99cc9949348d10f82a5c32a",
|
|
||||||
"sha256:6dfd61d87b97fba5dcfaaf781171ac16be16453be6d816147989e7f6e6a9576b"
|
|
||||||
],
|
|
||||||
"markers": "python_version >= '3.9'",
|
|
||||||
"version": "==3.3.2"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -37,6 +37,7 @@ TARGET_BUCKET_BY_DATA_SOURCE = {
|
|||||||
|
|
||||||
# 変数
|
# 変数
|
||||||
s3_client = boto3.client('s3')
|
s3_client = boto3.client('s3')
|
||||||
|
s3_resource = boto3.resource('s3')
|
||||||
sns_client = boto3.client('sns')
|
sns_client = boto3.client('sns')
|
||||||
|
|
||||||
# logger設定
|
# logger設定
|
||||||
@ -124,8 +125,9 @@ def handler(event, context):
|
|||||||
decrypt_file_key = f'{execute_date}/{decrypt_file_name}'
|
decrypt_file_key = f'{execute_date}/{decrypt_file_name}'
|
||||||
decrypt_bucket_name = TARGET_BUCKET_BY_DATA_SOURCE[s3_event.data_source_name]
|
decrypt_bucket_name = TARGET_BUCKET_BY_DATA_SOURCE[s3_event.data_source_name]
|
||||||
logger.info(f'I-07-02 復号化ファイル出力 ファイル名:{decrypt_file_name} 出力先:{decrypt_bucket_name}/{decrypt_file_key}')
|
logger.info(f'I-07-02 復号化ファイル出力 ファイル名:{decrypt_file_name} 出力先:{decrypt_bucket_name}/{decrypt_file_key}')
|
||||||
s3_client.put_object(Bucket=decrypt_bucket_name, Key=decrypt_file_key, Body=decrypt_file)
|
decrypt_file_obj = s3_resource.Object(decrypt_bucket_name, decrypt_file_key)
|
||||||
decrypt_file.close()
|
decrypt_file_obj.put(Body=decrypt_file)
|
||||||
|
decrypt_file.close
|
||||||
logger.info('I-07-03 復号化ファイルをS3に出力しました')
|
logger.info('I-07-03 復号化ファイルをS3に出力しました')
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.exception(f'E-07-01 復号化ファイルのS3出力に失敗しました エラー内容:{e}')
|
logger.exception(f'E-07-01 復号化ファイルのS3出力に失敗しました エラー内容:{e}')
|
||||||
@ -140,7 +142,8 @@ def handler(event, context):
|
|||||||
backup_file_key = f'{s3_event.data_source_name}/{execute_date}/{s3_event.file_name}'
|
backup_file_key = f'{s3_event.data_source_name}/{execute_date}/{s3_event.file_name}'
|
||||||
logger.info(
|
logger.info(
|
||||||
f'I-07-04 PGP暗号化ファイル移動 移動元:{s3_event.bucket_name}/{s3_event.file_path} 移動先:{SAP_DATA_BACKUP_BUCKET_NAME}/{backup_file_key}')
|
f'I-07-04 PGP暗号化ファイル移動 移動元:{s3_event.bucket_name}/{s3_event.file_path} 移動先:{SAP_DATA_BACKUP_BUCKET_NAME}/{backup_file_key}')
|
||||||
s3_client.copy_object(Bucket=SAP_DATA_BACKUP_BUCKET_NAME, Key=backup_file_key, CopySource=copy_source)
|
backup_file_obj = s3_resource.Object(SAP_DATA_BACKUP_BUCKET_NAME, backup_file_key)
|
||||||
|
backup_file_obj.copy(copy_source)
|
||||||
s3_client.delete_object(Bucket=s3_event.bucket_name, Key=s3_event.file_path)
|
s3_client.delete_object(Bucket=s3_event.bucket_name, Key=s3_event.file_path)
|
||||||
logger.info('I-07-05 PGP暗号化ファイルをバックアップ用バケットに移動しました')
|
logger.info('I-07-05 PGP暗号化ファイルをバックアップ用バケットに移動しました')
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
@ -155,7 +158,8 @@ def handler(event, context):
|
|||||||
import_file_folder = f'{s3_event.data_source_name}{DIRECTORY_TARGET}'
|
import_file_folder = f'{s3_event.data_source_name}{DIRECTORY_TARGET}'
|
||||||
import_file_key = f'{import_file_folder}{decrypt_file_name}'
|
import_file_key = f'{import_file_folder}{decrypt_file_name}'
|
||||||
logger.info(f'I-07-06 復号化ファイル出力 ファイル名:{decrypt_file_name} 出力先:{s3_event.bucket_name}/{import_file_folder}')
|
logger.info(f'I-07-06 復号化ファイル出力 ファイル名:{decrypt_file_name} 出力先:{s3_event.bucket_name}/{import_file_folder}')
|
||||||
s3_client.copy_object(Bucket=s3_event.bucket_name, Key=import_file_key, CopySource=copy_source)
|
import_file_obj = s3_resource.Object(s3_event.bucket_name, import_file_key)
|
||||||
|
import_file_obj.copy(copy_source)
|
||||||
logger.info(f'I-07-07 復号化ファイルをS3に出力しました')
|
logger.info(f'I-07-07 復号化ファイルをS3に出力しました')
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.exception(f'E-07-03 復号化ファイルのS3出力に失敗しました エラー内容:{e}')
|
logger.exception(f'E-07-03 復号化ファイルのS3出力に失敗しました エラー内容:{e}')
|
||||||
@ -182,7 +186,8 @@ def create_status_file(s3_event, extension) -> None:
|
|||||||
try:
|
try:
|
||||||
result_error_file_name = s3_event.file_name + extension
|
result_error_file_name = s3_event.file_name + extension
|
||||||
result_error_key = s3_event.data_source_name + DIRECTORY_RECV + result_error_file_name
|
result_error_key = s3_event.data_source_name + DIRECTORY_RECV + result_error_file_name
|
||||||
s3_client.put_object(Bucket=s3_event.bucket_name, Key=result_error_key, Body='')
|
result_error_obj = s3_resource.Object(s3_event.bucket_name, result_error_key)
|
||||||
|
result_error_obj.put(Body='')
|
||||||
logger.error(
|
logger.error(
|
||||||
f'E-ERR-01 recvディレクトリにエラーファイルを作成しました ファイル名:{result_error_file_name} 出力先:{s3_event.bucket_name}/{result_error_key}')
|
f'E-ERR-01 recvディレクトリにエラーファイルを作成しました ファイル名:{result_error_file_name} 出力先:{s3_event.bucket_name}/{result_error_key}')
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
@ -199,7 +204,8 @@ def move_encrypt_file(s3_event) -> None:
|
|||||||
}
|
}
|
||||||
error_file_name = f'{datetime.datetime.now():%Y%m%d%H%M%S}_{s3_event.file_name}'
|
error_file_name = f'{datetime.datetime.now():%Y%m%d%H%M%S}_{s3_event.file_name}'
|
||||||
error_key = s3_event.data_source_name + DIRECTORY_RECV_ERROR + error_file_name
|
error_key = s3_event.data_source_name + DIRECTORY_RECV_ERROR + error_file_name
|
||||||
s3_client.copy_object(Bucket=s3_event.bucket_name, Key=error_key, CopySource=copy_source)
|
error_obj = s3_resource.Object(s3_event.bucket_name, error_key)
|
||||||
|
error_obj.copy(copy_source)
|
||||||
s3_client.delete_object(Bucket=s3_event.bucket_name, Key=s3_event.file_path)
|
s3_client.delete_object(Bucket=s3_event.bucket_name, Key=s3_event.file_path)
|
||||||
logger.error(
|
logger.error(
|
||||||
f'E-ERR-02 recv_errorディレクトリにファイルを移動しました 移動元:{s3_event.bucket_name}/{s3_event.file_path} 移動先:{s3_event.bucket_name}/{error_key}')
|
f'E-ERR-02 recv_errorディレクトリにファイルを移動しました 移動元:{s3_event.bucket_name}/{s3_event.file_path} 移動先:{s3_event.bucket_name}/{error_key}')
|
||||||
|
|||||||
3
lambda/sap-data-decrypt/requirements.txt
Normal file
3
lambda/sap-data-decrypt/requirements.txt
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
awslambdaric
|
||||||
|
boto3
|
||||||
|
python-gnupg
|
||||||
@ -28,6 +28,7 @@ MAIL_INDENT = ' '
|
|||||||
|
|
||||||
# 変数
|
# 変数
|
||||||
s3_client = boto3.client('s3')
|
s3_client = boto3.client('s3')
|
||||||
|
s3_resource = boto3.resource('s3')
|
||||||
sns_client = boto3.client('sns')
|
sns_client = boto3.client('sns')
|
||||||
|
|
||||||
# logger設定
|
# logger設定
|
||||||
@ -68,7 +69,8 @@ def lambda_handler(event, context):
|
|||||||
# ③ 設定ファイル[SAP_finI/Fファイルネーム設定ファイル(月次)]を読み込む
|
# ③ 設定ファイル[SAP_finI/Fファイルネーム設定ファイル(月次)]を読み込む
|
||||||
try:
|
try:
|
||||||
logger.info(f'I-03-01 月次I/Fファイルネーム設定ファイル読込 読込元:{CONFIG_BUCKET_NAME}/{RECEIVE_MONTHLY_FILE_NAME_LIST_PATH}')
|
logger.info(f'I-03-01 月次I/Fファイルネーム設定ファイル読込 読込元:{CONFIG_BUCKET_NAME}/{RECEIVE_MONTHLY_FILE_NAME_LIST_PATH}')
|
||||||
receive_monthly_file_name_response = s3_client.get_object(Bucket=CONFIG_BUCKET_NAME, Key=RECEIVE_MONTHLY_FILE_NAME_LIST_PATH)
|
receive_monthly_file_name_obj = s3_resource.Object(CONFIG_BUCKET_NAME, RECEIVE_MONTHLY_FILE_NAME_LIST_PATH)
|
||||||
|
receive_monthly_file_name_response = receive_monthly_file_name_obj.get()
|
||||||
logger.info('I-03-02 月次I/Fファイルネーム設定ファイルを読み込みました')
|
logger.info('I-03-02 月次I/Fファイルネーム設定ファイルを読み込みました')
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f'E-03-01 月次I/Fファイルネーム設定ファイルの読み込みに失敗しました エラー内容:{e}')
|
logger.error(f'E-03-01 月次I/Fファイルネーム設定ファイルの読み込みに失敗しました エラー内容:{e}')
|
||||||
|
|||||||
@ -34,6 +34,7 @@ MAIL_INDENT = ' '
|
|||||||
|
|
||||||
# 変数
|
# 変数
|
||||||
s3_client = boto3.client('s3')
|
s3_client = boto3.client('s3')
|
||||||
|
s3_resource = boto3.resource('s3')
|
||||||
sns_client = boto3.client('sns')
|
sns_client = boto3.client('sns')
|
||||||
|
|
||||||
# logger設定
|
# logger設定
|
||||||
@ -68,7 +69,8 @@ def lambda_handler(event, context):
|
|||||||
# 1.設定ファイル[メルク社非営業日設定ファイル]を読み込む
|
# 1.設定ファイル[メルク社非営業日設定ファイル]を読み込む
|
||||||
try:
|
try:
|
||||||
logger.info(f'I-02-02 非営業日設定ファイル読込 読込元:{CONFIG_BUCKET_NAME}/{NON_BUSINESS_DAY_LIST_PATH}')
|
logger.info(f'I-02-02 非営業日設定ファイル読込 読込元:{CONFIG_BUCKET_NAME}/{NON_BUSINESS_DAY_LIST_PATH}')
|
||||||
non_business_day_response = s3_client.get_object(Bucket=CONFIG_BUCKET_NAME, Key=NON_BUSINESS_DAY_LIST_PATH)
|
non_business_day_obj = s3_resource.Object(CONFIG_BUCKET_NAME, NON_BUSINESS_DAY_LIST_PATH)
|
||||||
|
non_business_day_response = non_business_day_obj.get()
|
||||||
logger.info('I-02-03 非営業日設定ファイルを読み込みました')
|
logger.info('I-02-03 非営業日設定ファイルを読み込みました')
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f'E-02-01 非営業日設定ファイルの読み込みに失敗しました エラー内容:{e}')
|
logger.error(f'E-02-01 非営業日設定ファイルの読み込みに失敗しました エラー内容:{e}')
|
||||||
@ -100,7 +102,8 @@ def lambda_handler(event, context):
|
|||||||
# ③ 設定ファイル[SAP_finI/Fファイルネーム設定ファイル(日次)]を読み込む
|
# ③ 設定ファイル[SAP_finI/Fファイルネーム設定ファイル(日次)]を読み込む
|
||||||
try:
|
try:
|
||||||
logger.info(f'I-03-01 日次I/Fファイルネーム設定ファイル読込 読込元:{CONFIG_BUCKET_NAME}/{RECEIVE_DAILY_FILE_NAME_LIST_PATH}')
|
logger.info(f'I-03-01 日次I/Fファイルネーム設定ファイル読込 読込元:{CONFIG_BUCKET_NAME}/{RECEIVE_DAILY_FILE_NAME_LIST_PATH}')
|
||||||
receive_daily_file_name_response = s3_client.get_object(Bucket=CONFIG_BUCKET_NAME, Key=RECEIVE_DAILY_FILE_NAME_LIST_PATH)
|
receive_daily_file_name_obj = s3_resource.Object(CONFIG_BUCKET_NAME, RECEIVE_DAILY_FILE_NAME_LIST_PATH)
|
||||||
|
receive_daily_file_name_response = receive_daily_file_name_obj.get()
|
||||||
logger.info('I-03-02 日次I/Fファイルネーム設定ファイルを読み込みました')
|
logger.info('I-03-02 日次I/Fファイルネーム設定ファイルを読み込みました')
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f'E-03-01 日次I/Fファイルネーム設定ファイルの読み込みに失敗しました エラー内容:{e}')
|
logger.error(f'E-03-01 日次I/Fファイルネーム設定ファイルの読み込みに失敗しました エラー内容:{e}')
|
||||||
@ -112,10 +115,10 @@ def lambda_handler(event, context):
|
|||||||
# 1.SAP保管用バケットの処理稼働日に該当するサブフォルダにあるファイル一覧を取得する
|
# 1.SAP保管用バケットの処理稼働日に該当するサブフォルダにあるファイル一覧を取得する
|
||||||
logger.info(f'I-04-02 オブジェクトリストの取得 取得先:{CHECK_BUCKET_NAME}/{execute_date}/')
|
logger.info(f'I-04-02 オブジェクトリストの取得 取得先:{CHECK_BUCKET_NAME}/{execute_date}/')
|
||||||
object_prefix = f'{execute_date}/'
|
object_prefix = f'{execute_date}/'
|
||||||
object_list = s3_client.list_objects_v2(Bucket=CHECK_BUCKET_NAME, Prefix=object_prefix)
|
object_list = s3_resource.Bucket(CHECK_BUCKET_NAME).objects.filter(Prefix=object_prefix)
|
||||||
file_list = []
|
file_list = []
|
||||||
for obj in object_list.get('Contents', []):
|
for obj in object_list:
|
||||||
obj_key = obj['Key'].rsplit('/', INDEX_SPLIT_NUM)
|
obj_key = obj.key.rsplit('/', INDEX_SPLIT_NUM)
|
||||||
file_list.append(obj_key[INDEX_LAST])
|
file_list.append(obj_key[INDEX_LAST])
|
||||||
|
|
||||||
# 2.日次I/Fファイルチェック処理
|
# 2.日次I/Fファイルチェック処理
|
||||||
@ -123,8 +126,7 @@ def lambda_handler(event, context):
|
|||||||
logger.info('I-04-04 取得したオブジェクトリストと日次I/Fファイルネーム設定ファイルの突き合わせを開始します')
|
logger.info('I-04-04 取得したオブジェクトリストと日次I/Fファイルネーム設定ファイルの突き合わせを開始します')
|
||||||
receive_daily_file_name_body = io.TextIOWrapper(io.BytesIO(receive_daily_file_name_response["Body"].read()), encoding='utf-8')
|
receive_daily_file_name_body = io.TextIOWrapper(io.BytesIO(receive_daily_file_name_response["Body"].read()), encoding='utf-8')
|
||||||
match_count = 0
|
match_count = 0
|
||||||
receive_daily_file_name_response = s3_client.get_object(Bucket=CONFIG_BUCKET_NAME, Key=RECEIVE_DAILY_FILE_NAME_LIST_PATH)
|
row_count = sum(1 for line in io.BytesIO(receive_daily_file_name_obj.get()["Body"].read()))
|
||||||
row_count = sum(1 for line in io.BytesIO(receive_daily_file_name_response["Body"].read()))
|
|
||||||
for row in csv.reader(receive_daily_file_name_body, delimiter='\t'):
|
for row in csv.reader(receive_daily_file_name_body, delimiter='\t'):
|
||||||
file_exists = False
|
file_exists = False
|
||||||
for file_name in file_list:
|
for file_name in file_list:
|
||||||
|
|||||||
@ -34,6 +34,7 @@ MAIL_INDENT = ' '
|
|||||||
|
|
||||||
# 変数
|
# 変数
|
||||||
s3_client = boto3.client('s3')
|
s3_client = boto3.client('s3')
|
||||||
|
s3_resource = boto3.resource('s3')
|
||||||
sns_client = boto3.client('sns')
|
sns_client = boto3.client('sns')
|
||||||
|
|
||||||
# logger設定
|
# logger設定
|
||||||
@ -70,8 +71,8 @@ def lambda_handler(event, context):
|
|||||||
# 1.設定ファイル[チェック処理実施指定日ファイル]を読み込む
|
# 1.設定ファイル[チェック処理実施指定日ファイル]を読み込む
|
||||||
try:
|
try:
|
||||||
logger.info(f'I-02-02 チェック処理実施指定日ファイル読込 読込元:{CONFIG_BUCKET_NAME}/{MONTHLY_CEHCK_DAY_LIST_PATH}')
|
logger.info(f'I-02-02 チェック処理実施指定日ファイル読込 読込元:{CONFIG_BUCKET_NAME}/{MONTHLY_CEHCK_DAY_LIST_PATH}')
|
||||||
monthly_day_response = s3_client.get_object(Bucket=CONFIG_BUCKET_NAME, Key=MONTHLY_CEHCK_DAY_LIST_PATH)
|
monthly_day_obj = s3_resource.Object(CONFIG_BUCKET_NAME, MONTHLY_CEHCK_DAY_LIST_PATH)
|
||||||
|
monthly_day_response = monthly_day_obj.get()
|
||||||
logger.info('I-02-03 チェック処理実施指定日ファイルを読み込みました')
|
logger.info('I-02-03 チェック処理実施指定日ファイルを読み込みました')
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f'E-02-01 チェック処理実施指定日設定ファイルの読み込みに失敗しました エラー内容:{e}')
|
logger.error(f'E-02-01 チェック処理実施指定日設定ファイルの読み込みに失敗しました エラー内容:{e}')
|
||||||
@ -103,8 +104,8 @@ def lambda_handler(event, context):
|
|||||||
# ③ 設定ファイル[SAP_finI/Fファイルネーム設定ファイル(月次)]を読み込む
|
# ③ 設定ファイル[SAP_finI/Fファイルネーム設定ファイル(月次)]を読み込む
|
||||||
try:
|
try:
|
||||||
logger.info(f'I-03-01 月次I/Fファイルネーム設定ファイル読込 読込元:{CONFIG_BUCKET_NAME}/{RECEIVE_MONTHLY_FILE_NAME_LIST_PATH}')
|
logger.info(f'I-03-01 月次I/Fファイルネーム設定ファイル読込 読込元:{CONFIG_BUCKET_NAME}/{RECEIVE_MONTHLY_FILE_NAME_LIST_PATH}')
|
||||||
receive_monthly_file_name_response = s3_client.get_object(Bucket=CONFIG_BUCKET_NAME, Key=RECEIVE_MONTHLY_FILE_NAME_LIST_PATH)
|
receive_monthly_file_name_obj = s3_resource.Object(CONFIG_BUCKET_NAME, RECEIVE_MONTHLY_FILE_NAME_LIST_PATH)
|
||||||
|
receive_monthly_file_name_response = receive_monthly_file_name_obj.get()
|
||||||
logger.info('I-03-02 月次I/Fファイルネーム設定ファイルを読み込みました')
|
logger.info('I-03-02 月次I/Fファイルネーム設定ファイルを読み込みました')
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f'E-03-01 月次I/Fファイルネーム設定ファイルの読み込みに失敗しました エラー内容:{e}')
|
logger.error(f'E-03-01 月次I/Fファイルネーム設定ファイルの読み込みに失敗しました エラー内容:{e}')
|
||||||
@ -116,10 +117,10 @@ def lambda_handler(event, context):
|
|||||||
# 1.SAP保管用バケットの処理稼働月に該当するサブフォルダにあるファイル一覧を取得する
|
# 1.SAP保管用バケットの処理稼働月に該当するサブフォルダにあるファイル一覧を取得する
|
||||||
logger.info(f'I-04-02 オブジェクトリストの取得 取得先:{CHECK_BUCKET_NAME}/{execute_month}/')
|
logger.info(f'I-04-02 オブジェクトリストの取得 取得先:{CHECK_BUCKET_NAME}/{execute_month}/')
|
||||||
object_prefix = f'{execute_month}/'
|
object_prefix = f'{execute_month}/'
|
||||||
object_list = s3_client.list_objects_v2(Bucket=CHECK_BUCKET_NAME, Prefix=object_prefix)
|
object_list = s3_resource.Bucket(CHECK_BUCKET_NAME).objects.filter(Prefix=object_prefix)
|
||||||
file_list = []
|
file_list = []
|
||||||
for obj in object_list.get('Contents', []):
|
for obj in object_list:
|
||||||
obj_key = obj['Key'].rsplit('/', INDEX_SPLIT_NUM)
|
obj_key = obj.key.rsplit('/', INDEX_SPLIT_NUM)
|
||||||
file_list.append(obj_key[INDEX_LAST])
|
file_list.append(obj_key[INDEX_LAST])
|
||||||
|
|
||||||
# 2.月次I/Fファイルチェック処理
|
# 2.月次I/Fファイルチェック処理
|
||||||
@ -127,8 +128,7 @@ def lambda_handler(event, context):
|
|||||||
logger.info('I-04-04 取得したオブジェクトリストと月次I/Fファイルネーム設定ファイルの突き合わせを開始します')
|
logger.info('I-04-04 取得したオブジェクトリストと月次I/Fファイルネーム設定ファイルの突き合わせを開始します')
|
||||||
receive_monthly_file_name_body = io.TextIOWrapper(io.BytesIO(receive_monthly_file_name_response["Body"].read()), encoding='utf-8')
|
receive_monthly_file_name_body = io.TextIOWrapper(io.BytesIO(receive_monthly_file_name_response["Body"].read()), encoding='utf-8')
|
||||||
match_count = 0
|
match_count = 0
|
||||||
receive_monthly_file_name_response = s3_client.get_object(Bucket=CONFIG_BUCKET_NAME, Key=RECEIVE_MONTHLY_FILE_NAME_LIST_PATH)
|
row_count = sum(1 for line in io.BytesIO(receive_monthly_file_name_obj.get()["Body"].read()))
|
||||||
row_count = sum(1 for line in io.BytesIO(receive_monthly_file_name_response["Body"].read()))
|
|
||||||
for row in csv.reader(receive_monthly_file_name_body, delimiter='\t'):
|
for row in csv.reader(receive_monthly_file_name_body, delimiter='\t'):
|
||||||
file_exists = False
|
file_exists = False
|
||||||
for file_name in file_list:
|
for file_name in file_list:
|
||||||
|
|||||||
@ -28,6 +28,7 @@ MAIL_INDENT = ' '
|
|||||||
|
|
||||||
# 変数
|
# 変数
|
||||||
s3_client = boto3.client('s3')
|
s3_client = boto3.client('s3')
|
||||||
|
s3_resource = boto3.resource('s3')
|
||||||
sns_client = boto3.client('sns')
|
sns_client = boto3.client('sns')
|
||||||
|
|
||||||
# logger設定
|
# logger設定
|
||||||
@ -68,7 +69,8 @@ def lambda_handler(event, context):
|
|||||||
# ③ 設定ファイル[SAP_supI/Fファイルネーム設定ファイル(月次)]を読み込む
|
# ③ 設定ファイル[SAP_supI/Fファイルネーム設定ファイル(月次)]を読み込む
|
||||||
try:
|
try:
|
||||||
logger.info(f'I-03-01 月次I/Fファイルネーム設定ファイル読込 読込元:{CONFIG_BUCKET_NAME}/{RECEIVE_MONTHLY_FILE_NAME_LIST_PATH}')
|
logger.info(f'I-03-01 月次I/Fファイルネーム設定ファイル読込 読込元:{CONFIG_BUCKET_NAME}/{RECEIVE_MONTHLY_FILE_NAME_LIST_PATH}')
|
||||||
receive_monthly_file_name_response = s3_client.get_object(Bucket=CONFIG_BUCKET_NAME, Key=RECEIVE_MONTHLY_FILE_NAME_LIST_PATH)
|
receive_monthly_file_name_obj = s3_resource.Object(CONFIG_BUCKET_NAME, RECEIVE_MONTHLY_FILE_NAME_LIST_PATH)
|
||||||
|
receive_monthly_file_name_response = receive_monthly_file_name_obj.get()
|
||||||
logger.info('I-03-02 月次I/Fファイルネーム設定ファイルを読み込みました')
|
logger.info('I-03-02 月次I/Fファイルネーム設定ファイルを読み込みました')
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f'E-03-01 月次I/Fファイルネーム設定ファイルの読み込みに失敗しました エラー内容:{e}')
|
logger.error(f'E-03-01 月次I/Fファイルネーム設定ファイルの読み込みに失敗しました エラー内容:{e}')
|
||||||
|
|||||||
@ -34,6 +34,7 @@ MAIL_INDENT = ' '
|
|||||||
|
|
||||||
# 変数
|
# 変数
|
||||||
s3_client = boto3.client('s3')
|
s3_client = boto3.client('s3')
|
||||||
|
s3_resource = boto3.resource('s3')
|
||||||
sns_client = boto3.client('sns')
|
sns_client = boto3.client('sns')
|
||||||
|
|
||||||
# logger設定
|
# logger設定
|
||||||
@ -68,7 +69,8 @@ def lambda_handler(event, context):
|
|||||||
# 1.設定ファイル[メルク社非営業日設定ファイル]を読み込む
|
# 1.設定ファイル[メルク社非営業日設定ファイル]を読み込む
|
||||||
try:
|
try:
|
||||||
logger.info(f'I-02-02 非営業日設定ファイル読込 読込元:{CONFIG_BUCKET_NAME}/{NON_BUSINESS_DAY_LIST_PATH}')
|
logger.info(f'I-02-02 非営業日設定ファイル読込 読込元:{CONFIG_BUCKET_NAME}/{NON_BUSINESS_DAY_LIST_PATH}')
|
||||||
non_business_day_response = s3_client.get_object(Bucket=CONFIG_BUCKET_NAME, Key=NON_BUSINESS_DAY_LIST_PATH)
|
non_business_day_obj = s3_resource.Object(CONFIG_BUCKET_NAME, NON_BUSINESS_DAY_LIST_PATH)
|
||||||
|
non_business_day_response = non_business_day_obj.get()
|
||||||
logger.info('I-02-03 非営業日設定ファイルを読み込みました')
|
logger.info('I-02-03 非営業日設定ファイルを読み込みました')
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f'E-02-01 非営業日設定ファイルの読み込みに失敗しました エラー内容:{e}')
|
logger.error(f'E-02-01 非営業日設定ファイルの読み込みに失敗しました エラー内容:{e}')
|
||||||
@ -100,7 +102,8 @@ def lambda_handler(event, context):
|
|||||||
# ③ 設定ファイル[SAP_supI/Fファイルネーム設定ファイル(日次)]を読み込む
|
# ③ 設定ファイル[SAP_supI/Fファイルネーム設定ファイル(日次)]を読み込む
|
||||||
try:
|
try:
|
||||||
logger.info(f'I-03-01 日次I/Fファイルネーム設定ファイル読込 読込元:{CONFIG_BUCKET_NAME}/{RECEIVE_DAILY_FILE_NAME_LIST_PATH}')
|
logger.info(f'I-03-01 日次I/Fファイルネーム設定ファイル読込 読込元:{CONFIG_BUCKET_NAME}/{RECEIVE_DAILY_FILE_NAME_LIST_PATH}')
|
||||||
receive_daily_file_name_response = s3_client.get_object(Bucket=CONFIG_BUCKET_NAME, Key=RECEIVE_DAILY_FILE_NAME_LIST_PATH)
|
receive_daily_file_name_obj = s3_resource.Object(CONFIG_BUCKET_NAME, RECEIVE_DAILY_FILE_NAME_LIST_PATH)
|
||||||
|
receive_daily_file_name_response = receive_daily_file_name_obj.get()
|
||||||
logger.info('I-03-02 日次I/Fファイルネーム設定ファイルを読み込みました')
|
logger.info('I-03-02 日次I/Fファイルネーム設定ファイルを読み込みました')
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f'E-03-01 日次I/Fファイルネーム設定ファイルの読み込みに失敗しました エラー内容:{e}')
|
logger.error(f'E-03-01 日次I/Fファイルネーム設定ファイルの読み込みに失敗しました エラー内容:{e}')
|
||||||
@ -112,10 +115,10 @@ def lambda_handler(event, context):
|
|||||||
# 1.SAP保管用バケットの処理稼働日に該当するサブフォルダにあるファイル一覧を取得する
|
# 1.SAP保管用バケットの処理稼働日に該当するサブフォルダにあるファイル一覧を取得する
|
||||||
logger.info(f'I-04-02 オブジェクトリストの取得 取得先:{CHECK_BUCKET_NAME}/{execute_date}/')
|
logger.info(f'I-04-02 オブジェクトリストの取得 取得先:{CHECK_BUCKET_NAME}/{execute_date}/')
|
||||||
object_prefix = f'{execute_date}/'
|
object_prefix = f'{execute_date}/'
|
||||||
object_list = s3_client.list_objects_v2(Bucket=CHECK_BUCKET_NAME, Prefix=object_prefix)
|
object_list = s3_resource.Bucket(CHECK_BUCKET_NAME).objects.filter(Prefix=object_prefix)
|
||||||
file_list = []
|
file_list = []
|
||||||
for obj in object_list.get('Contents', []):
|
for obj in object_list:
|
||||||
obj_key = obj['Key'].rsplit('/', INDEX_SPLIT_NUM)
|
obj_key = obj.key.rsplit('/', INDEX_SPLIT_NUM)
|
||||||
file_list.append(obj_key[INDEX_LAST])
|
file_list.append(obj_key[INDEX_LAST])
|
||||||
|
|
||||||
# 2.日次I/Fファイルチェック処理
|
# 2.日次I/Fファイルチェック処理
|
||||||
@ -123,8 +126,7 @@ def lambda_handler(event, context):
|
|||||||
logger.info('I-04-04 取得したオブジェクトリストと日次I/Fファイルネーム設定ファイルの突き合わせを開始します')
|
logger.info('I-04-04 取得したオブジェクトリストと日次I/Fファイルネーム設定ファイルの突き合わせを開始します')
|
||||||
receive_daily_file_name_body = io.TextIOWrapper(io.BytesIO(receive_daily_file_name_response["Body"].read()), encoding='utf-8')
|
receive_daily_file_name_body = io.TextIOWrapper(io.BytesIO(receive_daily_file_name_response["Body"].read()), encoding='utf-8')
|
||||||
match_count = 0
|
match_count = 0
|
||||||
receive_daily_file_name_response = s3_client.get_object(Bucket=CONFIG_BUCKET_NAME, Key=RECEIVE_DAILY_FILE_NAME_LIST_PATH)
|
row_count = sum(1 for line in io.BytesIO(receive_daily_file_name_obj.get()["Body"].read()))
|
||||||
row_count = sum(1 for line in io.BytesIO(receive_daily_file_name_response["Body"].read()))
|
|
||||||
for row in csv.reader(receive_daily_file_name_body, delimiter='\t'):
|
for row in csv.reader(receive_daily_file_name_body, delimiter='\t'):
|
||||||
file_exists = False
|
file_exists = False
|
||||||
for file_name in file_list:
|
for file_name in file_list:
|
||||||
|
|||||||
@ -71,7 +71,8 @@ def lambda_handler(event, context):
|
|||||||
# 1.設定ファイル[チェック処理実施指定日ファイル]を読み込む
|
# 1.設定ファイル[チェック処理実施指定日ファイル]を読み込む
|
||||||
try:
|
try:
|
||||||
logger.info(f'I-02-02 チェック処理実施指定日ファイル読込 読込元:{CONFIG_BUCKET_NAME}/{MONTHLY_CEHCK_DAY_LIST_PATH}')
|
logger.info(f'I-02-02 チェック処理実施指定日ファイル読込 読込元:{CONFIG_BUCKET_NAME}/{MONTHLY_CEHCK_DAY_LIST_PATH}')
|
||||||
monthly_day_response = s3_client.get_object(Bucket=CONFIG_BUCKET_NAME, Key=MONTHLY_CEHCK_DAY_LIST_PATH)
|
monthly_day_obj = s3_resource.Object(CONFIG_BUCKET_NAME, MONTHLY_CEHCK_DAY_LIST_PATH)
|
||||||
|
monthly_day_response = monthly_day_obj.get()
|
||||||
logger.info('I-02-03 チェック処理実施指定日ファイルを読み込みました')
|
logger.info('I-02-03 チェック処理実施指定日ファイルを読み込みました')
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f'E-02-01 チェック処理実施指定日設定ファイルの読み込みに失敗しました エラー内容:{e}')
|
logger.error(f'E-02-01 チェック処理実施指定日設定ファイルの読み込みに失敗しました エラー内容:{e}')
|
||||||
@ -103,7 +104,8 @@ def lambda_handler(event, context):
|
|||||||
# ③ 設定ファイル[SAP_supI/Fファイルネーム設定ファイル(月次)]を読み込む
|
# ③ 設定ファイル[SAP_supI/Fファイルネーム設定ファイル(月次)]を読み込む
|
||||||
try:
|
try:
|
||||||
logger.info(f'I-03-01 月次I/Fファイルネーム設定ファイル読込 読込元:{CONFIG_BUCKET_NAME}/{RECEIVE_MONTHLY_FILE_NAME_LIST_PATH}')
|
logger.info(f'I-03-01 月次I/Fファイルネーム設定ファイル読込 読込元:{CONFIG_BUCKET_NAME}/{RECEIVE_MONTHLY_FILE_NAME_LIST_PATH}')
|
||||||
receive_monthly_file_name_response = s3_client.get_object(Bucket=CONFIG_BUCKET_NAME, Key=RECEIVE_MONTHLY_FILE_NAME_LIST_PATH)
|
receive_monthly_file_name_obj = s3_resource.Object(CONFIG_BUCKET_NAME, RECEIVE_MONTHLY_FILE_NAME_LIST_PATH)
|
||||||
|
receive_monthly_file_name_response = receive_monthly_file_name_obj.get()
|
||||||
logger.info('I-03-02 月次I/Fファイルネーム設定ファイルを読み込みました')
|
logger.info('I-03-02 月次I/Fファイルネーム設定ファイルを読み込みました')
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f'E-03-01 月次I/Fファイルネーム設定ファイルの読み込みに失敗しました エラー内容:{e}')
|
logger.error(f'E-03-01 月次I/Fファイルネーム設定ファイルの読み込みに失敗しました エラー内容:{e}')
|
||||||
@ -115,10 +117,10 @@ def lambda_handler(event, context):
|
|||||||
# 1.SAP保管用バケットの処理稼働月に該当するサブフォルダにあるファイル一覧を取得する
|
# 1.SAP保管用バケットの処理稼働月に該当するサブフォルダにあるファイル一覧を取得する
|
||||||
logger.info(f'I-04-02 オブジェクトリストの取得 取得先:{CHECK_BUCKET_NAME}/{execute_month}/')
|
logger.info(f'I-04-02 オブジェクトリストの取得 取得先:{CHECK_BUCKET_NAME}/{execute_month}/')
|
||||||
object_prefix = f'{execute_month}/'
|
object_prefix = f'{execute_month}/'
|
||||||
object_list = s3_client.list_objects_v2(Bucket=CHECK_BUCKET_NAME, Prefix=object_prefix)
|
object_list = s3_resource.Bucket(CHECK_BUCKET_NAME).objects.filter(Prefix=object_prefix)
|
||||||
file_list = []
|
file_list = []
|
||||||
for obj in object_list.get('Contents', []):
|
for obj in object_list:
|
||||||
obj_key = obj['Key'].rsplit('/', INDEX_SPLIT_NUM)
|
obj_key = obj.key.rsplit('/', INDEX_SPLIT_NUM)
|
||||||
file_list.append(obj_key[INDEX_LAST])
|
file_list.append(obj_key[INDEX_LAST])
|
||||||
|
|
||||||
# 2.月次I/Fファイルチェック処理
|
# 2.月次I/Fファイルチェック処理
|
||||||
@ -126,8 +128,7 @@ def lambda_handler(event, context):
|
|||||||
logger.info('I-04-04 取得したオブジェクトリストと月次I/Fファイルネーム設定ファイルの突き合わせを開始します')
|
logger.info('I-04-04 取得したオブジェクトリストと月次I/Fファイルネーム設定ファイルの突き合わせを開始します')
|
||||||
receive_monthly_file_name_body = io.TextIOWrapper(io.BytesIO(receive_monthly_file_name_response["Body"].read()), encoding='utf-8')
|
receive_monthly_file_name_body = io.TextIOWrapper(io.BytesIO(receive_monthly_file_name_response["Body"].read()), encoding='utf-8')
|
||||||
match_count = 0
|
match_count = 0
|
||||||
receive_monthly_file_name_response = s3_client.get_object(Bucket=CONFIG_BUCKET_NAME, Key=RECEIVE_MONTHLY_FILE_NAME_LIST_PATH)
|
row_count = sum(1 for line in io.BytesIO(receive_monthly_file_name_obj.get()["Body"].read()))
|
||||||
row_count = sum(1 for line in io.BytesIO(receive_monthly_file_name_response["Body"].read()))
|
|
||||||
for row in csv.reader(receive_monthly_file_name_body, delimiter='\t'):
|
for row in csv.reader(receive_monthly_file_name_body, delimiter='\t'):
|
||||||
file_exists = False
|
file_exists = False
|
||||||
for file_name in file_list:
|
for file_name in file_list:
|
||||||
|
|||||||
@ -1,19 +0,0 @@
|
|||||||
# AWS公式のDockerイメージを利用
|
|
||||||
FROM public.ecr.aws/lambda/python:3.12
|
|
||||||
|
|
||||||
# pythonの標準出力をバッファリングしないフラグ
|
|
||||||
ENV PYTHONUNBUFFERED=1
|
|
||||||
# pythonのバイトコードを生成しないフラグ
|
|
||||||
ENV PYTHONDONTWRITEBYTECODE=1
|
|
||||||
|
|
||||||
# 必要なファイルをイメージにコピー
|
|
||||||
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
|
|
||||||
|
|
||||||
# lambdaハンドラを起動
|
|
||||||
CMD [ "main.handler" ]
|
|
||||||
@ -1,15 +0,0 @@
|
|||||||
[[source]]
|
|
||||||
url = "https://pypi.org/simple"
|
|
||||||
verify_ssl = true
|
|
||||||
name = "pypi"
|
|
||||||
|
|
||||||
[packages]
|
|
||||||
boto3 = "*"
|
|
||||||
pyzipper = "*"
|
|
||||||
|
|
||||||
[dev-packages]
|
|
||||||
autopep8 = "*"
|
|
||||||
flake8 = "*"
|
|
||||||
|
|
||||||
[requires]
|
|
||||||
python_version = "3.12"
|
|
||||||
177
lambda/transfer-medpass-data/Pipfile.lock
generated
177
lambda/transfer-medpass-data/Pipfile.lock
generated
@ -1,177 +0,0 @@
|
|||||||
{
|
|
||||||
"_meta": {
|
|
||||||
"hash": {
|
|
||||||
"sha256": "d8b79fd5be60005b43448511c67536c114e5fd73722a17e77a5e60a9283aea25"
|
|
||||||
},
|
|
||||||
"pipfile-spec": 6,
|
|
||||||
"requires": {
|
|
||||||
"python_version": "3.12"
|
|
||||||
},
|
|
||||||
"sources": [
|
|
||||||
{
|
|
||||||
"name": "pypi",
|
|
||||||
"url": "https://pypi.org/simple",
|
|
||||||
"verify_ssl": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"boto3": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:3faa2c328a61745f3215a63039606a6fcf55d9afe1cc76e3a5e27b9db58cdbf6",
|
|
||||||
"sha256:b998edac72f6740bd5d9d585cf3880f2dfeb4842e626b34430fd0e9623378011"
|
|
||||||
],
|
|
||||||
"index": "pypi",
|
|
||||||
"markers": "python_version >= '3.9'",
|
|
||||||
"version": "==1.38.32"
|
|
||||||
},
|
|
||||||
"botocore": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:0899a090e352cb5eeaae2c7bb52a987b469d23912c7ece86664dfb5c2e074978",
|
|
||||||
"sha256:64ab919a5d8b74dd73eaac1f978d0e674d11ff3bbe8815c3d2982477be9a082c"
|
|
||||||
],
|
|
||||||
"markers": "python_version >= '3.9'",
|
|
||||||
"version": "==1.38.32"
|
|
||||||
},
|
|
||||||
"jmespath": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980",
|
|
||||||
"sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe"
|
|
||||||
],
|
|
||||||
"markers": "python_version >= '3.7'",
|
|
||||||
"version": "==1.0.1"
|
|
||||||
},
|
|
||||||
"pycryptodomex": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:02d87b80778c171445d67e23d1caef279bf4b25c3597050ccd2e13970b57fd51",
|
|
||||||
"sha256:06698f957fe1ab229a99ba2defeeae1c09af185baa909a31a5d1f9d42b1aaed6",
|
|
||||||
"sha256:14c37aaece158d0ace436f76a7bb19093db3b4deade9797abfc39ec6cd6cc2fe",
|
|
||||||
"sha256:189afbc87f0b9f158386bf051f720e20fa6145975f1e76369303d0f31d1a8d7c",
|
|
||||||
"sha256:1c3a65ad441746b250d781910d26b7ed0a396733c6f2dbc3327bd7051ec8a541",
|
|
||||||
"sha256:1c6d919fc8429e5cb228ba8c0d4d03d202a560b421c14867a65f6042990adc8e",
|
|
||||||
"sha256:267a3038f87a8565bd834317dbf053a02055915acf353bf42ededb9edaf72010",
|
|
||||||
"sha256:27e13c80ac9a0a1d050ef0a7e0a18cc04c8850101ec891815b6c5a0375e8a245",
|
|
||||||
"sha256:43c446e2ba8df8889e0e16f02211c25b4934898384c1ec1ec04d7889c0333587",
|
|
||||||
"sha256:47f6d318fe864d02d5e59a20a18834819596c4ed1d3c917801b22b92b3ffa648",
|
|
||||||
"sha256:4e79f1aaff5a3a374e92eb462fa9e598585452135012e2945f96874ca6eeb1ff",
|
|
||||||
"sha256:4f2596e643d4365e14d0879dc5aafe6355616c61c2176009270f3048f6d9a61f",
|
|
||||||
"sha256:52e5ca58c3a0b0bd5e100a9fbc8015059b05cffc6c66ce9d98b4b45e023443b9",
|
|
||||||
"sha256:55ccbe27f049743a4caf4f4221b166560d3438d0b1e5ab929e07ae1702a4d6fd",
|
|
||||||
"sha256:58b851b9effd0d072d4ca2e4542bf2a4abcf13c82a29fd2c93ce27ee2a2e9462",
|
|
||||||
"sha256:6b8962204c47464d5c1c4038abeadd4514a133b28748bcd9fa5b6d62e3cec6fa",
|
|
||||||
"sha256:6bbcb1dd0f646484939e142462d9e532482bc74475cecf9c4903d4e1cd21f003",
|
|
||||||
"sha256:71909758f010c82bc99b0abf4ea12012c98962fbf0583c2164f8b84533c2e4da",
|
|
||||||
"sha256:7b37e08e3871efe2187bc1fd9320cc81d87caf19816c648f24443483005ff886",
|
|
||||||
"sha256:7de1e40a41a5d7f1ac42b6569b10bcdded34339950945948529067d8426d2785",
|
|
||||||
"sha256:8a4fcd42ccb04c31268d1efeecfccfd1249612b4de6374205376b8f280321744",
|
|
||||||
"sha256:91979028227543010d7b2ba2471cf1d1e398b3f183cb105ac584df0c36dac28d",
|
|
||||||
"sha256:a33986a0066860f7fcf7c7bd2bc804fa90e434183645595ae7b33d01f3c91ed8",
|
|
||||||
"sha256:a9d446e844f08299236780f2efa9898c818fe7e02f17263866b8550c7d5fb328",
|
|
||||||
"sha256:add243d204e125f189819db65eed55e6b4713f70a7e9576c043178656529cec7",
|
|
||||||
"sha256:b2c2537863eccef2d41061e82a881dcabb04944c5c06c5aa7110b577cc487545",
|
|
||||||
"sha256:bc65bdd9fc8de7a35a74cab1c898cab391a4add33a8fe740bda00f5976ca4708",
|
|
||||||
"sha256:bdc69d0d3d989a1029df0eed67cc5e8e5d968f3724f4519bd03e0ec68df7543c",
|
|
||||||
"sha256:bffc92138d75664b6d543984db7893a628559b9e78658563b0395e2a5fb47ed9",
|
|
||||||
"sha256:c25e30a20e1b426e1f0fa00131c516f16e474204eee1139d1603e132acffc314",
|
|
||||||
"sha256:c7947ab8d589e3178da3d7cdeabe14f841b391e17046954f2fbcd941705762b5",
|
|
||||||
"sha256:c84b239a1f4ec62e9c789aafe0543f0594f0acd90c8d9e15bcece3efe55eca66",
|
|
||||||
"sha256:c885da45e70139464f082018ac527fdaad26f1657a99ee13eecdce0f0ca24ab4",
|
|
||||||
"sha256:d9825410197a97685d6a1fa2a86196430b01877d64458a20e95d4fd00d739a08",
|
|
||||||
"sha256:da4fa650cef02db88c2b98acc5434461e027dce0ae8c22dd5a69013eaf510006",
|
|
||||||
"sha256:df027262368334552db2c0ce39706b3fb32022d1dce34673d0f9422df004b96a",
|
|
||||||
"sha256:ebfff755c360d674306e5891c564a274a47953562b42fb74a5c25b8fc1fb1cb5",
|
|
||||||
"sha256:eca54f4bb349d45afc17e3011ed4264ef1cc9e266699874cdd1349c504e64798",
|
|
||||||
"sha256:f489c4765093fb60e2edafdf223397bc716491b2b69fe74367b70d6999257a5c",
|
|
||||||
"sha256:fdfac7cda115bca3a5abb2f9e43bc2fb66c2b65ab074913643803ca7083a79ea",
|
|
||||||
"sha256:febec69c0291efd056c65691b6d9a339f8b4bc43c6635b8699471248fe897fea"
|
|
||||||
],
|
|
||||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6'",
|
|
||||||
"version": "==3.23.0"
|
|
||||||
},
|
|
||||||
"python-dateutil": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3",
|
|
||||||
"sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"
|
|
||||||
],
|
|
||||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
|
|
||||||
"version": "==2.9.0.post0"
|
|
||||||
},
|
|
||||||
"pyzipper": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:0adca90a00c36a93fbe49bfa8c5add452bfe4ef85a1b8e3638739dd1c7b26bfc",
|
|
||||||
"sha256:6d097f465bfa47796b1494e12ea65d1478107d38e13bc56f6e58eedc4f6c1a87"
|
|
||||||
],
|
|
||||||
"index": "pypi",
|
|
||||||
"markers": "python_version >= '3.4'",
|
|
||||||
"version": "==0.3.6"
|
|
||||||
},
|
|
||||||
"s3transfer": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:0148ef34d6dd964d0d8cf4311b2b21c474693e57c2e069ec708ce043d2b527be",
|
|
||||||
"sha256:f5e6db74eb7776a37208001113ea7aa97695368242b364d73e91c981ac522177"
|
|
||||||
],
|
|
||||||
"markers": "python_version >= '3.9'",
|
|
||||||
"version": "==0.13.0"
|
|
||||||
},
|
|
||||||
"six": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274",
|
|
||||||
"sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"
|
|
||||||
],
|
|
||||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
|
|
||||||
"version": "==1.17.0"
|
|
||||||
},
|
|
||||||
"urllib3": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:414bc6535b787febd7567804cc015fee39daab8ad86268f1310a9250697de466",
|
|
||||||
"sha256:4e16665048960a0900c702d4a66415956a584919c03361cac9f1df5c5dd7e813"
|
|
||||||
],
|
|
||||||
"markers": "python_version >= '3.9'",
|
|
||||||
"version": "==2.4.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"develop": {
|
|
||||||
"autopep8": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:8d6c87eba648fdcfc83e29b788910b8643171c395d9c4bcf115ece035b9c9dda",
|
|
||||||
"sha256:a203fe0fcad7939987422140ab17a930f684763bf7335bdb6709991dd7ef6c2d"
|
|
||||||
],
|
|
||||||
"index": "pypi",
|
|
||||||
"markers": "python_version >= '3.8'",
|
|
||||||
"version": "==2.3.1"
|
|
||||||
},
|
|
||||||
"flake8": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:049d058491e228e03e67b390f311bbf88fce2dbaa8fa673e7aea87b7198b8d38",
|
|
||||||
"sha256:597477df7860daa5aa0fdd84bf5208a043ab96b8e96ab708770ae0364dd03213"
|
|
||||||
],
|
|
||||||
"index": "pypi",
|
|
||||||
"markers": "python_full_version >= '3.8.1'",
|
|
||||||
"version": "==7.1.1"
|
|
||||||
},
|
|
||||||
"mccabe": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325",
|
|
||||||
"sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"
|
|
||||||
],
|
|
||||||
"markers": "python_version >= '3.6'",
|
|
||||||
"version": "==0.7.0"
|
|
||||||
},
|
|
||||||
"pycodestyle": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:46f0fb92069a7c28ab7bb558f05bfc0110dac69a0cd23c61ea0040283a9d78b3",
|
|
||||||
"sha256:6838eae08bbce4f6accd5d5572075c63626a15ee3e6f842df996bf62f6d73521"
|
|
||||||
],
|
|
||||||
"markers": "python_version >= '3.8'",
|
|
||||||
"version": "==2.12.1"
|
|
||||||
},
|
|
||||||
"pyflakes": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:1c61603ff154621fb2a9172037d84dca3500def8c8b630657d1701f026f8af3f",
|
|
||||||
"sha256:84b5be138a2dfbb40689ca07e2152deb896a65c3a3e24c251c5c62489568074a"
|
|
||||||
],
|
|
||||||
"markers": "python_version >= '3.8'",
|
|
||||||
"version": "==3.2.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,236 +0,0 @@
|
|||||||
import datetime
|
|
||||||
import logging
|
|
||||||
import os
|
|
||||||
from zoneinfo import ZoneInfo
|
|
||||||
|
|
||||||
import boto3
|
|
||||||
import pyzipper
|
|
||||||
from pyzipper.zipfile import BadZipFile
|
|
||||||
|
|
||||||
# 環境変数
|
|
||||||
DATA_IMPORT_BUCKET = os.environ["DATA_IMPORT_BUCKET"]
|
|
||||||
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"]
|
|
||||||
|
|
||||||
# 定数
|
|
||||||
# 多重起動抑制用のコントロールファイルの拡張子
|
|
||||||
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) -> os.path:
|
|
||||||
"""
|
|
||||||
暗号化ZIPを解凍する。
|
|
||||||
|
|
||||||
:param zip_filepath: ZIPファイルが保管されているフォルダパス
|
|
||||||
:param extract_to_folder: ZIPファイルの解凍先フォルダ
|
|
||||||
:param password: ZIPパスワード
|
|
||||||
|
|
||||||
:return 解凍されたファイルパス
|
|
||||||
"""
|
|
||||||
# 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 Exception as e:
|
|
||||||
raise e
|
|
||||||
|
|
||||||
return os.path.join(extract_to_folder, inner_filename)
|
|
||||||
|
|
||||||
|
|
||||||
def get_s3_event_parameter(event: dict) -> tuple[str, str, str, str]:
|
|
||||||
s3_event = event["Records"][0]["s3"]
|
|
||||||
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) -> str:
|
|
||||||
"""SSMパラメータストアから指定されたパラメータ名の値を取得する"""
|
|
||||||
response = ssm_client.get_parameter(
|
|
||||||
Name=parameter_key, WithDecryption=with_decryption)
|
|
||||||
parameter_value: str = response['Parameter']['Value']
|
|
||||||
return parameter_value
|
|
||||||
|
|
||||||
|
|
||||||
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) -> None:
|
|
||||||
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}')
|
|
||||||
delete_doing_file(event)
|
|
||||||
return
|
|
||||||
|
|
||||||
# ⑤ ZIP解凍パスワードをSSM パラメータストアから取得する
|
|
||||||
try:
|
|
||||||
logger.info('I-05-01 ZIP解凍パスワードを読込')
|
|
||||||
zip_password = get_ssm_params(
|
|
||||||
MEDPASS_ZIP_PASSWORD_PARAMETER_STORE_KEY)
|
|
||||||
except Exception as e:
|
|
||||||
logger.exception(f'E-05-01 ZIP解凍パスワードの読み込みに失敗しました エラー内容:{e}')
|
|
||||||
delete_doing_file(event)
|
|
||||||
return
|
|
||||||
|
|
||||||
# ⑥ ZIPファイルを解凍してローカルに保存
|
|
||||||
try:
|
|
||||||
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 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.lower().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=HCP_WEB_BACKUP_BUCKET,
|
|
||||||
Key=f'{BACKUP_ZIPFILE_FOLDER}/{execute_date_yyyymmdd}/{event_file_name}',
|
|
||||||
CopySource=backup_copy_source
|
|
||||||
)
|
|
||||||
logger.info(
|
|
||||||
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'{BACKUP_DATA_IMPORT_FOLDER}/{execute_date_yyyymmdd}/{data_import_file_name}'
|
|
||||||
)
|
|
||||||
logger.info(
|
|
||||||
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,
|
|
||||||
'Key': f'{BACKUP_DATA_IMPORT_FOLDER}/{execute_date_yyyymmdd}/{data_import_file_name}'}
|
|
||||||
s3_client.copy_object(
|
|
||||||
Bucket=DATA_IMPORT_BUCKET,
|
|
||||||
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-07-01 medパス解凍後データの転送完了:{DATA_IMPORT_BUCKET}/{HCP_WEB_TARGET_FOLDER}/{data_import_file_name}')
|
|
||||||
|
|
||||||
# ⑧ メモリに保持したバケット名/フォルダ名内の「受信データファイル名.doing」ファイルを削除する
|
|
||||||
delete_doing_file(event)
|
|
||||||
|
|
||||||
logger.info('I-08-01 処理終了 medパスデータ解凍・復号化・転送処理')
|
|
||||||
|
|
||||||
except Exception as e:
|
|
||||||
logger.exception(f'想定外のエラーが発生しました。処理を終了します。 例外内容:{e}')
|
|
||||||
delete_doing_file(event)
|
|
||||||
raise e
|
|
||||||
@ -1,214 +0,0 @@
|
|||||||
import datetime
|
|
||||||
import json
|
|
||||||
import logging
|
|
||||||
import os
|
|
||||||
import re
|
|
||||||
from zoneinfo import ZoneInfo
|
|
||||||
|
|
||||||
import boto3
|
|
||||||
|
|
||||||
# 環境変数
|
|
||||||
CONFIG_BUCKET_NAME = os.environ["CONFIG_BUCKET_NAME"]
|
|
||||||
BUCKET_TRANSFER_SETTING_FILE_FOLDER = os.environ["BUCKET_TRANSFER_SETTING_FILE_FOLDER"]
|
|
||||||
BUCKET_TRANSFER_SETTING_FILE_NAME = os.environ["BUCKET_TRANSFER_SETTING_FILE_NAME"]
|
|
||||||
LOG_LEVEL = os.environ["LOG_LEVEL"]
|
|
||||||
TZ = os.environ["TZ"]
|
|
||||||
ENV = os.environ["ENV"]
|
|
||||||
|
|
||||||
# 定数
|
|
||||||
EXCLUSIVE_CONTROL_FILE_EXT = '.doing'
|
|
||||||
|
|
||||||
# S3クライアント
|
|
||||||
s3_client = boto3.client('s3')
|
|
||||||
|
|
||||||
# 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 get_s3_event_parameter(event: dict) -> tuple[str, str, str, str]:
|
|
||||||
"""Lambdaに送信されたEvent情報からS3のイベントを取得する"""
|
|
||||||
s3_event = event["Records"][0]["s3"]
|
|
||||||
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 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 lambda_handler(event, context):
|
|
||||||
"""Lambdaハンドラー関数"""
|
|
||||||
# ① 処理開始ログを出力する
|
|
||||||
logger.info('I-01-01 処理開始 S3バケット間ファイル転送処理')
|
|
||||||
|
|
||||||
# ② 処理開始時に受け取ったイベント情報をログに出力する
|
|
||||||
# バケット名・フォルダ名・受信データファイル名をメモリに保持
|
|
||||||
(
|
|
||||||
event_bucket_name,
|
|
||||||
event_object_key,
|
|
||||||
event_file_name,
|
|
||||||
event_folder_name
|
|
||||||
) = get_s3_event_parameter(event)
|
|
||||||
|
|
||||||
try:
|
|
||||||
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(
|
|
||||||
f'I-03-01 {event_bucket_name}/{event_object_key}を転送します')
|
|
||||||
s3_client.put_object(
|
|
||||||
Bucket=event_bucket_name, Key=f'{event_object_key}{EXCLUSIVE_CONTROL_FILE_EXT}', Body=b'')
|
|
||||||
|
|
||||||
# ④ バケット転送設定ファイルを特定する
|
|
||||||
transfer_config_file_response = s3_client.get_object(
|
|
||||||
Bucket=CONFIG_BUCKET_NAME, Key=f'{BUCKET_TRANSFER_SETTING_FILE_FOLDER}/{BUCKET_TRANSFER_SETTING_FILE_NAME}')
|
|
||||||
transfer_config_file = json.loads(
|
|
||||||
transfer_config_file_response['Body'].read().decode('utf8'))
|
|
||||||
|
|
||||||
# ⑤ バケット転送設定ファイルのキー[受信ファイル名正規表現パターン]と、[メモリに保持した受信ファイル名]と一致するものを取得する。
|
|
||||||
|
|
||||||
transfer_config = None
|
|
||||||
for key in transfer_config_file.keys():
|
|
||||||
filename_regex = re.compile(key)
|
|
||||||
match_result = filename_regex.fullmatch(event_file_name)
|
|
||||||
if match_result is not None:
|
|
||||||
transfer_config = transfer_config_file[key]
|
|
||||||
break
|
|
||||||
|
|
||||||
if transfer_config is None:
|
|
||||||
logger.error(
|
|
||||||
f'E-03-01 S3バケットの転送設定が見つかりません。{CONFIG_BUCKET_NAME}/{BUCKET_TRANSFER_SETTING_FILE_FOLDER}/{BUCKET_TRANSFER_SETTING_FILE_NAME}')
|
|
||||||
delete_doing_file(event)
|
|
||||||
return
|
|
||||||
|
|
||||||
# ⑥ 受信ファイルを、⑤でメモリ上に保持したJSONオブジェクトの設定内容に基づき、バックアップする
|
|
||||||
if transfer_config.get('backup_setting', None) is not None:
|
|
||||||
backup_setting = transfer_config['backup_setting']
|
|
||||||
copy_source = {'Bucket': event_bucket_name,
|
|
||||||
'Key': event_object_key}
|
|
||||||
backup_bucket = backup_setting['backup_bucket'].format(env=ENV)
|
|
||||||
backup_date_pattern = datetime.date.today().strftime(
|
|
||||||
backup_setting['date_pattern'])
|
|
||||||
s3_client.copy_object(
|
|
||||||
Bucket=backup_bucket,
|
|
||||||
Key=f'{event_folder_name}/{backup_date_pattern}/{event_file_name}',
|
|
||||||
CopySource=copy_source
|
|
||||||
)
|
|
||||||
logger.info(
|
|
||||||
f'I-04-01 受信ファイルのバックアップ完了::{backup_bucket}/{event_folder_name}/{backup_date_pattern}/{event_file_name}')
|
|
||||||
|
|
||||||
# ⑦ 受信ファイルを、⑤でメモリ上に保持したJSONオブジェクトの設定内容に基づき、移動する
|
|
||||||
destination_bucket = transfer_config['destination_bucket'].format(
|
|
||||||
env=ENV)
|
|
||||||
destination_folder = transfer_config['destination_folder']
|
|
||||||
s3_client.copy_object(
|
|
||||||
Bucket=destination_bucket,
|
|
||||||
Key=f"{destination_folder}/{event_file_name}",
|
|
||||||
CopySource=copy_source
|
|
||||||
)
|
|
||||||
# コピー後、元のバケットからは削除する
|
|
||||||
s3_client.delete_object(Bucket=event_bucket_name, Key=event_object_key)
|
|
||||||
logger.info(
|
|
||||||
f'I-05-01 受信ファイルの転送完了:{destination_bucket}/{destination_folder}/{event_file_name}')
|
|
||||||
|
|
||||||
# ⑧ メモリに保持したバケット名/フォルダ名内の「受信データファイル名.doing」ファイルを削除する
|
|
||||||
delete_doing_file(event)
|
|
||||||
|
|
||||||
logger.info('I-06-01 処理終了 S3バケット間ファイル転送処理')
|
|
||||||
|
|
||||||
except Exception as e:
|
|
||||||
logger.exception(
|
|
||||||
f'E-99 想定外のエラーが発生しました。処理を終了します。ファイル名フルパス: {event_bucket_name}/{event_object_key} 例外内容:{e}'
|
|
||||||
)
|
|
||||||
delete_doing_file(event)
|
|
||||||
raise e
|
|
||||||
|
|
||||||
return
|
|
||||||
|
|
||||||
# 動作確認用のコード
|
|
||||||
# if __name__ == '__main__':
|
|
||||||
# lambda_handler(
|
|
||||||
# {
|
|
||||||
# "Records": [
|
|
||||||
# {
|
|
||||||
# "eventVersion": "2.1",
|
|
||||||
# "eventSource": "aws:s3",
|
|
||||||
# "awsRegion": "ap-northeast-1",
|
|
||||||
# "eventTime": "2024-07-16T07:10:33.021Z",
|
|
||||||
# "eventName": "ObjectCreated:Put",
|
|
||||||
# "userIdentity": {
|
|
||||||
# "principalId": "AWS:AIDA4A3J5AIPDAT6MUJPZ"
|
|
||||||
# },
|
|
||||||
# "requestParameters": {
|
|
||||||
# "sourceIPAddress": "118.238.231.215"
|
|
||||||
# },
|
|
||||||
# "responseElements": {
|
|
||||||
# "x-amz-request-id": "0BST21P92A15BH55",
|
|
||||||
# "x-amz-id-2": "db9n9RpQxHEnq5o5ZLCeIGpuka54ghMHcbJ2Rj9aCcpjf111D4dyTZn5w5VvzV6W56rU89cSx/ihzkEHs8wk30ckbtRMYQ0byJn0UfK6bjg="
|
|
||||||
# },
|
|
||||||
# "s3": {
|
|
||||||
# "s3SchemaVersion": "1.0",
|
|
||||||
# "configurationId": "accesslog-receive-event2",
|
|
||||||
# "bucket": {
|
|
||||||
# "name": "mbj-newdwh2021-staging-hcp-web-receive",
|
|
||||||
# "ownerIdentity": {
|
|
||||||
# "principalId": "A1YQ10QIZBI5OE"
|
|
||||||
# },
|
|
||||||
# "arn": "arn:aws:s3:::mbj-newdwh2021-staging-hcp-web-receive"
|
|
||||||
# },
|
|
||||||
# "object": {
|
|
||||||
# "key": "palantir/hcpweb_accesslog_2024-07-16-071045.csv",
|
|
||||||
# "size": 597820,
|
|
||||||
# "eTag": "94299e880925b6f655c090521ff83d7a",
|
|
||||||
# "sequencer": "0066961CE8E7A670F2"
|
|
||||||
# }
|
|
||||||
# }
|
|
||||||
# }
|
|
||||||
# ]
|
|
||||||
# },
|
|
||||||
# None
|
|
||||||
# )
|
|
||||||
@ -84,7 +84,7 @@ SET @upsert_statement_base =
|
|||||||
MSJ_SIPAGL_comment__c, MSJ_SIPAGL_4B__c, MSJ_SIPAGL_5B__c, Location_Text_vod__c, Call_Channel_vod__c,
|
MSJ_SIPAGL_comment__c, MSJ_SIPAGL_4B__c, MSJ_SIPAGL_5B__c, Location_Text_vod__c, Call_Channel_vod__c,
|
||||||
MSJ_Scientific_Interaction__c, MSJ_Activity_Email_Reply__c, MSJ_Interaction_Duration__c, MSJ_SIPAGL_1A_date__c,
|
MSJ_Scientific_Interaction__c, MSJ_Activity_Email_Reply__c, MSJ_Interaction_Duration__c, MSJ_SIPAGL_1A_date__c,
|
||||||
MSJ_CoPromotion__c, Call_Channel_Formula_vod__c, Meeting_Request_vod__c, Phone_vod__c, Detail_Section_Attribute_vod__c, Remote_Meeting_Type_vod__c,
|
MSJ_CoPromotion__c, Call_Channel_Formula_vod__c, Meeting_Request_vod__c, Phone_vod__c, Detail_Section_Attribute_vod__c, Remote_Meeting_Type_vod__c,
|
||||||
MSJ_SIPAGL_6__c,file_name, file_row_cnt, delete_flg, ins_user, ins_date, upd_user, upd_date)
|
file_name, file_row_cnt, delete_flg, ins_user, ins_date, upd_user, upd_date)
|
||||||
SELECT
|
SELECT
|
||||||
Id, OwnerId, IsDeleted, Name, RecordTypeId, CreatedDate, CreatedById, LastModifiedDate, LastModifiedById,
|
Id, OwnerId, IsDeleted, Name, RecordTypeId, CreatedDate, CreatedById, LastModifiedDate, LastModifiedById,
|
||||||
SystemModstamp, LastActivityDate, MayEdit, IsLocked, LastViewedDate, LastReferencedDate, Call_Comments_vod__c,
|
SystemModstamp, LastActivityDate, MayEdit, IsLocked, LastViewedDate, LastReferencedDate, Call_Comments_vod__c,
|
||||||
@ -130,7 +130,7 @@ SET @upsert_statement_base =
|
|||||||
MSJ_SIPAGL_comment__c, MSJ_SIPAGL_4B__c, MSJ_SIPAGL_5B__c, Location_Text_vod__c, Call_Channel_vod__c,
|
MSJ_SIPAGL_comment__c, MSJ_SIPAGL_4B__c, MSJ_SIPAGL_5B__c, Location_Text_vod__c, Call_Channel_vod__c,
|
||||||
MSJ_Scientific_Interaction__c, MSJ_Activity_Email_Reply__c, MSJ_Interaction_Duration__c, MSJ_SIPAGL_1A_date__c,
|
MSJ_Scientific_Interaction__c, MSJ_Activity_Email_Reply__c, MSJ_Interaction_Duration__c, MSJ_SIPAGL_1A_date__c,
|
||||||
MSJ_CoPromotion__c, Call_Channel_Formula_vod__c, Meeting_Request_vod__c, Phone_vod__c, Detail_Section_Attribute_vod__c, Remote_Meeting_Type_vod__c,
|
MSJ_CoPromotion__c, Call_Channel_Formula_vod__c, Meeting_Request_vod__c, Phone_vod__c, Detail_Section_Attribute_vod__c, Remote_Meeting_Type_vod__c,
|
||||||
MSJ_SIPAGL_6__c,file_name, file_row_cnt, delete_flg, ins_user, ins_date, upd_user, upd_date
|
file_name, file_row_cnt, delete_flg, ins_user, ins_date, upd_user, upd_date
|
||||||
FROM
|
FROM
|
||||||
internal02.crm_Call2_vod__c AS internaltb
|
internal02.crm_Call2_vod__c AS internaltb
|
||||||
WHERE
|
WHERE
|
||||||
@ -246,7 +246,7 @@ SET @upsert_statement_base =
|
|||||||
Call_Channel_Formula_vod__c = internaltb.Call_Channel_Formula_vod__c,
|
Call_Channel_Formula_vod__c = internaltb.Call_Channel_Formula_vod__c,
|
||||||
Meeting_Request_vod__c = internaltb.Meeting_Request_vod__c, Phone_vod__c = internaltb.Phone_vod__c,
|
Meeting_Request_vod__c = internaltb.Meeting_Request_vod__c, Phone_vod__c = internaltb.Phone_vod__c,
|
||||||
Detail_Section_Attribute_vod__c = internaltb.Detail_Section_Attribute_vod__c, Remote_Meeting_Type_vod__c = internaltb.Remote_Meeting_Type_vod__c,
|
Detail_Section_Attribute_vod__c = internaltb.Detail_Section_Attribute_vod__c, Remote_Meeting_Type_vod__c = internaltb.Remote_Meeting_Type_vod__c,
|
||||||
MSJ_SIPAGL_6__c = internaltb.MSJ_SIPAGL_6__c,file_name = internaltb.file_name, file_row_cnt = internaltb.file_row_cnt,
|
file_name = internaltb.file_name, file_row_cnt = internaltb.file_row_cnt,
|
||||||
upd_user = CURRENT_USER(), upd_date = CURRENT_TIMESTAMP();';
|
upd_user = CURRENT_USER(), upd_date = CURRENT_TIMESTAMP();';
|
||||||
|
|
||||||
OPEN table_cursor;
|
OPEN table_cursor;
|
||||||
|
|||||||
@ -1,17 +0,0 @@
|
|||||||
-- A5M2で実行時に[SQL] - [スラッシュ(/)のみの行でSQLを区切る]に変えてから実行する
|
|
||||||
CREATE FUNCTION medaca_common.convert_to_date(date_string VARCHAR(255), _format VARCHAR(50)) RETURNS datetime
|
|
||||||
DETERMINISTIC
|
|
||||||
BEGIN
|
|
||||||
DECLARE converted_date DATETIME;
|
|
||||||
|
|
||||||
DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
|
||||||
BEGIN
|
|
||||||
-- エラー発生時にNULLを返す
|
|
||||||
RETURN NULL;
|
|
||||||
END;
|
|
||||||
|
|
||||||
-- 日付変換の実行
|
|
||||||
SET converted_date = STR_TO_DATE(date_string, _format);
|
|
||||||
|
|
||||||
RETURN converted_date;
|
|
||||||
END
|
|
||||||
@ -1,12 +1,12 @@
|
|||||||
2025/01/03
|
2024/01/03
|
||||||
2025/02/03
|
2024/02/03
|
||||||
2025/03/03
|
2024/03/03
|
||||||
2025/04/03
|
2024/04/03
|
||||||
2025/05/03
|
2024/05/03
|
||||||
2025/06/03
|
2024/06/03
|
||||||
2025/07/03
|
2024/07/03
|
||||||
2025/08/03
|
2024/08/03
|
||||||
2025/09/03
|
2024/09/03
|
||||||
2025/10/03
|
2024/10/03
|
||||||
2025/11/03
|
2024/11/03
|
||||||
2025/12/03
|
2024/12/03
|
||||||
@ -1,6 +1,6 @@
|
|||||||
宛先各位
|
宛先各位
|
||||||
SAP月次連携として、以下のファイルを受領しましたので通知いたします。
|
SAP月次I/Fである以下のファイルを受領しましたので、通知いたします。
|
||||||
{notice_file_names}
|
{notice_file_names}
|
||||||
|
|
||||||
尚、本メールはシステム自動送信のため、返信は出来ません。
|
尚、本メールはシステム自動送信のため、返信は出来ません。
|
||||||
本件に関する問い合わせは、SAP担当者にお願いいたします。
|
本件に関する問い合わせは、IT部門 ゴザリ様にお願いいたします。
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
【MeDaCa連携通知】SAP Finance 月次連携ファイルを受領しました
|
【MeDaCa連携通知】SAP Finance 月次I/Fファイルを受領しました
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
宛先各位
|
宛先各位
|
||||||
SAP日次連携として、以下のファイルを受領できておりません。
|
SAP日次I/Fである以下のファイルを受領できておりません。
|
||||||
{notice_file_names}
|
{notice_file_names}
|
||||||
|
|
||||||
SAPシステム側のSFTP送信状況のご確認をお願いいたします。
|
SAPシステム側のSFTP送信状況のご確認をお願いいたします。
|
||||||
|
|
||||||
尚、本メールはシステム自動送信のため、返信は出来ません。
|
尚、本メールはシステム自動送信のため、返信は出来ません。
|
||||||
本件に関する問い合わせは、SAP担当者にお願いいたします。
|
本件に関する問い合わせは、IT部門 ゴザリ様にお願いいたします。
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
宛先各位
|
宛先各位
|
||||||
SAP月次連携として、以下のファイルを受領できておりません。
|
SAP月次I/Fである以下のファイルを受領できておりません。
|
||||||
{notice_file_names}
|
{notice_file_names}
|
||||||
|
|
||||||
SAPシステム側のSFTP送信状況のご確認をお願いいたします。
|
SAPシステム側のSFTP送信状況のご確認をお願いいたします。
|
||||||
|
|
||||||
尚、本メールはシステム自動送信のため、返信は出来ません。
|
尚、本メールはシステム自動送信のため、返信は出来ません。
|
||||||
本件に関する問い合わせは、SAP担当者にお願いいたします。
|
本件に関する問い合わせは、IT部門 ゴザリ様にお願いいたします。
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
【MeDaCa連携エラー通知】SAP Finance 日次連携ファイル未受領
|
【MeDaCa連携エラー通知】SAP Finance 日次I/Fファイル未受領
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
【MeDaCa連携エラー通知】SAP Finance 月次連携ファイル未受領
|
【MeDaCa連携エラー通知】SAP Finance 月次I/Fファイル未受領
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
宛先各位
|
宛先各位
|
||||||
SAP月次連携として、以下のファイルを受領しましたので通知いたします。
|
SAP月次I/Fである以下のファイルを受領しましたので、通知いたします。
|
||||||
{notice_file_names}
|
{notice_file_names}
|
||||||
|
|
||||||
尚、本メールはシステム自動送信のため、返信は出来ません。
|
尚、本メールはシステム自動送信のため、返信は出来ません。
|
||||||
本件に関する問い合わせは、SAP担当者にお願いいたします。
|
本件に関する問い合わせは、IT部門 ゴザリ様にお願いいたします。
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
【MeDaCa連携通知】SAP SupplyChain 月次連携ファイルを受領しました
|
【MeDaCa連携通知】SAP SupplyChain 月次I/Fファイルを受領しました
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
宛先各位
|
宛先各位
|
||||||
SAP日次連携として、以下のファイルを受領できておりません。
|
SAP日次I/Fである以下のファイルを受領できておりません。
|
||||||
{notice_file_names}
|
{notice_file_names}
|
||||||
|
|
||||||
SAPシステム側のSFTP送信状況のご確認をお願いいたします。
|
SAPシステム側のSFTP送信状況のご確認をお願いいたします。
|
||||||
|
|
||||||
尚、本メールはシステム自動送信のため、返信は出来ません。
|
尚、本メールはシステム自動送信のため、返信は出来ません。
|
||||||
本件に関する問い合わせは、SAP担当者にお願いいたします。
|
本件に関する問い合わせは、IT部門 ゴザリ様にお願いいたします。
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
宛先各位
|
宛先各位
|
||||||
SAP月次連携として、以下のファイルを受領できておりません。
|
SAP月次I/Fである以下のファイルを受領できておりません。
|
||||||
{notice_file_names}
|
{notice_file_names}
|
||||||
|
|
||||||
SAPシステム側のSFTP送信状況のご確認をお願いいたします。
|
SAPシステム側のSFTP送信状況のご確認をお願いいたします。
|
||||||
|
|
||||||
尚、本メールはシステム自動送信のため、返信は出来ません。
|
尚、本メールはシステム自動送信のため、返信は出来ません。
|
||||||
本件に関する問い合わせは、SAP担当者にお願いいたします。
|
本件に関する問い合わせは、IT部門 ゴザリ様にお願いいたします。
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
【MeDaCa連携エラー通知】SAP SupplyChain 日次連携ファイル未受領
|
【MeDaCa連携エラー通知】SAP SupplyChain 日次I/Fファイル未受領
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
【MeDaCa連携エラー通知】SAP SupplyChain 月次連携ファイル未受領
|
【MeDaCa連携エラー通知】SAP SupplyChain 月次I/Fファイル未受領
|
||||||
|
|||||||
@ -1,16 +0,0 @@
|
|||||||
{
|
|
||||||
"hcpweb_accesslog_\\d{4}-\\d{2}-\\d{2}-\\d{6}\\.(csv|CSV)": {
|
|
||||||
"Description": {
|
|
||||||
"データソース名": "hcp_web",
|
|
||||||
"送信元システム名": "Palantir",
|
|
||||||
"データの論理名(説明)": "HCPウェブアクセスログデータ",
|
|
||||||
"特記事項": "日〜金 AM1:00にMeDaCAへ連携"
|
|
||||||
},
|
|
||||||
"destination_bucket": "mbj-newdwh2021-{env}-data",
|
|
||||||
"destination_folder": "hcp_web/target",
|
|
||||||
"backup_setting": {
|
|
||||||
"backup_bucket": "mbj-newdwh2021-{env}-backup-hcp-web",
|
|
||||||
"date_pattern": "%Y/%m/%d"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"last_fetch_datetime_from": "1900-01-01T00:00:00.000Z",
|
|
||||||
"last_fetch_datetime_to": ""
|
|
||||||
}
|
|
||||||
@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"last_fetch_datetime_from": "1900-01-01T00:00:00.000Z",
|
|
||||||
"last_fetch_datetime_to": ""
|
|
||||||
}
|
|
||||||
@ -281,8 +281,7 @@
|
|||||||
"Meeting_Request_vod__c",
|
"Meeting_Request_vod__c",
|
||||||
"Phone_vod__c",
|
"Phone_vod__c",
|
||||||
"Detail_Section_Attribute_vod__c",
|
"Detail_Section_Attribute_vod__c",
|
||||||
"Remote_Meeting_Type_vod__c",
|
"Remote_Meeting_Type_vod__c"
|
||||||
"MSJ_SIPAGL_6__c"
|
|
||||||
],
|
],
|
||||||
"is_skip": false,
|
"is_skip": false,
|
||||||
"is_update_last_fetch_datetime": true
|
"is_update_last_fetch_datetime": true
|
||||||
@ -414,10 +413,7 @@
|
|||||||
"ewizard_link__c",
|
"ewizard_link__c",
|
||||||
"keywords__c",
|
"keywords__c",
|
||||||
"original_material_approved_in_veritas__c",
|
"original_material_approved_in_veritas__c",
|
||||||
"trade_team__c",
|
"trade_team__c"
|
||||||
"Publish_Method_vod__c",
|
|
||||||
"MSJ_Key_Presentation__c",
|
|
||||||
"MSJ_CLM_Report_Name__c"
|
|
||||||
],
|
],
|
||||||
"is_skip": false,
|
"is_skip": false,
|
||||||
"is_update_last_fetch_datetime": true
|
"is_update_last_fetch_datetime": true
|
||||||
@ -631,8 +627,7 @@
|
|||||||
"MSJ_DirectMail_Status__c",
|
"MSJ_DirectMail_Status__c",
|
||||||
"EM_Event_Team_Member_vod__c",
|
"EM_Event_Team_Member_vod__c",
|
||||||
"Group_Name_vod__c",
|
"Group_Name_vod__c",
|
||||||
"Role_vod__c",
|
"Role_vod__c"
|
||||||
"MSJ_Attendee_Media__c"
|
|
||||||
],
|
],
|
||||||
"is_skip": false,
|
"is_skip": false,
|
||||||
"is_update_last_fetch_datetime": true
|
"is_update_last_fetch_datetime": true
|
||||||
@ -706,8 +701,7 @@
|
|||||||
"trade_team__c",
|
"trade_team__c",
|
||||||
"MSJ_Start_Date__c",
|
"MSJ_Start_Date__c",
|
||||||
"MSJ_End_Date__c",
|
"MSJ_End_Date__c",
|
||||||
"MSJ_Strategic_Message__c",
|
"MSJ_Strategic_Message__c"
|
||||||
"Media_Type_vod__c"
|
|
||||||
],
|
],
|
||||||
"is_skip": false,
|
"is_skip": false,
|
||||||
"is_update_last_fetch_datetime": true
|
"is_update_last_fetch_datetime": true
|
||||||
@ -788,8 +782,7 @@
|
|||||||
"MSJ_CE_SIPAGL_Comment__c",
|
"MSJ_CE_SIPAGL_Comment__c",
|
||||||
"MSJ_CE_SIPAGL_1A_date__c",
|
"MSJ_CE_SIPAGL_1A_date__c",
|
||||||
"MSJ_CE_SIPAGL_6__c",
|
"MSJ_CE_SIPAGL_6__c",
|
||||||
"MSJ_mc_campaign_code__c",
|
"MSJ_mc_campaign_code__c"
|
||||||
"MSJ_CE_SIPAGL_7__c"
|
|
||||||
],
|
],
|
||||||
"is_skip": false,
|
"is_skip": false,
|
||||||
"is_update_last_fetch_datetime": true
|
"is_update_last_fetch_datetime": true
|
||||||
@ -961,35 +954,7 @@
|
|||||||
"MSJ_Comment_from_AM__c",
|
"MSJ_Comment_from_AM__c",
|
||||||
"MSJ_Efforts_of_Month__c",
|
"MSJ_Efforts_of_Month__c",
|
||||||
"MSJ_Efforts_of_Year__c",
|
"MSJ_Efforts_of_Year__c",
|
||||||
"MSJ_Skill_Task__c",
|
"MSJ_Skill_Task__c"
|
||||||
"MSJ_SK_11__c",
|
|
||||||
"MSJ_SK_12__c",
|
|
||||||
"MSJ_SK_13__c",
|
|
||||||
"MSJ_SK_14__c",
|
|
||||||
"MSJ_SK_15__c",
|
|
||||||
"MSJ_SK_16__c",
|
|
||||||
"MSJ_SK_17__c",
|
|
||||||
"SK_Special_Note_01__c",
|
|
||||||
"SK_Special_Note_09__c",
|
|
||||||
"MSJ_Overcome_Special_Note_01__c",
|
|
||||||
"SK_Special_Note_02__c",
|
|
||||||
"SK_Special_Note_03__c",
|
|
||||||
"SK_Special_Note_04__c",
|
|
||||||
"SK_Special_Note_05__c",
|
|
||||||
"SK_Special_Note_06__c",
|
|
||||||
"SK_Special_Note_07__c",
|
|
||||||
"SK_Special_Note_08__c",
|
|
||||||
"MSJ_Overcome_Special_Note_02__c",
|
|
||||||
"MSJ_Overcome_Special_Note_03__c",
|
|
||||||
"MSJ_Overcome_Special_Note_04__c",
|
|
||||||
"MSJ_Interview_Prep_Special_Note01__c",
|
|
||||||
"MSJ_Interview_Prep_Special_Note02__c",
|
|
||||||
"MSJ_After_Call_09__c",
|
|
||||||
"MSJ_After_Call_10__c",
|
|
||||||
"MSJ_After_Call_11__c",
|
|
||||||
"MSJ_Interview_Prep_Reject_Reason__c",
|
|
||||||
"After_Call_Reject_Reason__c",
|
|
||||||
"After_Call_Special_Note__c"
|
|
||||||
],
|
],
|
||||||
"is_skip": false,
|
"is_skip": false,
|
||||||
"is_update_last_fetch_datetime": true
|
"is_update_last_fetch_datetime": true
|
||||||
@ -1365,6 +1330,7 @@
|
|||||||
"PermissionsMergeTopics",
|
"PermissionsMergeTopics",
|
||||||
"PermissionsSubscribeToLightningReports",
|
"PermissionsSubscribeToLightningReports",
|
||||||
"PermissionsManagePvtRptsAndDashbds",
|
"PermissionsManagePvtRptsAndDashbds",
|
||||||
|
"PermissionsAllowLightningLogin",
|
||||||
"PermissionsCampaignInfluence2",
|
"PermissionsCampaignInfluence2",
|
||||||
"PermissionsViewDataAssessment",
|
"PermissionsViewDataAssessment",
|
||||||
"PermissionsCanApproveFeedPost",
|
"PermissionsCanApproveFeedPost",
|
||||||
@ -1399,10 +1365,12 @@
|
|||||||
"PermissionsApexRestServices",
|
"PermissionsApexRestServices",
|
||||||
"PermissionsEnableCommunityAppLauncher",
|
"PermissionsEnableCommunityAppLauncher",
|
||||||
"PermissionsGiveRecognitionBadge",
|
"PermissionsGiveRecognitionBadge",
|
||||||
|
"PermissionsAllowObjectDetection",
|
||||||
"PermissionsSalesforceIQInternal",
|
"PermissionsSalesforceIQInternal",
|
||||||
"PermissionsUseMySearch",
|
"PermissionsUseMySearch",
|
||||||
"PermissionsLtngPromoReserved01UserPerm",
|
"PermissionsLtngPromoReserved01UserPerm",
|
||||||
"PermissionsManageSubscriptions",
|
"PermissionsManageSubscriptions",
|
||||||
|
"PermissionsAllowObjectDetectionTraining",
|
||||||
"PermissionsManageSurveys",
|
"PermissionsManageSurveys",
|
||||||
"PermissionsUseAssistantDialog",
|
"PermissionsUseAssistantDialog",
|
||||||
"PermissionsUseQuerySuggestions",
|
"PermissionsUseQuerySuggestions",
|
||||||
@ -1442,16 +1410,17 @@
|
|||||||
"PermissionsQuipMetricsAccess",
|
"PermissionsQuipMetricsAccess",
|
||||||
"PermissionsQuipUserEngagementMetrics",
|
"PermissionsQuipUserEngagementMetrics",
|
||||||
"PermissionsManageExternalConnections",
|
"PermissionsManageExternalConnections",
|
||||||
|
"PermissionsAIViewInsightObjects",
|
||||||
|
"PermissionsAICreateInsightObjects",
|
||||||
|
"PermissionsViewMLModels",
|
||||||
"PermissionsNativeWebviewScrolling",
|
"PermissionsNativeWebviewScrolling",
|
||||||
"PermissionsViewDeveloperName",
|
"PermissionsViewDeveloperName",
|
||||||
"PermissionsBypassMFAForUiLogins",
|
"PermissionsBypassMFAForUiLogins",
|
||||||
|
"PermissionsClientSecretRotation",
|
||||||
"PermissionsUpdateReportTypeReferences",
|
"PermissionsUpdateReportTypeReferences",
|
||||||
"PermissionsAccessToServiceProcess",
|
"PermissionsAccessToServiceProcess",
|
||||||
"PermissionsManageOrchInstsAndWorkItems",
|
"PermissionsManageOrchInstsAndWorkItems",
|
||||||
"PermissionsCMSECEAuthoringAccess",
|
"PermissionsCMSECEAuthoringAccess",
|
||||||
"PermissionsManageDataspaceScope",
|
|
||||||
"PermissionsConfigureDataspaceScope",
|
|
||||||
"PermissionsViewClientSecret",
|
|
||||||
"PermissionsEnableIPFSUpload",
|
"PermissionsEnableIPFSUpload",
|
||||||
"PermissionsEnableBCTransactionPolling",
|
"PermissionsEnableBCTransactionPolling",
|
||||||
"PermissionsFSCArcGraphCommunityUser",
|
"PermissionsFSCArcGraphCommunityUser",
|
||||||
@ -1531,7 +1500,6 @@
|
|||||||
"VExternal_Id_vod__c",
|
"VExternal_Id_vod__c",
|
||||||
"Viewport_Height_vod__c",
|
"Viewport_Height_vod__c",
|
||||||
"Viewport_Width_vod__c",
|
"Viewport_Width_vod__c",
|
||||||
"Medical_Event_vod__c",
|
|
||||||
"Color_vod__c",
|
"Color_vod__c",
|
||||||
"Icon_vod__c",
|
"Icon_vod__c",
|
||||||
"MCD_Primary_Key_vod__c",
|
"MCD_Primary_Key_vod__c",
|
||||||
@ -1679,8 +1647,7 @@
|
|||||||
"MSJ_Hospital_Name_Disp__c",
|
"MSJ_Hospital_Name_Disp__c",
|
||||||
"MSJ_Hospital__c",
|
"MSJ_Hospital__c",
|
||||||
"MSJ_Chatbot_Check__c",
|
"MSJ_Chatbot_Check__c",
|
||||||
"MSJ_File_Attached__c",
|
"MSJ_File_Attached__c"
|
||||||
"MSJ_Incoming_Call_Date__c"
|
|
||||||
],
|
],
|
||||||
"is_skip": false,
|
"is_skip": false,
|
||||||
"is_update_last_fetch_datetime": true
|
"is_update_last_fetch_datetime": true
|
||||||
@ -1723,8 +1690,7 @@
|
|||||||
"Vault_Instance_ID_vod__c",
|
"Vault_Instance_ID_vod__c",
|
||||||
"Preference_Modification_vod__c",
|
"Preference_Modification_vod__c",
|
||||||
"Approved_Document_vod__c",
|
"Approved_Document_vod__c",
|
||||||
"Link_Name_vod__c",
|
"Link_Name_vod__c"
|
||||||
"Bot_vod__c"
|
|
||||||
],
|
],
|
||||||
"is_skip": false,
|
"is_skip": false,
|
||||||
"is_update_last_fetch_datetime": true
|
"is_update_last_fetch_datetime": true
|
||||||
@ -1775,8 +1741,6 @@
|
|||||||
"EmailEncodingKey",
|
"EmailEncodingKey",
|
||||||
"ProfileId",
|
"ProfileId",
|
||||||
"UserType",
|
"UserType",
|
||||||
"StartDay",
|
|
||||||
"EndDay",
|
|
||||||
"LanguageLocaleKey",
|
"LanguageLocaleKey",
|
||||||
"EmployeeNumber",
|
"EmployeeNumber",
|
||||||
"DelegatedApproverId",
|
"DelegatedApproverId",
|
||||||
@ -1787,8 +1751,6 @@
|
|||||||
"LastModifiedDate",
|
"LastModifiedDate",
|
||||||
"LastModifiedById",
|
"LastModifiedById",
|
||||||
"SystemModstamp",
|
"SystemModstamp",
|
||||||
"PasswordExpirationDate",
|
|
||||||
"SuAccessExpirationDate",
|
|
||||||
"OfflineTrialExpirationDate",
|
"OfflineTrialExpirationDate",
|
||||||
"OfflinePdaTrialExpirationDate",
|
"OfflinePdaTrialExpirationDate",
|
||||||
"UserPermissionsMarketingUser",
|
"UserPermissionsMarketingUser",
|
||||||
@ -1840,6 +1802,7 @@
|
|||||||
"UserPreferencesShowFaxToGuestUsers",
|
"UserPreferencesShowFaxToGuestUsers",
|
||||||
"UserPreferencesShowStreetAddressToGuestUsers",
|
"UserPreferencesShowStreetAddressToGuestUsers",
|
||||||
"UserPreferencesLightningExperiencePreferred",
|
"UserPreferencesLightningExperiencePreferred",
|
||||||
|
"UserPreferencesPreviewLightning",
|
||||||
"UserPreferencesHideEndUserOnboardingAssistantModal",
|
"UserPreferencesHideEndUserOnboardingAssistantModal",
|
||||||
"UserPreferencesHideLightningMigrationModal",
|
"UserPreferencesHideLightningMigrationModal",
|
||||||
"UserPreferencesHideSfxWelcomeMat",
|
"UserPreferencesHideSfxWelcomeMat",
|
||||||
@ -1950,7 +1913,9 @@
|
|||||||
"MS_Outlook_Last_Push_Activity_vod__c",
|
"MS_Outlook_Last_Push_Activity_vod__c",
|
||||||
"Enable_MS_Outlook_Calendar_vod__c",
|
"Enable_MS_Outlook_Calendar_vod__c",
|
||||||
"Last_iPad_Updates_Applied_vod__c",
|
"Last_iPad_Updates_Applied_vod__c",
|
||||||
"Last_iPhone_Updates_Applied_vod__c"
|
"Last_iPhone_Updates_Applied_vod__c",
|
||||||
|
"UserPreferencesHideInvoicesRedirectConfirmation",
|
||||||
|
"UserPreferencesHideStatementsRedirectConfirmation"
|
||||||
],
|
],
|
||||||
"is_skip": false,
|
"is_skip": false,
|
||||||
"is_update_last_fetch_datetime": true
|
"is_update_last_fetch_datetime": true
|
||||||
@ -2306,7 +2271,6 @@
|
|||||||
"MSJ_External_Link_To_Full_H1_Profile__c",
|
"MSJ_External_Link_To_Full_H1_Profile__c",
|
||||||
"MSJ_Industry_Payments_Amount__c",
|
"MSJ_Industry_Payments_Amount__c",
|
||||||
"MSJ_Publication_Count__c",
|
"MSJ_Publication_Count__c",
|
||||||
"MSJ_Old_CIAM_Number__c",
|
|
||||||
"Mobile_ID_vod__pc",
|
"Mobile_ID_vod__pc",
|
||||||
"H1Insights__H1_NPI_Value_for_Testing__pc",
|
"H1Insights__H1_NPI_Value_for_Testing__pc",
|
||||||
"H1Insights__H1_Person_ID__pc",
|
"H1Insights__H1_Person_ID__pc",
|
||||||
@ -2692,8 +2656,7 @@
|
|||||||
"MSJ_Title__c",
|
"MSJ_Title__c",
|
||||||
"MSJ_XLK_Segment__c",
|
"MSJ_XLK_Segment__c",
|
||||||
"MSJ_Main_Treatment_Plan__c",
|
"MSJ_Main_Treatment_Plan__c",
|
||||||
"MSJ_Optimal_Visiting_Hours__c",
|
"MSJ_Optimal_Visiting_Hours__c"
|
||||||
"MSJ_CA_Primary_Parent_Update_Date__c"
|
|
||||||
],
|
],
|
||||||
"is_skip": false,
|
"is_skip": false,
|
||||||
"is_update_last_fetch_datetime": true
|
"is_update_last_fetch_datetime": true
|
||||||
@ -3166,8 +3129,7 @@
|
|||||||
"Email_Source_vod__c",
|
"Email_Source_vod__c",
|
||||||
"Subject_vod__c",
|
"Subject_vod__c",
|
||||||
"User_Input_Text_vod__c",
|
"User_Input_Text_vod__c",
|
||||||
"Email_Group_Id_vod__c",
|
"Email_Group_Id_vod__c"
|
||||||
"List_Unsubscribe_Header_vod__c"
|
|
||||||
],
|
],
|
||||||
"is_skip": false,
|
"is_skip": false,
|
||||||
"is_update_last_fetch_datetime": true
|
"is_update_last_fetch_datetime": true
|
||||||
@ -3222,8 +3184,7 @@
|
|||||||
"Category_vod__c",
|
"Category_vod__c",
|
||||||
"MSJ_Data_Id__c",
|
"MSJ_Data_Id__c",
|
||||||
"MSJ_Reason_unformatted__c",
|
"MSJ_Reason_unformatted__c",
|
||||||
"MSJ_reason_id__c",
|
"MSJ_reason_id__c"
|
||||||
"MSJ_use_case__c"
|
|
||||||
],
|
],
|
||||||
"is_skip": false,
|
"is_skip": false,
|
||||||
"is_update_last_fetch_datetime": true
|
"is_update_last_fetch_datetime": true
|
||||||
@ -3642,109 +3603,6 @@
|
|||||||
],
|
],
|
||||||
"is_skip": false,
|
"is_skip": false,
|
||||||
"is_update_last_fetch_datetime": true
|
"is_update_last_fetch_datetime": true
|
||||||
},
|
|
||||||
{
|
|
||||||
"object_name": "MSJ_Related_External_Account_Data__c",
|
|
||||||
"columns": [
|
|
||||||
"Id",
|
|
||||||
"OwnerId",
|
|
||||||
"IsDeleted",
|
|
||||||
"Name",
|
|
||||||
"CreatedDate",
|
|
||||||
"CreatedById",
|
|
||||||
"LastModifiedDate",
|
|
||||||
"LastModifiedById",
|
|
||||||
"SystemModstamp",
|
|
||||||
"LastActivityDate",
|
|
||||||
"MayEdit",
|
|
||||||
"IsLocked",
|
|
||||||
"LastViewedDate",
|
|
||||||
"LastReferencedDate",
|
|
||||||
"MSJ_Account__c",
|
|
||||||
"MSJ_Activation_TS__c",
|
|
||||||
"MSJ_Address_Line_1__c",
|
|
||||||
"MSJ_Address_Line_2__c",
|
|
||||||
"MSJ_Authorization_Time_stamp__c",
|
|
||||||
"MSJ_Authorization__c",
|
|
||||||
"MSJ_CIAM_Email__c",
|
|
||||||
"MSJ_CIAM_Status__c",
|
|
||||||
"MSJ_CRM_Status__c",
|
|
||||||
"MSJ_City__c",
|
|
||||||
"MSJ_Country_picklist__c",
|
|
||||||
"MSJ_Deactivation_Time_Stamp__c",
|
|
||||||
"MSJ_Department__c",
|
|
||||||
"MSJ_Email_Verification_Status__c",
|
|
||||||
"MSJ_Email_Verification_Time_stamp__c",
|
|
||||||
"MSJ_Email_Verification__c",
|
|
||||||
"MSJ_FirstName__c",
|
|
||||||
"MSJ_Full_Name_Kana__c",
|
|
||||||
"MSJ_Gender__c",
|
|
||||||
"MSJ_Interest__c",
|
|
||||||
"MSJ_Is_Grey_Account__c",
|
|
||||||
"MSJ_Janrain_uuid__c",
|
|
||||||
"MSJ_Language__c",
|
|
||||||
"MSJ_LastName__c",
|
|
||||||
"MSJ_Mobile__c",
|
|
||||||
"MSJ_OneKeyId__c",
|
|
||||||
"MSJ_Phone__c",
|
|
||||||
"MSJ_Position__c",
|
|
||||||
"MSJ_Postcode__c",
|
|
||||||
"MSJ_Profession_Type__c",
|
|
||||||
"MSJ_Professional_Number__c",
|
|
||||||
"MSJ_Registration_TS__c",
|
|
||||||
"MSJ_Registration__c",
|
|
||||||
"MSJ_Source__c",
|
|
||||||
"MSJ_Speciality__c",
|
|
||||||
"MSJ_State_Province__c",
|
|
||||||
"MSJ_Title__c",
|
|
||||||
"MSJ_Unique_Id_of_website__c",
|
|
||||||
"MSJ_Validation_TS__c",
|
|
||||||
"MSJ_Number_of_Potential_Matches__c",
|
|
||||||
"mck_Asset__c",
|
|
||||||
"MSJ_Account_Email__c",
|
|
||||||
"MSJ_DCF_code__c",
|
|
||||||
"MSJ_Email_Unmatch_Accepted__c",
|
|
||||||
"MSJ_Exclude_Match_Process__c",
|
|
||||||
"MSJ_LastName_Kana__c",
|
|
||||||
"MSJ_MedPass_ID__c",
|
|
||||||
"MSJ_Work_Place_DCF__c",
|
|
||||||
"MSJ_Old_Janrain_uuid__c"
|
|
||||||
],
|
|
||||||
"is_skip": false,
|
|
||||||
"is_update_last_fetch_datetime": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"object_name": "MSJ_Related_External_Account_Data_Attrib__c",
|
|
||||||
"columns": [
|
|
||||||
"Id",
|
|
||||||
"IsDeleted",
|
|
||||||
"Name",
|
|
||||||
"RecordTypeId",
|
|
||||||
"CreatedDate",
|
|
||||||
"CreatedById",
|
|
||||||
"LastModifiedDate",
|
|
||||||
"LastModifiedById",
|
|
||||||
"SystemModstamp",
|
|
||||||
"MayEdit",
|
|
||||||
"IsLocked",
|
|
||||||
"LastViewedDate",
|
|
||||||
"LastReferencedDate",
|
|
||||||
"MSJ_Related_External_Account_Data__c",
|
|
||||||
"MSJ_Active__c",
|
|
||||||
"MSJ_Terms_Conditions_Details__c",
|
|
||||||
"MSJ_Terms_Conditions__c",
|
|
||||||
"MSJ_Channel_Value__c",
|
|
||||||
"MSJ_Consent_Channel__c",
|
|
||||||
"MSJ_Consent_Details__c",
|
|
||||||
"MSJ_Consent_Status__c",
|
|
||||||
"MSJ_Consent__c",
|
|
||||||
"MSJ_Therapeutic_Area_TA__c",
|
|
||||||
"MSJ_Email_Unmatch__c",
|
|
||||||
"MSJ_WebApp_ClientId__c",
|
|
||||||
"MSJ_WebApp_ClientName__c"
|
|
||||||
],
|
|
||||||
"is_skip": false,
|
|
||||||
"is_update_last_fetch_datetime": true
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,7 +0,0 @@
|
|||||||
宛先各位
|
|
||||||
PalantirのHCPウェブアクセスログデータを受領できておりません。
|
|
||||||
|
|
||||||
Palantir側の送信状況のご確認をお願いいたします。
|
|
||||||
|
|
||||||
尚、本メールはシステム自動送信のため、返信は出来ません。
|
|
||||||
本件に関する問い合わせは、HCPウェブアクセスデータ担当者にお願いいたします。
|
|
||||||
@ -1 +0,0 @@
|
|||||||
【MeDaCa連携エラー通知】Palantir HCPウェブアクセスログデータ未受領
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
宛先各位
|
|
||||||
medパス社のHCPウェブアクセスユーザ情報を受領できておりません。
|
|
||||||
|
|
||||||
medパス社へ送信状況のご確認をお願いいたします。
|
|
||||||
|
|
||||||
尚、本メールはシステム自動送信のため、返信は出来ません。
|
|
||||||
本件に関する問い合わせは、HCPウェブアクセスデータ担当者にお願いいたします。
|
|
||||||
@ -1 +0,0 @@
|
|||||||
【MeDaCa連携エラー通知】medパス HCPウェブアクセスユーザ情報未受領
|
|
||||||
@ -1 +0,0 @@
|
|||||||
hcpweb_accesslog_\d{4}-\d{2}-\d{2}-\d{6}\.(csv|CSV) Palantir HCPウェブアクセスログデータ
|
|
||||||
@ -1 +0,0 @@
|
|||||||
hcp_web_medpass_user_mst_\d{14}\.(CSV|csv) medパス社ユーザ情報
|
|
||||||
@ -1,3 +1,125 @@
|
|||||||
|
2023/12/02
|
||||||
|
2023/12/03
|
||||||
|
2023/12/09
|
||||||
|
2023/12/10
|
||||||
|
2023/12/16
|
||||||
|
2023/12/17
|
||||||
|
2023/12/23
|
||||||
|
2023/12/24
|
||||||
|
2023/12/29
|
||||||
|
2023/12/30
|
||||||
|
2023/12/31
|
||||||
|
2024/01/01
|
||||||
|
2024/01/02
|
||||||
|
2024/01/03
|
||||||
|
2024/01/06
|
||||||
|
2024/01/07
|
||||||
|
2024/01/08
|
||||||
|
2024/01/13
|
||||||
|
2024/01/14
|
||||||
|
2024/01/20
|
||||||
|
2024/01/21
|
||||||
|
2024/01/27
|
||||||
|
2024/01/28
|
||||||
|
2024/02/03
|
||||||
|
2024/02/04
|
||||||
|
2024/02/10
|
||||||
|
2024/02/11
|
||||||
|
2024/02/12
|
||||||
|
2024/02/17
|
||||||
|
2024/02/18
|
||||||
|
2024/02/23
|
||||||
|
2024/02/24
|
||||||
|
2024/02/25
|
||||||
|
2024/03/02
|
||||||
|
2024/03/03
|
||||||
|
2024/03/09
|
||||||
|
2024/03/10
|
||||||
|
2024/03/16
|
||||||
|
2024/03/17
|
||||||
|
2024/03/20
|
||||||
|
2024/03/23
|
||||||
|
2024/03/24
|
||||||
|
2024/03/30
|
||||||
|
2024/03/31
|
||||||
|
2024/04/06
|
||||||
|
2024/04/07
|
||||||
|
2024/04/13
|
||||||
|
2024/04/14
|
||||||
|
2024/04/20
|
||||||
|
2024/04/21
|
||||||
|
2024/04/27
|
||||||
|
2024/04/28
|
||||||
|
2024/04/29
|
||||||
|
2024/05/03
|
||||||
|
2024/05/04
|
||||||
|
2024/05/05
|
||||||
|
2024/05/06
|
||||||
|
2024/05/11
|
||||||
|
2024/05/12
|
||||||
|
2024/05/18
|
||||||
|
2024/05/19
|
||||||
|
2024/05/25
|
||||||
|
2024/05/26
|
||||||
|
2024/06/01
|
||||||
|
2024/06/02
|
||||||
|
2024/06/08
|
||||||
|
2024/06/09
|
||||||
|
2024/06/15
|
||||||
|
2024/06/16
|
||||||
|
2024/06/22
|
||||||
|
2024/06/23
|
||||||
|
2024/06/29
|
||||||
|
2024/06/30
|
||||||
|
2024/07/06
|
||||||
|
2024/07/07
|
||||||
|
2024/07/13
|
||||||
|
2024/07/14
|
||||||
|
2024/07/15
|
||||||
|
2024/07/20
|
||||||
|
2024/07/21
|
||||||
|
2024/07/27
|
||||||
|
2024/07/28
|
||||||
|
2024/08/03
|
||||||
|
2024/08/04
|
||||||
|
2024/08/10
|
||||||
|
2024/08/11
|
||||||
|
2024/08/12
|
||||||
|
2024/08/17
|
||||||
|
2024/08/18
|
||||||
|
2024/08/24
|
||||||
|
2024/08/25
|
||||||
|
2024/08/31
|
||||||
|
2024/09/01
|
||||||
|
2024/09/07
|
||||||
|
2024/09/08
|
||||||
|
2024/09/14
|
||||||
|
2024/09/15
|
||||||
|
2024/09/16
|
||||||
|
2024/09/21
|
||||||
|
2024/09/22
|
||||||
|
2024/09/23
|
||||||
|
2024/09/28
|
||||||
|
2024/09/29
|
||||||
|
2024/10/05
|
||||||
|
2024/10/06
|
||||||
|
2024/10/12
|
||||||
|
2024/10/13
|
||||||
|
2024/10/14
|
||||||
|
2024/10/19
|
||||||
|
2024/10/20
|
||||||
|
2024/10/26
|
||||||
|
2024/10/27
|
||||||
|
2024/11/02
|
||||||
|
2024/11/03
|
||||||
|
2024/11/04
|
||||||
|
2024/11/09
|
||||||
|
2024/11/10
|
||||||
|
2024/11/16
|
||||||
|
2024/11/17
|
||||||
|
2024/11/23
|
||||||
|
2024/11/24
|
||||||
|
2024/11/30
|
||||||
2024/12/01
|
2024/12/01
|
||||||
2024/12/07
|
2024/12/07
|
||||||
2024/12/08
|
2024/12/08
|
||||||
@ -8,128 +130,4 @@
|
|||||||
2024/12/28
|
2024/12/28
|
||||||
2024/12/29
|
2024/12/29
|
||||||
2024/12/30
|
2024/12/30
|
||||||
2024/12/31
|
2024/12/31
|
||||||
2025/01/01
|
|
||||||
2025/01/02
|
|
||||||
2025/01/03
|
|
||||||
2025/01/04
|
|
||||||
2025/01/05
|
|
||||||
2025/01/11
|
|
||||||
2025/01/12
|
|
||||||
2025/01/13
|
|
||||||
2025/01/18
|
|
||||||
2025/01/19
|
|
||||||
2025/01/25
|
|
||||||
2025/01/26
|
|
||||||
2025/02/01
|
|
||||||
2025/02/02
|
|
||||||
2025/02/08
|
|
||||||
2025/02/09
|
|
||||||
2025/02/11
|
|
||||||
2025/02/15
|
|
||||||
2025/02/16
|
|
||||||
2025/02/22
|
|
||||||
2025/02/23
|
|
||||||
2025/02/24
|
|
||||||
2025/03/01
|
|
||||||
2025/03/02
|
|
||||||
2025/03/08
|
|
||||||
2025/03/09
|
|
||||||
2025/03/15
|
|
||||||
2025/03/16
|
|
||||||
2025/03/20
|
|
||||||
2025/03/22
|
|
||||||
2025/03/23
|
|
||||||
2025/03/29
|
|
||||||
2025/03/30
|
|
||||||
2025/04/05
|
|
||||||
2025/04/06
|
|
||||||
2025/04/12
|
|
||||||
2025/04/13
|
|
||||||
2025/04/19
|
|
||||||
2025/04/20
|
|
||||||
2025/04/26
|
|
||||||
2025/04/27
|
|
||||||
2025/04/29
|
|
||||||
2025/05/03
|
|
||||||
2025/05/04
|
|
||||||
2025/05/05
|
|
||||||
2025/05/06
|
|
||||||
2025/05/10
|
|
||||||
2025/05/11
|
|
||||||
2025/05/17
|
|
||||||
2025/05/18
|
|
||||||
2025/05/24
|
|
||||||
2025/05/25
|
|
||||||
2025/05/31
|
|
||||||
2025/06/01
|
|
||||||
2025/06/07
|
|
||||||
2025/06/08
|
|
||||||
2025/06/14
|
|
||||||
2025/06/15
|
|
||||||
2025/06/21
|
|
||||||
2025/06/22
|
|
||||||
2025/06/28
|
|
||||||
2025/06/29
|
|
||||||
2025/07/05
|
|
||||||
2025/07/06
|
|
||||||
2025/07/12
|
|
||||||
2025/07/13
|
|
||||||
2025/07/19
|
|
||||||
2025/07/20
|
|
||||||
2025/07/21
|
|
||||||
2025/07/26
|
|
||||||
2025/07/27
|
|
||||||
2025/08/02
|
|
||||||
2025/08/03
|
|
||||||
2025/08/09
|
|
||||||
2025/08/10
|
|
||||||
2025/08/11
|
|
||||||
2025/08/16
|
|
||||||
2025/08/17
|
|
||||||
2025/08/23
|
|
||||||
2025/08/24
|
|
||||||
2025/08/30
|
|
||||||
2025/08/31
|
|
||||||
2025/09/06
|
|
||||||
2025/09/07
|
|
||||||
2025/09/13
|
|
||||||
2025/09/14
|
|
||||||
2025/09/15
|
|
||||||
2025/09/20
|
|
||||||
2025/09/21
|
|
||||||
2025/09/23
|
|
||||||
2025/09/27
|
|
||||||
2025/09/28
|
|
||||||
2025/10/04
|
|
||||||
2025/10/05
|
|
||||||
2025/10/11
|
|
||||||
2025/10/12
|
|
||||||
2025/10/13
|
|
||||||
2025/10/18
|
|
||||||
2025/10/19
|
|
||||||
2025/10/25
|
|
||||||
2025/10/26
|
|
||||||
2025/11/01
|
|
||||||
2025/11/02
|
|
||||||
2025/11/03
|
|
||||||
2025/11/08
|
|
||||||
2025/11/09
|
|
||||||
2025/11/15
|
|
||||||
2025/11/16
|
|
||||||
2025/11/22
|
|
||||||
2025/11/23
|
|
||||||
2025/11/24
|
|
||||||
2025/11/29
|
|
||||||
2025/11/30
|
|
||||||
2025/12/06
|
|
||||||
2025/12/07
|
|
||||||
2025/12/13
|
|
||||||
2025/12/14
|
|
||||||
2025/12/20
|
|
||||||
2025/12/21
|
|
||||||
2025/12/27
|
|
||||||
2025/12/28
|
|
||||||
2025/12/29
|
|
||||||
2025/12/30
|
|
||||||
2025/12/31
|
|
||||||
@ -1,13 +1,13 @@
|
|||||||
|
2023/12/14
|
||||||
|
2024/01/18
|
||||||
|
2024/02/15
|
||||||
|
2024/03/14
|
||||||
|
2024/04/12
|
||||||
|
2024/05/16
|
||||||
|
2024/06/14
|
||||||
|
2024/07/12
|
||||||
|
2024/08/15
|
||||||
|
2024/09/13
|
||||||
|
2024/10/15
|
||||||
|
2024/11/15
|
||||||
2024/12/13
|
2024/12/13
|
||||||
2025/01/20
|
|
||||||
2025/02/17
|
|
||||||
2025/03/14
|
|
||||||
2025/04/14
|
|
||||||
2025/05/16
|
|
||||||
2025/06/13
|
|
||||||
2025/07/14
|
|
||||||
2025/08/15
|
|
||||||
2025/09/12
|
|
||||||
2025/10/15
|
|
||||||
2025/11/17
|
|
||||||
2025/12/12
|
|
||||||
|
|||||||
@ -1,3 +1,3 @@
|
|||||||
{
|
{
|
||||||
"check_target_schemas": ["custom01", "custom02", "custom03", "custom04","custom05"]
|
"check_target_schemas": ["custom01", "custom02", "custom03", "custom04"]
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,4 +2,5 @@
|
|||||||
customスキーマの以下のviewに「SQL SECURITY INVOKER」オプションが指定されておりません。viewを再作成しオプションを指定してください。
|
customスキーマの以下のviewに「SQL SECURITY INVOKER」オプションが指定されておりません。viewを再作成しオプションを指定してください。
|
||||||
{no_option_views}
|
{no_option_views}
|
||||||
|
|
||||||
尚、本メールはシステム自動送信ですので、返信できません。
|
尚、本メールはシステム自動送信ですので、返信できません。
|
||||||
|
本件に関する問い合わせは、IT部門ゴザリ様にお願いいたします。
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
GRReport_[0-9]{8}_[0-9]{6}\.(TSV|tsv) GRReport.txt
|
GRReport_[0-9]{8}_[0-9]{6}\.(TSV|tsv) GRReport.txt
|
||||||
QAReport_[0-9]{8}_[0-9]{6}\.(TSV|tsv) QAReport.txt
|
QAReport_[0-9]{8}_[0-9]{6}\.(TSV|tsv) QAReport.txt
|
||||||
MLCReport_[0-9]{8}_[0-9]{6}\.(TSV|tsv) MLCReport.txt
|
MLCReport_[0-9]{8}_[0-9]{6}\.(TSV|tsv) MLCReport.txt
|
||||||
|
MLCReport_[0-9]{8}_[0-9]{6}\.(TSV|tsv) MLCReport.txt
|
||||||
POReport_[0-9]{8}_[0-9]{6}\.(TSV|tsv) POReport.txt
|
POReport_[0-9]{8}_[0-9]{6}\.(TSV|tsv) POReport.txt
|
||||||
StockList_[0-9]{8}_[0-9]{6}\.(TSV|tsv) StockList.txt
|
StockList_[0-9]{8}_[0-9]{6}\.(TSV|tsv) StockList.txt
|
||||||
ConfReport_[0-9]{8}_[0-9]{6}\.(TSV|tsv) ConfReport.txt
|
ConfReport_[0-9]{8}_[0-9]{6}\.(TSV|tsv) ConfReport.txt
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@ -4,9 +4,9 @@ utf-8
|
|||||||
"
|
"
|
||||||
CRLF
|
CRLF
|
||||||
1
|
1
|
||||||
211
|
210
|
||||||
Id,OwnerId,IsDeleted,Name,RecordTypeId,CreatedDate,CreatedById,LastModifiedDate,LastModifiedById,SystemModstamp,LastActivityDate,MayEdit,IsLocked,LastViewedDate,LastReferencedDate,Call_Comments_vod__c,Sample_Card_vod__c,Add_Detail_vod__c,Property_vod__c,Account_vod__c,zvod_Product_Discussion_vod__c,Status_vod__c,Parent_Address_vod__c,Account_Plan_vod__c,zvod_SaveNew_vod__c,Next_Call_Notes_vod__c,Pre_Call_Notes_vod__c,Mobile_ID_vod__c,zvod_Account_Credentials_vod_c_vod__c,zvod_Account_Preferred_Name_vod_c_vod__c,zvod_Account_Sample_Status_vod_c_vod__c,zvod_Attendees_vod__c,zvod_Key_Messages_vod__c,zvod_Detailing_vod__c,zvod_Expenses_vod__c,zvod_Followup_vod__c,zvod_Samples_vod__c,zvod_Save_vod__c,zvod_Submit_vod__c,zvod_Delete_vod__c,Activity_Type__c,Significant_Event__c,Location_vod__c,Subject_vod__c,Unlock_vod__c,Call_Datetime_vod__c,Disbursed_To_vod__c,Disclaimer_vod__c,Request_Receipt_vod__c,Signature_Date_vod__c,Signature_vod__c,Territory_vod__c,Submitted_By_Mobile_vod__c,Call_Type_vod__c,Add_Key_Message_vod__c,Address_vod__c,Attendees_vod__c,Attendee_Type_vod__c,Call_Date_vod__c,Detailed_Products_vod__c,No_Disbursement_vod__c,Parent_Call_vod__c,User_vod__c,Contact_vod__c,zvod_Entity_vod__c,Medical_Event_vod__c,Mobile_Created_Datetime_vod__c,Mobile_Last_Modified_Datetime_vod__c,License_vod__c,Is_Parent_Call_vod__c,Entity_Display_Name_vod__c,Override_Lock_vod__c,Last_Device_vod__c,Ship_Address_Line_1_vod__c,Ship_Address_Line_2_vod__c,Ship_City_vod__c,Ship_Country_vod__c,Ship_License_Expiration_Date_vod__c,Ship_License_Status_vod__c,Ship_License_vod__c,Ship_State_vod__c,Ship_To_Address_vod__c,Ship_Zip_vod__c,Ship_To_Address_Text_vod__c,CLM_vod__c,zvod_CLMDetails_vod__c,Is_Sampled_Call_vod__c,zvod_Surveys_vod__c,Presentations_vod__c,Entity_Reference_Id_vod__c,Error_Reference_Call_vod__c,Duration_vod__c,Color_vod__c,Allowed_Products_vod__c,zvod_Attachments_vod__c,Sample_Card_Reason_vod__c,ASSMCA_vod__c,Address_Line_1_vod__c,Address_Line_2_vod__c,City_vod__c,DEA_Address_Line_1_vod__c,DEA_Address_Line_2_vod__c,DEA_Address_vod__c,DEA_City_vod__c,DEA_Expiration_Date_vod__c,DEA_State_vod__c,DEA_Zip_4_vod__c,DEA_Zip_vod__c,DEA_vod__c,Ship_Zip_4_vod__c,State_vod__c,Zip_4_vod__c,Zip_vod__c,Sample_Send_Card_vod__c,zvod_Address_vod_c_DEA_Status_vod_c_vod__c,Signature_Page_Image_vod__c,Credentials_vod__c,Salutation_vod__c,zvod_Account_Call_Reminder_vod_c_vod__c,MSJ_Meeting_Duration__c,MSJ_Double_Visit_AM__c,zvod_Business_Account_vod__c,Product_Priority_1_vod__c,Product_Priority_2_vod__c,Product_Priority_3_vod__c,Product_Priority_4_vod__c,Product_Priority_5_vod__c,zvod_More_Actions_vod__c,zvod_Call_Conflict_Status_vod__c,Signature_Timestamp_vod__c,Expense_Amount_vod__c,Total_Expense_Attendees_Count_vod__c,Attendee_list_vod__c,Expense_Post_Status_vod__c,Attendee_Post_Status_vod__c,Expense_System_External_ID_vod__c,Incurred_Expense_vod__c,Assigner_vod__c,Assignment_Datetime_vod__c,zvod_Call_Objective_vod__c,Signature_Location_Longitude_vod__c,Signature_Location_Latitude_vod__c,Location_Services_Status_vod__c,MSJ_Double_Visit_Other__c,MSJ_Comment__c,MSJ_For_Reporting__c,MSJ_Number_of_Attendees__c,MSJ_Main_Dept__c,Planned_Type_vjh__c,Cobrowse_URL_Participant_vod__c,MSJ_Activity_Method_Text__c,MSJ_Activity_Method__c,MSJ_Classification__c,MSJ_Double_Visit_MSL__c,MSJ_MSL_Comment_for_MR__c,MSJ_APD__c,Medical_Inquiry_vod__c,Suggestion_vod__c,MSJ_Call_Type_MSJ__c,MSJ_Prescription_Request__c,MSJ_Patient_Follow__c,Child_Account_Id_vod__c,Child_Account_vod__c,Location_Id_vod__c,Location_Name_vod__c,MSJ_Comments_about_technology__c,Remote_Meeting_vod__c,Veeva_Remote_Meeting_Id_vod__c,MSJ_Activity_Type_Report__c,MSJ_Activity_Type__c,MSJ_Activity__c,MSJ_Comments__c,MSJ_Therapy__c,MSJ_Time_Hrs__c,EMDS_CO_Reference__c,EMDS_Call_Sub_Type__c,EMDS_Call_Type__c,EMDS_Call_Unsuccessful__c,EMDS_Congress_Type__c,EMDS_Date_of_Service__c,EMDS_Fertility_DisInterest__c,EMDS_Fertility_Interest__c,EMDS_Installed_Equipment__c,EMDS_Pipeline_Stage_Value__c,EMDS_Pipeline_Stage__c,EMDS_Pipeline__c,EMDS_Reason_for_Call__c,EMDS_Training_Completed__c,MSJ_BrainStorming__c,MSJ_SIPAGL_1A__c,MSJ_SIPAGL_1B__c,MSJ_SIPAGL_2__c,MSJ_SIPAGL_3__c,MSJ_SIPAGL_4A__c,MSJ_SIPAGL_5A__c,MSJ_SIPAGL_comment__c,MSJ_SIPAGL_4B__c,MSJ_SIPAGL_5B__c,Location_Text_vod__c,Call_Channel_vod__c,MSJ_Scientific_Interaction__c,MSJ_Activity_Email_Reply__c,MSJ_Interaction_Duration__c,MSJ_SIPAGL_1A_date__c,MSJ_CoPromotion__c,Call_Channel_Formula_vod__c,Meeting_Request_vod__c,Phone_vod__c,Detail_Section_Attribute_vod__c,Remote_Meeting_Type_vod__c,MSJ_SIPAGL_6__c
|
Id,OwnerId,IsDeleted,Name,RecordTypeId,CreatedDate,CreatedById,LastModifiedDate,LastModifiedById,SystemModstamp,LastActivityDate,MayEdit,IsLocked,LastViewedDate,LastReferencedDate,Call_Comments_vod__c,Sample_Card_vod__c,Add_Detail_vod__c,Property_vod__c,Account_vod__c,zvod_Product_Discussion_vod__c,Status_vod__c,Parent_Address_vod__c,Account_Plan_vod__c,zvod_SaveNew_vod__c,Next_Call_Notes_vod__c,Pre_Call_Notes_vod__c,Mobile_ID_vod__c,zvod_Account_Credentials_vod_c_vod__c,zvod_Account_Preferred_Name_vod_c_vod__c,zvod_Account_Sample_Status_vod_c_vod__c,zvod_Attendees_vod__c,zvod_Key_Messages_vod__c,zvod_Detailing_vod__c,zvod_Expenses_vod__c,zvod_Followup_vod__c,zvod_Samples_vod__c,zvod_Save_vod__c,zvod_Submit_vod__c,zvod_Delete_vod__c,Activity_Type__c,Significant_Event__c,Location_vod__c,Subject_vod__c,Unlock_vod__c,Call_Datetime_vod__c,Disbursed_To_vod__c,Disclaimer_vod__c,Request_Receipt_vod__c,Signature_Date_vod__c,Signature_vod__c,Territory_vod__c,Submitted_By_Mobile_vod__c,Call_Type_vod__c,Add_Key_Message_vod__c,Address_vod__c,Attendees_vod__c,Attendee_Type_vod__c,Call_Date_vod__c,Detailed_Products_vod__c,No_Disbursement_vod__c,Parent_Call_vod__c,User_vod__c,Contact_vod__c,zvod_Entity_vod__c,Medical_Event_vod__c,Mobile_Created_Datetime_vod__c,Mobile_Last_Modified_Datetime_vod__c,License_vod__c,Is_Parent_Call_vod__c,Entity_Display_Name_vod__c,Override_Lock_vod__c,Last_Device_vod__c,Ship_Address_Line_1_vod__c,Ship_Address_Line_2_vod__c,Ship_City_vod__c,Ship_Country_vod__c,Ship_License_Expiration_Date_vod__c,Ship_License_Status_vod__c,Ship_License_vod__c,Ship_State_vod__c,Ship_To_Address_vod__c,Ship_Zip_vod__c,Ship_To_Address_Text_vod__c,CLM_vod__c,zvod_CLMDetails_vod__c,Is_Sampled_Call_vod__c,zvod_Surveys_vod__c,Presentations_vod__c,Entity_Reference_Id_vod__c,Error_Reference_Call_vod__c,Duration_vod__c,Color_vod__c,Allowed_Products_vod__c,zvod_Attachments_vod__c,Sample_Card_Reason_vod__c,ASSMCA_vod__c,Address_Line_1_vod__c,Address_Line_2_vod__c,City_vod__c,DEA_Address_Line_1_vod__c,DEA_Address_Line_2_vod__c,DEA_Address_vod__c,DEA_City_vod__c,DEA_Expiration_Date_vod__c,DEA_State_vod__c,DEA_Zip_4_vod__c,DEA_Zip_vod__c,DEA_vod__c,Ship_Zip_4_vod__c,State_vod__c,Zip_4_vod__c,Zip_vod__c,Sample_Send_Card_vod__c,zvod_Address_vod_c_DEA_Status_vod_c_vod__c,Signature_Page_Image_vod__c,Credentials_vod__c,Salutation_vod__c,zvod_Account_Call_Reminder_vod_c_vod__c,MSJ_Meeting_Duration__c,MSJ_Double_Visit_AM__c,zvod_Business_Account_vod__c,Product_Priority_1_vod__c,Product_Priority_2_vod__c,Product_Priority_3_vod__c,Product_Priority_4_vod__c,Product_Priority_5_vod__c,zvod_More_Actions_vod__c,zvod_Call_Conflict_Status_vod__c,Signature_Timestamp_vod__c,Expense_Amount_vod__c,Total_Expense_Attendees_Count_vod__c,Attendee_list_vod__c,Expense_Post_Status_vod__c,Attendee_Post_Status_vod__c,Expense_System_External_ID_vod__c,Incurred_Expense_vod__c,Assigner_vod__c,Assignment_Datetime_vod__c,zvod_Call_Objective_vod__c,Signature_Location_Longitude_vod__c,Signature_Location_Latitude_vod__c,Location_Services_Status_vod__c,MSJ_Double_Visit_Other__c,MSJ_Comment__c,MSJ_For_Reporting__c,MSJ_Number_of_Attendees__c,MSJ_Main_Dept__c,Planned_Type_vjh__c,Cobrowse_URL_Participant_vod__c,MSJ_Activity_Method_Text__c,MSJ_Activity_Method__c,MSJ_Classification__c,MSJ_Double_Visit_MSL__c,MSJ_MSL_Comment_for_MR__c,MSJ_APD__c,Medical_Inquiry_vod__c,Suggestion_vod__c,MSJ_Call_Type_MSJ__c,MSJ_Prescription_Request__c,MSJ_Patient_Follow__c,Child_Account_Id_vod__c,Child_Account_vod__c,Location_Id_vod__c,Location_Name_vod__c,MSJ_Comments_about_technology__c,Remote_Meeting_vod__c,Veeva_Remote_Meeting_Id_vod__c,MSJ_Activity_Type_Report__c,MSJ_Activity_Type__c,MSJ_Activity__c,MSJ_Comments__c,MSJ_Therapy__c,MSJ_Time_Hrs__c,EMDS_CO_Reference__c,EMDS_Call_Sub_Type__c,EMDS_Call_Type__c,EMDS_Call_Unsuccessful__c,EMDS_Congress_Type__c,EMDS_Date_of_Service__c,EMDS_Fertility_DisInterest__c,EMDS_Fertility_Interest__c,EMDS_Installed_Equipment__c,EMDS_Pipeline_Stage_Value__c,EMDS_Pipeline_Stage__c,EMDS_Pipeline__c,EMDS_Reason_for_Call__c,EMDS_Training_Completed__c,MSJ_BrainStorming__c,MSJ_SIPAGL_1A__c,MSJ_SIPAGL_1B__c,MSJ_SIPAGL_2__c,MSJ_SIPAGL_3__c,MSJ_SIPAGL_4A__c,MSJ_SIPAGL_5A__c,MSJ_SIPAGL_comment__c,MSJ_SIPAGL_4B__c,MSJ_SIPAGL_5B__c,Location_Text_vod__c,Call_Channel_vod__c,MSJ_Scientific_Interaction__c,MSJ_Activity_Email_Reply__c,MSJ_Interaction_Duration__c,MSJ_SIPAGL_1A_date__c,MSJ_CoPromotion__c,Call_Channel_Formula_vod__c,Meeting_Request_vod__c,Phone_vod__c,Detail_Section_Attribute_vod__c,Remote_Meeting_Type_vod__c
|
||||||
Id,OwnerId,IsDeleted,Name,RecordTypeId,CreatedDate,CreatedById,LastModifiedDate,LastModifiedById,SystemModstamp,LastActivityDate,MayEdit,IsLocked,LastViewedDate,LastReferencedDate,Call_Comments_vod__c,Sample_Card_vod__c,Add_Detail_vod__c,Property_vod__c,Account_vod__c,zvod_Product_Discussion_vod__c,Status_vod__c,Parent_Address_vod__c,Account_Plan_vod__c,zvod_SaveNew_vod__c,Next_Call_Notes_vod__c,Pre_Call_Notes_vod__c,Mobile_ID_vod__c,zvod_Account_Credentials_vod_c_vod__c,zvod_Account_Preferred_Name_vod_c_vod__c,zvod_Account_Sample_Status_vod_c_vod__c,zvod_Attendees_vod__c,zvod_Key_Messages_vod__c,zvod_Detailing_vod__c,zvod_Expenses_vod__c,zvod_Followup_vod__c,zvod_Samples_vod__c,zvod_Save_vod__c,zvod_Submit_vod__c,zvod_Delete_vod__c,Activity_Type__c,Significant_Event__c,Location_vod__c,Subject_vod__c,Unlock_vod__c,Call_Datetime_vod__c,Disbursed_To_vod__c,Disclaimer_vod__c,Request_Receipt_vod__c,Signature_Date_vod__c,Signature_vod__c,Territory_vod__c,Submitted_By_Mobile_vod__c,Call_Type_vod__c,Add_Key_Message_vod__c,Address_vod__c,Attendees_vod__c,Attendee_Type_vod__c,Call_Date_vod__c,Detailed_Products_vod__c,No_Disbursement_vod__c,Parent_Call_vod__c,User_vod__c,Contact_vod__c,zvod_Entity_vod__c,Medical_Event_vod__c,Mobile_Created_Datetime_vod__c,Mobile_Last_Modified_Datetime_vod__c,License_vod__c,Is_Parent_Call_vod__c,Entity_Display_Name_vod__c,Override_Lock_vod__c,Last_Device_vod__c,Ship_Address_Line_1_vod__c,Ship_Address_Line_2_vod__c,Ship_City_vod__c,Ship_Country_vod__c,Ship_License_Expiration_Date_vod__c,Ship_License_Status_vod__c,Ship_License_vod__c,Ship_State_vod__c,Ship_To_Address_vod__c,Ship_Zip_vod__c,Ship_To_Address_Text_vod__c,CLM_vod__c,zvod_CLMDetails_vod__c,Is_Sampled_Call_vod__c,zvod_Surveys_vod__c,Presentations_vod__c,Entity_Reference_Id_vod__c,Error_Reference_Call_vod__c,Duration_vod__c,Color_vod__c,Allowed_Products_vod__c,zvod_Attachments_vod__c,Sample_Card_Reason_vod__c,ASSMCA_vod__c,Address_Line_1_vod__c,Address_Line_2_vod__c,City_vod__c,DEA_Address_Line_1_vod__c,DEA_Address_Line_2_vod__c,DEA_Address_vod__c,DEA_City_vod__c,DEA_Expiration_Date_vod__c,DEA_State_vod__c,DEA_Zip_4_vod__c,DEA_Zip_vod__c,DEA_vod__c,Ship_Zip_4_vod__c,State_vod__c,Zip_4_vod__c,Zip_vod__c,Sample_Send_Card_vod__c,zvod_Address_vod_c_DEA_Status_vod_c_vod__c,Signature_Page_Image_vod__c,Credentials_vod__c,Salutation_vod__c,zvod_Account_Call_Reminder_vod_c_vod__c,MSJ_Meeting_Duration__c,MSJ_Double_Visit_AM__c,zvod_Business_Account_vod__c,Product_Priority_1_vod__c,Product_Priority_2_vod__c,Product_Priority_3_vod__c,Product_Priority_4_vod__c,Product_Priority_5_vod__c,zvod_More_Actions_vod__c,zvod_Call_Conflict_Status_vod__c,Signature_Timestamp_vod__c,Expense_Amount_vod__c,Total_Expense_Attendees_Count_vod__c,Attendee_list_vod__c,Expense_Post_Status_vod__c,Attendee_Post_Status_vod__c,Expense_System_External_ID_vod__c,Incurred_Expense_vod__c,Assigner_vod__c,Assignment_Datetime_vod__c,zvod_Call_Objective_vod__c,Signature_Location_Longitude_vod__c,Signature_Location_Latitude_vod__c,Location_Services_Status_vod__c,MSJ_Double_Visit_Other__c,MSJ_Comment__c,MSJ_For_Reporting__c,MSJ_Number_of_Attendees__c,MSJ_Main_Dept__c,Planned_Type_vjh__c,Cobrowse_URL_Participant_vod__c,MSJ_Activity_Method_Text__c,MSJ_Activity_Method__c,MSJ_Classification__c,MSJ_Double_Visit_MSL__c,MSJ_MSL_Comment_for_MR__c,MSJ_APD__c,Medical_Inquiry_vod__c,Suggestion_vod__c,MSJ_Call_Type_MSJ__c,MSJ_Prescription_Request__c,MSJ_Patient_Follow__c,Child_Account_Id_vod__c,Child_Account_vod__c,Location_Id_vod__c,Location_Name_vod__c,MSJ_Comments_about_technology__c,Remote_Meeting_vod__c,Veeva_Remote_Meeting_Id_vod__c,MSJ_Activity_Type_Report__c,MSJ_Activity_Type__c,MSJ_Activity__c,MSJ_Comments__c,MSJ_Therapy__c,MSJ_Time_Hrs__c,EMDS_CO_Reference__c,EMDS_Call_Sub_Type__c,EMDS_Call_Type__c,EMDS_Call_Unsuccessful__c,EMDS_Congress_Type__c,EMDS_Date_of_Service__c,EMDS_Fertility_DisInterest__c,EMDS_Fertility_Interest__c,EMDS_Installed_Equipment__c,EMDS_Pipeline_Stage_Value__c,EMDS_Pipeline_Stage__c,EMDS_Pipeline__c,EMDS_Reason_for_Call__c,EMDS_Training_Completed__c,MSJ_BrainStorming__c,MSJ_SIPAGL_1A__c,MSJ_SIPAGL_1B__c,MSJ_SIPAGL_2__c,MSJ_SIPAGL_3__c,MSJ_SIPAGL_4A__c,MSJ_SIPAGL_5A__c,MSJ_SIPAGL_comment__c,MSJ_SIPAGL_4B__c,MSJ_SIPAGL_5B__c,Location_Text_vod__c,Call_Channel_vod__c,MSJ_Scientific_Interaction__c,MSJ_Activity_Email_Reply__c,MSJ_Interaction_Duration__c,MSJ_SIPAGL_1A_date__c,MSJ_CoPromotion__c,Call_Channel_Formula_vod__c,Meeting_Request_vod__c,Phone_vod__c,Detail_Section_Attribute_vod__c,Remote_Meeting_Type_vod__c,MSJ_SIPAGL_6__c
|
Id,OwnerId,IsDeleted,Name,RecordTypeId,CreatedDate,CreatedById,LastModifiedDate,LastModifiedById,SystemModstamp,LastActivityDate,MayEdit,IsLocked,LastViewedDate,LastReferencedDate,Call_Comments_vod__c,Sample_Card_vod__c,Add_Detail_vod__c,Property_vod__c,Account_vod__c,zvod_Product_Discussion_vod__c,Status_vod__c,Parent_Address_vod__c,Account_Plan_vod__c,zvod_SaveNew_vod__c,Next_Call_Notes_vod__c,Pre_Call_Notes_vod__c,Mobile_ID_vod__c,zvod_Account_Credentials_vod_c_vod__c,zvod_Account_Preferred_Name_vod_c_vod__c,zvod_Account_Sample_Status_vod_c_vod__c,zvod_Attendees_vod__c,zvod_Key_Messages_vod__c,zvod_Detailing_vod__c,zvod_Expenses_vod__c,zvod_Followup_vod__c,zvod_Samples_vod__c,zvod_Save_vod__c,zvod_Submit_vod__c,zvod_Delete_vod__c,Activity_Type__c,Significant_Event__c,Location_vod__c,Subject_vod__c,Unlock_vod__c,Call_Datetime_vod__c,Disbursed_To_vod__c,Disclaimer_vod__c,Request_Receipt_vod__c,Signature_Date_vod__c,Signature_vod__c,Territory_vod__c,Submitted_By_Mobile_vod__c,Call_Type_vod__c,Add_Key_Message_vod__c,Address_vod__c,Attendees_vod__c,Attendee_Type_vod__c,Call_Date_vod__c,Detailed_Products_vod__c,No_Disbursement_vod__c,Parent_Call_vod__c,User_vod__c,Contact_vod__c,zvod_Entity_vod__c,Medical_Event_vod__c,Mobile_Created_Datetime_vod__c,Mobile_Last_Modified_Datetime_vod__c,License_vod__c,Is_Parent_Call_vod__c,Entity_Display_Name_vod__c,Override_Lock_vod__c,Last_Device_vod__c,Ship_Address_Line_1_vod__c,Ship_Address_Line_2_vod__c,Ship_City_vod__c,Ship_Country_vod__c,Ship_License_Expiration_Date_vod__c,Ship_License_Status_vod__c,Ship_License_vod__c,Ship_State_vod__c,Ship_To_Address_vod__c,Ship_Zip_vod__c,Ship_To_Address_Text_vod__c,CLM_vod__c,zvod_CLMDetails_vod__c,Is_Sampled_Call_vod__c,zvod_Surveys_vod__c,Presentations_vod__c,Entity_Reference_Id_vod__c,Error_Reference_Call_vod__c,Duration_vod__c,Color_vod__c,Allowed_Products_vod__c,zvod_Attachments_vod__c,Sample_Card_Reason_vod__c,ASSMCA_vod__c,Address_Line_1_vod__c,Address_Line_2_vod__c,City_vod__c,DEA_Address_Line_1_vod__c,DEA_Address_Line_2_vod__c,DEA_Address_vod__c,DEA_City_vod__c,DEA_Expiration_Date_vod__c,DEA_State_vod__c,DEA_Zip_4_vod__c,DEA_Zip_vod__c,DEA_vod__c,Ship_Zip_4_vod__c,State_vod__c,Zip_4_vod__c,Zip_vod__c,Sample_Send_Card_vod__c,zvod_Address_vod_c_DEA_Status_vod_c_vod__c,Signature_Page_Image_vod__c,Credentials_vod__c,Salutation_vod__c,zvod_Account_Call_Reminder_vod_c_vod__c,MSJ_Meeting_Duration__c,MSJ_Double_Visit_AM__c,zvod_Business_Account_vod__c,Product_Priority_1_vod__c,Product_Priority_2_vod__c,Product_Priority_3_vod__c,Product_Priority_4_vod__c,Product_Priority_5_vod__c,zvod_More_Actions_vod__c,zvod_Call_Conflict_Status_vod__c,Signature_Timestamp_vod__c,Expense_Amount_vod__c,Total_Expense_Attendees_Count_vod__c,Attendee_list_vod__c,Expense_Post_Status_vod__c,Attendee_Post_Status_vod__c,Expense_System_External_ID_vod__c,Incurred_Expense_vod__c,Assigner_vod__c,Assignment_Datetime_vod__c,zvod_Call_Objective_vod__c,Signature_Location_Longitude_vod__c,Signature_Location_Latitude_vod__c,Location_Services_Status_vod__c,MSJ_Double_Visit_Other__c,MSJ_Comment__c,MSJ_For_Reporting__c,MSJ_Number_of_Attendees__c,MSJ_Main_Dept__c,Planned_Type_vjh__c,Cobrowse_URL_Participant_vod__c,MSJ_Activity_Method_Text__c,MSJ_Activity_Method__c,MSJ_Classification__c,MSJ_Double_Visit_MSL__c,MSJ_MSL_Comment_for_MR__c,MSJ_APD__c,Medical_Inquiry_vod__c,Suggestion_vod__c,MSJ_Call_Type_MSJ__c,MSJ_Prescription_Request__c,MSJ_Patient_Follow__c,Child_Account_Id_vod__c,Child_Account_vod__c,Location_Id_vod__c,Location_Name_vod__c,MSJ_Comments_about_technology__c,Remote_Meeting_vod__c,Veeva_Remote_Meeting_Id_vod__c,MSJ_Activity_Type_Report__c,MSJ_Activity_Type__c,MSJ_Activity__c,MSJ_Comments__c,MSJ_Therapy__c,MSJ_Time_Hrs__c,EMDS_CO_Reference__c,EMDS_Call_Sub_Type__c,EMDS_Call_Type__c,EMDS_Call_Unsuccessful__c,EMDS_Congress_Type__c,EMDS_Date_of_Service__c,EMDS_Fertility_DisInterest__c,EMDS_Fertility_Interest__c,EMDS_Installed_Equipment__c,EMDS_Pipeline_Stage_Value__c,EMDS_Pipeline_Stage__c,EMDS_Pipeline__c,EMDS_Reason_for_Call__c,EMDS_Training_Completed__c,MSJ_BrainStorming__c,MSJ_SIPAGL_1A__c,MSJ_SIPAGL_1B__c,MSJ_SIPAGL_2__c,MSJ_SIPAGL_3__c,MSJ_SIPAGL_4A__c,MSJ_SIPAGL_5A__c,MSJ_SIPAGL_comment__c,MSJ_SIPAGL_4B__c,MSJ_SIPAGL_5B__c,Location_Text_vod__c,Call_Channel_vod__c,MSJ_Scientific_Interaction__c,MSJ_Activity_Email_Reply__c,MSJ_Interaction_Duration__c,MSJ_SIPAGL_1A_date__c,MSJ_CoPromotion__c,Call_Channel_Formula_vod__c,Meeting_Request_vod__c,Phone_vod__c,Detail_Section_Attribute_vod__c,Remote_Meeting_Type_vod__c
|
||||||
internal02.crm_Call2_vod__c
|
internal02.crm_Call2_vod__c
|
||||||
org02.crm_Call2_vod__c
|
org02.crm_Call2_vod__c
|
||||||
CRM_Call2_vod__c_ex.sql
|
CRM_Call2_vod__c_ex.sql
|
||||||
|
|||||||
@ -4,9 +4,9 @@ utf-8
|
|||||||
"
|
"
|
||||||
CRLF
|
CRLF
|
||||||
1
|
1
|
||||||
60
|
59
|
||||||
Id,IsDeleted,Name,CreatedDate,CreatedById,LastModifiedDate,LastModifiedById,SystemModstamp,MayEdit,IsLocked,LastViewedDate,LastReferencedDate,Parent_Account_vod__c,Child_Account_vod__c,External_ID_vod__c,Mobile_ID_vod__c,Primary_vod__c,Copy_Address_vod__c,Child_Name_vod__c,Parent_Name_vod__c,Parent_Child_Name_vod__c,Account_Code__c,Child_Department__c,Child_Role__c,Child_Title__c,Child_Remark__c,MSJ_1C_segment__c,MSJ_BU_FE__c,MSJ_BU_ONC__c,MSJ_BVC_Segment__c,MSJ_CE_segment__c,MSJ_Child_Account_Link__c,MSJ_DCF_DR_Code__c,MSJ_DCF_HP_Code__c,MSJ_DR_Change_Log__c,MSJ_Delete__c,MSJ_Department__c,MSJ_EB_CRC_Segment__c,MSJ_EB_HN_Segment__c,MSJ_EB_H_N_LA_Segment__c,MSJ_EB_H_N_RM_Segment__c,MSJ_External_ID__c,MSJ_Fax__c,MSJ_GF2_segment__c,MSJ_GF_segment__c,MSJ_KOL_LOL__c,MSJ_KOL__c,MSJ_ONC_HP_Segment__c,MSJ_OPTIN_target__c,MSJ_OV_segment__c,MSJ_Parent_Child_Name__c,MSJ_Phone__c,MSJ_Remark__c,MSJ_Target_Call_Num__c,MSJ_Tech_segment__c,MSJ_Title__c,MSJ_XLK_Segment__c,MSJ_Main_Treatment_Plan__c,MSJ_Optimal_Visiting_Hours__c,MSJ_CA_Primary_Parent_Update_Date__c
|
Id,IsDeleted,Name,CreatedDate,CreatedById,LastModifiedDate,LastModifiedById,SystemModstamp,MayEdit,IsLocked,LastViewedDate,LastReferencedDate,Parent_Account_vod__c,Child_Account_vod__c,External_ID_vod__c,Mobile_ID_vod__c,Primary_vod__c,Copy_Address_vod__c,Child_Name_vod__c,Parent_Name_vod__c,Parent_Child_Name_vod__c,Account_Code__c,Child_Department__c,Child_Role__c,Child_Title__c,Child_Remark__c,MSJ_1C_segment__c,MSJ_BU_FE__c,MSJ_BU_ONC__c,MSJ_BVC_Segment__c,MSJ_CE_segment__c,MSJ_Child_Account_Link__c,MSJ_DCF_DR_Code__c,MSJ_DCF_HP_Code__c,MSJ_DR_Change_Log__c,MSJ_Delete__c,MSJ_Department__c,MSJ_EB_CRC_Segment__c,MSJ_EB_HN_Segment__c,MSJ_EB_H_N_LA_Segment__c,MSJ_EB_H_N_RM_Segment__c,MSJ_External_ID__c,MSJ_Fax__c,MSJ_GF2_segment__c,MSJ_GF_segment__c,MSJ_KOL_LOL__c,MSJ_KOL__c,MSJ_ONC_HP_Segment__c,MSJ_OPTIN_target__c,MSJ_OV_segment__c,MSJ_Parent_Child_Name__c,MSJ_Phone__c,MSJ_Remark__c,MSJ_Target_Call_Num__c,MSJ_Tech_segment__c,MSJ_Title__c,MSJ_XLK_Segment__c,MSJ_Main_Treatment_Plan__c,MSJ_Optimal_Visiting_Hours__c
|
||||||
Id,IsDeleted,Name,CreatedDate,CreatedById,LastModifiedDate,LastModifiedById,SystemModstamp,MayEdit,IsLocked,LastViewedDate,LastReferencedDate,Parent_Account_vod__c,Child_Account_vod__c,External_ID_vod__c,Mobile_ID_vod__c,Primary_vod__c,Copy_Address_vod__c,Child_Name_vod__c,Parent_Name_vod__c,Parent_Child_Name_vod__c,Account_Code__c,Child_Department__c,Child_Role__c,Child_Title__c,Child_Remark__c,MSJ_1C_segment__c,MSJ_BU_FE__c,MSJ_BU_ONC__c,MSJ_BVC_Segment__c,MSJ_CE_segment__c,MSJ_Child_Account_Link__c,MSJ_DCF_DR_Code__c,MSJ_DCF_HP_Code__c,MSJ_DR_Change_Log__c,MSJ_Delete__c,MSJ_Department__c,MSJ_EB_CRC_Segment__c,MSJ_EB_HN_Segment__c,MSJ_EB_H_N_LA_Segment__c,MSJ_EB_H_N_RM_Segment__c,MSJ_External_ID__c,MSJ_Fax__c,MSJ_GF2_segment__c,MSJ_GF_segment__c,MSJ_KOL_LOL__c,MSJ_KOL__c,MSJ_ONC_HP_Segment__c,MSJ_OPTIN_target__c,MSJ_OV_segment__c,MSJ_Parent_Child_Name__c,MSJ_Phone__c,MSJ_Remark__c,MSJ_Target_Call_Num__c,MSJ_Tech_segment__c,MSJ_Title__c,MSJ_XLK_Segment__c,MSJ_Main_Treatment_Plan__c,MSJ_Optimal_Visiting_Hours__c,MSJ_CA_Primary_Parent_Update_Date__c
|
Id,IsDeleted,Name,CreatedDate,CreatedById,LastModifiedDate,LastModifiedById,SystemModstamp,MayEdit,IsLocked,LastViewedDate,LastReferencedDate,Parent_Account_vod__c,Child_Account_vod__c,External_ID_vod__c,Mobile_ID_vod__c,Primary_vod__c,Copy_Address_vod__c,Child_Name_vod__c,Parent_Name_vod__c,Parent_Child_Name_vod__c,Account_Code__c,Child_Department__c,Child_Role__c,Child_Title__c,Child_Remark__c,MSJ_1C_segment__c,MSJ_BU_FE__c,MSJ_BU_ONC__c,MSJ_BVC_Segment__c,MSJ_CE_segment__c,MSJ_Child_Account_Link__c,MSJ_DCF_DR_Code__c,MSJ_DCF_HP_Code__c,MSJ_DR_Change_Log__c,MSJ_Delete__c,MSJ_Department__c,MSJ_EB_CRC_Segment__c,MSJ_EB_HN_Segment__c,MSJ_EB_H_N_LA_Segment__c,MSJ_EB_H_N_RM_Segment__c,MSJ_External_ID__c,MSJ_Fax__c,MSJ_GF2_segment__c,MSJ_GF_segment__c,MSJ_KOL_LOL__c,MSJ_KOL__c,MSJ_ONC_HP_Segment__c,MSJ_OPTIN_target__c,MSJ_OV_segment__c,MSJ_Parent_Child_Name__c,MSJ_Phone__c,MSJ_Remark__c,MSJ_Target_Call_Num__c,MSJ_Tech_segment__c,MSJ_Title__c,MSJ_XLK_Segment__c,MSJ_Main_Treatment_Plan__c,MSJ_Optimal_Visiting_Hours__c
|
||||||
src02.crm_Child_Account_vod__c
|
src02.crm_Child_Account_vod__c
|
||||||
org02.crm_Child_Account_vod__c
|
org02.crm_Child_Account_vod__c
|
||||||
CRM_Child_Account_vod__c_ex.sql
|
CRM_Child_Account_vod__c_ex.sql
|
||||||
|
|||||||
@ -4,10 +4,10 @@ utf-8
|
|||||||
"
|
"
|
||||||
CRLF
|
CRLF
|
||||||
1
|
1
|
||||||
49
|
46
|
||||||
Id,OwnerId,IsDeleted,Name,CreatedDate,CreatedById,LastModifiedDate,LastModifiedById,SystemModstamp,MayEdit,IsLocked,LastViewedDate,LastReferencedDate,Mobile_ID_vod__c,Presentation_Id_vod__c,Product_vod__c,Default_Presentation_vod__c,Training_vod__c,ParentId_vod__c,Hidden_vod__c,Type_vod__c,Approved_vod__c,Copied_From_vod__c,Copy_Date_vod__c,Survey_vod__c,Original_Record_ID_vod__c,Directory_vod__c,End_Date_vod__c,Start_Date_vod__c,Status_vod__c,VExternal_Id_vod__c,Vault_DNS_vod__c,Vault_Doc_Id_vod__c,Vault_External_Id_vod__c,Vault_GUID_vod__c,Vault_Last_Modified_Date_Time_vod__c,Version_vod__c,Enable_Survey_Overlay_vod__c,Description_vod__c,Keywords_vod__c,Content_Channel_vod__c,business_function__c,ewizard_link__c,keywords__c,original_material_approved_in_veritas__c,trade_team__c,Publish_Method_vod__c,MSJ_Key_Presentation__c,MSJ_CLM_Report_Name__c
|
Id,OwnerId,IsDeleted,Name,CreatedDate,CreatedById,LastModifiedDate,LastModifiedById,SystemModstamp,MayEdit,IsLocked,LastViewedDate,LastReferencedDate,Mobile_ID_vod__c,Presentation_Id_vod__c,Product_vod__c,Default_Presentation_vod__c,Training_vod__c,ParentId_vod__c,Hidden_vod__c,Type_vod__c,Approved_vod__c,Copied_From_vod__c,Copy_Date_vod__c,Survey_vod__c,Original_Record_ID_vod__c,Directory_vod__c,End_Date_vod__c,Start_Date_vod__c,Status_vod__c,VExternal_Id_vod__c,Vault_DNS_vod__c,Vault_Doc_Id_vod__c,Vault_External_Id_vod__c,Vault_GUID_vod__c,Vault_Last_Modified_Date_Time_vod__c,Version_vod__c,Enable_Survey_Overlay_vod__c,Description_vod__c,Keywords_vod__c,Content_Channel_vod__c,business_function__c,ewizard_link__c,keywords__c,original_material_approved_in_veritas__c,trade_team__c
|
||||||
Id,OwnerId,IsDeleted,Name,CreatedDate,CreatedById,LastModifiedDate,LastModifiedById,SystemModstamp,MayEdit,IsLocked,LastViewedDate,LastReferencedDate,Mobile_ID_vod__c,Presentation_Id_vod__c,Product_vod__c,Default_Presentation_vod__c,Training_vod__c,ParentId_vod__c,Hidden_vod__c,Type_vod__c,Approved_vod__c,Copied_From_vod__c,Copy_Date_vod__c,Survey_vod__c,Original_Record_ID_vod__c,Directory_vod__c,End_Date_vod__c,Start_Date_vod__c,Status_vod__c,VExternal_Id_vod__c,Vault_DNS_vod__c,Vault_Doc_Id_vod__c,Vault_External_Id_vod__c,Vault_GUID_vod__c,Vault_Last_Modified_Date_Time_vod__c,Version_vod__c,Enable_Survey_Overlay_vod__c,Description_vod__c,Keywords_vod__c,Content_Channel_vod__c,business_function__c,ewizard_link__c,keywords__c,original_material_approved_in_veritas__c,trade_team__c,Publish_Method_vod__c,MSJ_Key_Presentation__c,MSJ_CLM_Report_Name__c
|
Id,OwnerId,IsDeleted,Name,CreatedDate,CreatedById,LastModifiedDate,LastModifiedById,SystemModstamp,MayEdit,IsLocked,LastViewedDate,LastReferencedDate,Mobile_ID_vod__c,Presentation_Id_vod__c,Product_vod__c,Default_Presentation_vod__c,Training_vod__c,ParentId_vod__c,Hidden_vod__c,Type_vod__c,Approved_vod__c,Copied_From_vod__c,Copy_Date_vod__c,Survey_vod__c,Original_Record_ID_vod__c,Directory_vod__c,End_Date_vod__c,Start_Date_vod__c,Status_vod__c,VExternal_Id_vod__c,Vault_DNS_vod__c,Vault_Doc_Id_vod__c,Vault_External_Id_vod__c,Vault_GUID_vod__c,Vault_Last_Modified_Date_Time_vod__c,Version_vod__c,Enable_Survey_Overlay_vod__c,Description_vod__c,Keywords_vod__c,Content_Channel_vod__c,business_function__c,ewizard_link__c,keywords__c,original_material_approved_in_veritas__c,trade_team__c
|
||||||
src02.crm_Clm_Presentation_vod__c
|
src02.crm_Clm_Presentation_vod__c
|
||||||
org02.crm_Clm_Presentation_vod__c
|
org02.crm_Clm_Presentation_vod__c
|
||||||
CRM_Clm_Presentation_vod__c_ex.sql
|
|
||||||
|
|
||||||
|
|||||||
@ -1 +0,0 @@
|
|||||||
CALL internal02.crm_history('src02.crm_Clm_Presentation_vod__c', 'SystemModstamp');
|
|
||||||
@ -4,9 +4,9 @@ utf-8
|
|||||||
"
|
"
|
||||||
CRLF
|
CRLF
|
||||||
1
|
1
|
||||||
172
|
144
|
||||||
Id,OwnerId,IsDeleted,Name,RecordTypeId,CreatedDate,CreatedById,LastModifiedDate,LastModifiedById,SystemModstamp,MayEdit,IsLocked,LastViewedDate,LastReferencedDate,Mobile_ID_vod__c,Manager_vod__c,Employee_vod__c,Review_Date__c,Review_Period__c,Status__c,Comments__c,Strategic_Planning__c,Customer_Focus__c,Knowledge_Expertise__c,Business_Account_Planning__c,Call_Productivity__c,Overall_Rating__c,MSJ_A01__c,MSJ_A02__c,MSJ_A03__c,MSJ_AM_Memo__c,MSJ_Aid_Total__c,MSJ_C0_GC__c,MSJ_C1_GC__c,MSJ_C2_GC__c,MSJ_Countermeasure__c,MSJ_Deadline__c,MSJ_Double_Visit_Time__c,MSJ_Hospital__c,MSJ_K01_FE__c,MSJ_K01_ONC__c,MSJ_K02_FE__c,MSJ_K02_ONC__c,MSJ_K03_FE__c,MSJ_K03_ONC__c,MSJ_K04_FE__c,MSJ_K04_ONC__c,MSJ_K05_FE__c,MSJ_K05_ONC__c,MSJ_K06_FE__c,MSJ_K06_ONC__c,MSJ_K0_GC__c,MSJ_K1_GC__c,MSJ_K2_GC__c,MSJ_Knowledge_Total__c,MSJ_L0_GC__c,MSJ_L1_GC__c,MSJ_L2_GC__c,MSJ_MR_GC__c,MSJ_MR_Problems__c,MSJ_N0_GC__c,MSJ_N1_GC__c,MSJ_N2_GC__c,MSJ_Num_of_DTL__c,MSJ_P01__c,MSJ_P02__c,MSJ_P03__c,MSJ_P04__c,MSJ_P05__c,MSJ_P0_GC__c,MSJ_P1_GC__c,MSJ_P2_GC__c,MSJ_PlanningTotal__c,MSJ_R0_GC__c,MSJ_R1_GC__c,MSJ_R2_GC__c,MSJ_S01__c,MSJ_S02__c,MSJ_S03__c,MSJ_S04__c,MSJ_S05__c,MSJ_S06__c,MSJ_S07__c,MSJ_S08__c,MSJ_S09__c,MSJ_S10__c,MSJ_S11__c,MSJ_S12__c,MSJ_Skill_Total__c,MSJ_After_Call_01__c,MSJ_After_Call_02__c,MSJ_After_Call_03__c,MSJ_After_Call_04__c,MSJ_Closing__c,MSJ_Comment_by_MR__c,MSJ_Confirmed_by_MR__c,MSJ_Createdby__c,MSJ_FT_AM_Name__c,MSJ_Interview_Preparation__c,MSJ_Interview_Reflection__c,MSJ_Notify_To_MR__c,MSJ_Opening__c,MSJ_Others_01_Result__c,MSJ_Others_01__c,MSJ_Others_02_Result__c,MSJ_Others_02__c,MSJ_Patient_Thinking__c,MSJ_Probing__c,MSJ_Supporting__c,MSJ_Patient_Thinking_for_FE__c,MSJ_After_Call_05__c,MSJ_After_Call_06__c,MSJ_After_Call_07__c,MSJ_After_Call_08__c,MSJ_Createdby_FE__c,MSJ_Createdby_ONC__c,MSJ_Development_Level__c,MSJ_Interview_Prep_01__c,MSJ_Interview_Prep_02__c,MSJ_Leadership_Style__c,MSJ_Overcome_01__c,MSJ_Overcome_02__c,MSJ_Overcome_03__c,MSJ_Overcome_04__c,MSJ_Review_01__c,MSJ_Review_02__c,MSJ_SK_01__c,MSJ_SK_02__c,MSJ_SK_03__c,MSJ_SK_04__c,MSJ_SK_05__c,MSJ_SK_06__c,MSJ_SK_07__c,MSJ_SK_08__c,MSJ_SK_09__c,MSJ_SK_10__c,MSJ_Specific_Action__c,MSJ_Training_Point__c,MSJ_Achievement_of_This_Month__c,MSJ_Action_of_This_Month__c,MSJ_Comment_from_AM__c,MSJ_Efforts_of_Month__c,MSJ_Efforts_of_Year__c,MSJ_Skill_Task__c,MSJ_SK_11__c,MSJ_SK_12__c,MSJ_SK_13__c,MSJ_SK_14__c,MSJ_SK_15__c,MSJ_SK_16__c,MSJ_SK_17__c,SK_Special_Note_01__c,SK_Special_Note_09__c,MSJ_Overcome_Special_Note_01__c,SK_Special_Note_02__c,SK_Special_Note_03__c,SK_Special_Note_04__c,SK_Special_Note_05__c,SK_Special_Note_06__c,SK_Special_Note_07__c,SK_Special_Note_08__c,MSJ_Overcome_Special_Note_02__c,MSJ_Overcome_Special_Note_03__c,MSJ_Overcome_Special_Note_04__c,MSJ_Interview_Prep_Special_Note01__c,MSJ_Interview_Prep_Special_Note02__c,MSJ_After_Call_09__c,MSJ_After_Call_10__c,MSJ_After_Call_11__c,MSJ_Interview_Prep_Reject_Reason__c,After_Call_Reject_Reason__c,After_Call_Special_Note__c
|
Id,OwnerId,IsDeleted,Name,RecordTypeId,CreatedDate,CreatedById,LastModifiedDate,LastModifiedById,SystemModstamp,MayEdit,IsLocked,LastViewedDate,LastReferencedDate,Mobile_ID_vod__c,Manager_vod__c,Employee_vod__c,Review_Date__c,Review_Period__c,Status__c,Comments__c,Strategic_Planning__c,Customer_Focus__c,Knowledge_Expertise__c,Business_Account_Planning__c,Call_Productivity__c,Overall_Rating__c,MSJ_A01__c,MSJ_A02__c,MSJ_A03__c,MSJ_AM_Memo__c,MSJ_Aid_Total__c,MSJ_C0_GC__c,MSJ_C1_GC__c,MSJ_C2_GC__c,MSJ_Countermeasure__c,MSJ_Deadline__c,MSJ_Double_Visit_Time__c,MSJ_Hospital__c,MSJ_K01_FE__c,MSJ_K01_ONC__c,MSJ_K02_FE__c,MSJ_K02_ONC__c,MSJ_K03_FE__c,MSJ_K03_ONC__c,MSJ_K04_FE__c,MSJ_K04_ONC__c,MSJ_K05_FE__c,MSJ_K05_ONC__c,MSJ_K06_FE__c,MSJ_K06_ONC__c,MSJ_K0_GC__c,MSJ_K1_GC__c,MSJ_K2_GC__c,MSJ_Knowledge_Total__c,MSJ_L0_GC__c,MSJ_L1_GC__c,MSJ_L2_GC__c,MSJ_MR_GC__c,MSJ_MR_Problems__c,MSJ_N0_GC__c,MSJ_N1_GC__c,MSJ_N2_GC__c,MSJ_Num_of_DTL__c,MSJ_P01__c,MSJ_P02__c,MSJ_P03__c,MSJ_P04__c,MSJ_P05__c,MSJ_P0_GC__c,MSJ_P1_GC__c,MSJ_P2_GC__c,MSJ_PlanningTotal__c,MSJ_R0_GC__c,MSJ_R1_GC__c,MSJ_R2_GC__c,MSJ_S01__c,MSJ_S02__c,MSJ_S03__c,MSJ_S04__c,MSJ_S05__c,MSJ_S06__c,MSJ_S07__c,MSJ_S08__c,MSJ_S09__c,MSJ_S10__c,MSJ_S11__c,MSJ_S12__c,MSJ_Skill_Total__c,MSJ_After_Call_01__c,MSJ_After_Call_02__c,MSJ_After_Call_03__c,MSJ_After_Call_04__c,MSJ_Closing__c,MSJ_Comment_by_MR__c,MSJ_Confirmed_by_MR__c,MSJ_Createdby__c,MSJ_FT_AM_Name__c,MSJ_Interview_Preparation__c,MSJ_Interview_Reflection__c,MSJ_Notify_To_MR__c,MSJ_Opening__c,MSJ_Others_01_Result__c,MSJ_Others_01__c,MSJ_Others_02_Result__c,MSJ_Others_02__c,MSJ_Patient_Thinking__c,MSJ_Probing__c,MSJ_Supporting__c,MSJ_Patient_Thinking_for_FE__c,MSJ_After_Call_05__c,MSJ_After_Call_06__c,MSJ_After_Call_07__c,MSJ_After_Call_08__c,MSJ_Createdby_FE__c,MSJ_Createdby_ONC__c,MSJ_Development_Level__c,MSJ_Interview_Prep_01__c,MSJ_Interview_Prep_02__c,MSJ_Leadership_Style__c,MSJ_Overcome_01__c,MSJ_Overcome_02__c,MSJ_Overcome_03__c,MSJ_Overcome_04__c,MSJ_Review_01__c,MSJ_Review_02__c,MSJ_SK_01__c,MSJ_SK_02__c,MSJ_SK_03__c,MSJ_SK_04__c,MSJ_SK_05__c,MSJ_SK_06__c,MSJ_SK_07__c,MSJ_SK_08__c,MSJ_SK_09__c,MSJ_SK_10__c,MSJ_Specific_Action__c,MSJ_Training_Point__c,MSJ_Achievement_of_This_Month__c,MSJ_Action_of_This_Month__c,MSJ_Comment_from_AM__c,MSJ_Efforts_of_Month__c,MSJ_Efforts_of_Year__c,MSJ_Skill_Task__c
|
||||||
Id,OwnerId,IsDeleted,Name,RecordTypeId,CreatedDate,CreatedById,LastModifiedDate,LastModifiedById,SystemModstamp,MayEdit,IsLocked,LastViewedDate,LastReferencedDate,Mobile_ID_vod__c,Manager_vod__c,Employee_vod__c,Review_Date__c,Review_Period__c,Status__c,Comments__c,Strategic_Planning__c,Customer_Focus__c,Knowledge_Expertise__c,Business_Account_Planning__c,Call_Productivity__c,Overall_Rating__c,MSJ_A01__c,MSJ_A02__c,MSJ_A03__c,MSJ_AM_Memo__c,MSJ_Aid_Total__c,MSJ_C0_GC__c,MSJ_C1_GC__c,MSJ_C2_GC__c,MSJ_Countermeasure__c,MSJ_Deadline__c,MSJ_Double_Visit_Time__c,MSJ_Hospital__c,MSJ_K01_FE__c,MSJ_K01_ONC__c,MSJ_K02_FE__c,MSJ_K02_ONC__c,MSJ_K03_FE__c,MSJ_K03_ONC__c,MSJ_K04_FE__c,MSJ_K04_ONC__c,MSJ_K05_FE__c,MSJ_K05_ONC__c,MSJ_K06_FE__c,MSJ_K06_ONC__c,MSJ_K0_GC__c,MSJ_K1_GC__c,MSJ_K2_GC__c,MSJ_Knowledge_Total__c,MSJ_L0_GC__c,MSJ_L1_GC__c,MSJ_L2_GC__c,MSJ_MR_GC__c,MSJ_MR_Problems__c,MSJ_N0_GC__c,MSJ_N1_GC__c,MSJ_N2_GC__c,MSJ_Num_of_DTL__c,MSJ_P01__c,MSJ_P02__c,MSJ_P03__c,MSJ_P04__c,MSJ_P05__c,MSJ_P0_GC__c,MSJ_P1_GC__c,MSJ_P2_GC__c,MSJ_PlanningTotal__c,MSJ_R0_GC__c,MSJ_R1_GC__c,MSJ_R2_GC__c,MSJ_S01__c,MSJ_S02__c,MSJ_S03__c,MSJ_S04__c,MSJ_S05__c,MSJ_S06__c,MSJ_S07__c,MSJ_S08__c,MSJ_S09__c,MSJ_S10__c,MSJ_S11__c,MSJ_S12__c,MSJ_Skill_Total__c,MSJ_After_Call_01__c,MSJ_After_Call_02__c,MSJ_After_Call_03__c,MSJ_After_Call_04__c,MSJ_Closing__c,MSJ_Comment_by_MR__c,MSJ_Confirmed_by_MR__c,MSJ_Createdby__c,MSJ_FT_AM_Name__c,MSJ_Interview_Preparation__c,MSJ_Interview_Reflection__c,MSJ_Notify_To_MR__c,MSJ_Opening__c,MSJ_Others_01_Result__c,MSJ_Others_01__c,MSJ_Others_02_Result__c,MSJ_Others_02__c,MSJ_Patient_Thinking__c,MSJ_Probing__c,MSJ_Supporting__c,MSJ_Patient_Thinking_for_FE__c,MSJ_After_Call_05__c,MSJ_After_Call_06__c,MSJ_After_Call_07__c,MSJ_After_Call_08__c,MSJ_Createdby_FE__c,MSJ_Createdby_ONC__c,MSJ_Development_Level__c,MSJ_Interview_Prep_01__c,MSJ_Interview_Prep_02__c,MSJ_Leadership_Style__c,MSJ_Overcome_01__c,MSJ_Overcome_02__c,MSJ_Overcome_03__c,MSJ_Overcome_04__c,MSJ_Review_01__c,MSJ_Review_02__c,MSJ_SK_01__c,MSJ_SK_02__c,MSJ_SK_03__c,MSJ_SK_04__c,MSJ_SK_05__c,MSJ_SK_06__c,MSJ_SK_07__c,MSJ_SK_08__c,MSJ_SK_09__c,MSJ_SK_10__c,MSJ_Specific_Action__c,MSJ_Training_Point__c,MSJ_Achievement_of_This_Month__c,MSJ_Action_of_This_Month__c,MSJ_Comment_from_AM__c,MSJ_Efforts_of_Month__c,MSJ_Efforts_of_Year__c,MSJ_Skill_Task__c,MSJ_SK_11__c,MSJ_SK_12__c,MSJ_SK_13__c,MSJ_SK_14__c,MSJ_SK_15__c,MSJ_SK_16__c,MSJ_SK_17__c,SK_Special_Note_01__c,SK_Special_Note_09__c,MSJ_Overcome_Special_Note_01__c,SK_Special_Note_02__c,SK_Special_Note_03__c,SK_Special_Note_04__c,SK_Special_Note_05__c,SK_Special_Note_06__c,SK_Special_Note_07__c,SK_Special_Note_08__c,MSJ_Overcome_Special_Note_02__c,MSJ_Overcome_Special_Note_03__c,MSJ_Overcome_Special_Note_04__c,MSJ_Interview_Prep_Special_Note01__c,MSJ_Interview_Prep_Special_Note02__c,MSJ_After_Call_09__c,MSJ_After_Call_10__c,MSJ_After_Call_11__c,MSJ_Interview_Prep_Reject_Reason__c,After_Call_Reject_Reason__c,After_Call_Special_Note__c
|
Id,OwnerId,IsDeleted,Name,RecordTypeId,CreatedDate,CreatedById,LastModifiedDate,LastModifiedById,SystemModstamp,MayEdit,IsLocked,LastViewedDate,LastReferencedDate,Mobile_ID_vod__c,Manager_vod__c,Employee_vod__c,Review_Date__c,Review_Period__c,Status__c,Comments__c,Strategic_Planning__c,Customer_Focus__c,Knowledge_Expertise__c,Business_Account_Planning__c,Call_Productivity__c,Overall_Rating__c,MSJ_A01__c,MSJ_A02__c,MSJ_A03__c,MSJ_AM_Memo__c,MSJ_Aid_Total__c,MSJ_C0_GC__c,MSJ_C1_GC__c,MSJ_C2_GC__c,MSJ_Countermeasure__c,MSJ_Deadline__c,MSJ_Double_Visit_Time__c,MSJ_Hospital__c,MSJ_K01_FE__c,MSJ_K01_ONC__c,MSJ_K02_FE__c,MSJ_K02_ONC__c,MSJ_K03_FE__c,MSJ_K03_ONC__c,MSJ_K04_FE__c,MSJ_K04_ONC__c,MSJ_K05_FE__c,MSJ_K05_ONC__c,MSJ_K06_FE__c,MSJ_K06_ONC__c,MSJ_K0_GC__c,MSJ_K1_GC__c,MSJ_K2_GC__c,MSJ_Knowledge_Total__c,MSJ_L0_GC__c,MSJ_L1_GC__c,MSJ_L2_GC__c,MSJ_MR_GC__c,MSJ_MR_Problems__c,MSJ_N0_GC__c,MSJ_N1_GC__c,MSJ_N2_GC__c,MSJ_Num_of_DTL__c,MSJ_P01__c,MSJ_P02__c,MSJ_P03__c,MSJ_P04__c,MSJ_P05__c,MSJ_P0_GC__c,MSJ_P1_GC__c,MSJ_P2_GC__c,MSJ_PlanningTotal__c,MSJ_R0_GC__c,MSJ_R1_GC__c,MSJ_R2_GC__c,MSJ_S01__c,MSJ_S02__c,MSJ_S03__c,MSJ_S04__c,MSJ_S05__c,MSJ_S06__c,MSJ_S07__c,MSJ_S08__c,MSJ_S09__c,MSJ_S10__c,MSJ_S11__c,MSJ_S12__c,MSJ_Skill_Total__c,MSJ_After_Call_01__c,MSJ_After_Call_02__c,MSJ_After_Call_03__c,MSJ_After_Call_04__c,MSJ_Closing__c,MSJ_Comment_by_MR__c,MSJ_Confirmed_by_MR__c,MSJ_Createdby__c,MSJ_FT_AM_Name__c,MSJ_Interview_Preparation__c,MSJ_Interview_Reflection__c,MSJ_Notify_To_MR__c,MSJ_Opening__c,MSJ_Others_01_Result__c,MSJ_Others_01__c,MSJ_Others_02_Result__c,MSJ_Others_02__c,MSJ_Patient_Thinking__c,MSJ_Probing__c,MSJ_Supporting__c,MSJ_Patient_Thinking_for_FE__c,MSJ_After_Call_05__c,MSJ_After_Call_06__c,MSJ_After_Call_07__c,MSJ_After_Call_08__c,MSJ_Createdby_FE__c,MSJ_Createdby_ONC__c,MSJ_Development_Level__c,MSJ_Interview_Prep_01__c,MSJ_Interview_Prep_02__c,MSJ_Leadership_Style__c,MSJ_Overcome_01__c,MSJ_Overcome_02__c,MSJ_Overcome_03__c,MSJ_Overcome_04__c,MSJ_Review_01__c,MSJ_Review_02__c,MSJ_SK_01__c,MSJ_SK_02__c,MSJ_SK_03__c,MSJ_SK_04__c,MSJ_SK_05__c,MSJ_SK_06__c,MSJ_SK_07__c,MSJ_SK_08__c,MSJ_SK_09__c,MSJ_SK_10__c,MSJ_Specific_Action__c,MSJ_Training_Point__c,MSJ_Achievement_of_This_Month__c,MSJ_Action_of_This_Month__c,MSJ_Comment_from_AM__c,MSJ_Efforts_of_Month__c,MSJ_Efforts_of_Year__c,MSJ_Skill_Task__c
|
||||||
src02c.crm_Coaching_Report_vod__c
|
src02c.crm_Coaching_Report_vod__c
|
||||||
org02.crm_Coaching_Report_vod__c
|
org02.crm_Coaching_Report_vod__c
|
||||||
|
|
||||||
|
|||||||
@ -4,9 +4,9 @@ utf-8
|
|||||||
"
|
"
|
||||||
CRLF
|
CRLF
|
||||||
1
|
1
|
||||||
37
|
36
|
||||||
Id,IsDeleted,Name,RecordTypeId,CreatedDate,CreatedById,LastModifiedDate,LastModifiedById,SystemModstamp,LastActivityDate,MayEdit,IsLocked,Sent_Email_vod__c,Activity_DateTime_vod__c,City_vod__c,Click_URL_vod__c,Client_Name_vod__c,Client_OS_vod__c,Client_Type_vod__c,Country_vod__c,Device_Type_vod__c,Event_Msg_vod__c,Event_type_vod__c,IP_Address_vod__c,Region_vod__c,User_Agent_vod__c,Vault_Doc_ID_vod__c,Vault_Doc_Name_vod__c,Vault_Document_Major_Version_vod__c,Vault_Document_Minor_Version_vod__c,Vault_Document_Number_vod__c,Vault_Document_Title_vod__c,Vault_Instance_ID_vod__c,Preference_Modification_vod__c,Approved_Document_vod__c,Link_Name_vod__c,Bot_vod__c
|
Id,IsDeleted,Name,RecordTypeId,CreatedDate,CreatedById,LastModifiedDate,LastModifiedById,SystemModstamp,LastActivityDate,MayEdit,IsLocked,Sent_Email_vod__c,Activity_DateTime_vod__c,City_vod__c,Click_URL_vod__c,Client_Name_vod__c,Client_OS_vod__c,Client_Type_vod__c,Country_vod__c,Device_Type_vod__c,Event_Msg_vod__c,Event_type_vod__c,IP_Address_vod__c,Region_vod__c,User_Agent_vod__c,Vault_Doc_ID_vod__c,Vault_Doc_Name_vod__c,Vault_Document_Major_Version_vod__c,Vault_Document_Minor_Version_vod__c,Vault_Document_Number_vod__c,Vault_Document_Title_vod__c,Vault_Instance_ID_vod__c,Preference_Modification_vod__c,Approved_Document_vod__c,Link_Name_vod__c
|
||||||
Id,IsDeleted,Name,RecordTypeId,CreatedDate,CreatedById,LastModifiedDate,LastModifiedById,SystemModstamp,LastActivityDate,MayEdit,IsLocked,Sent_Email_vod__c,Activity_DateTime_vod__c,City_vod__c,Click_URL_vod__c,Client_Name_vod__c,Client_OS_vod__c,Client_Type_vod__c,Country_vod__c,Device_Type_vod__c,Event_Msg_vod__c,Event_type_vod__c,IP_Address_vod__c,Region_vod__c,User_Agent_vod__c,Vault_Doc_ID_vod__c,Vault_Doc_Name_vod__c,Vault_Document_Major_Version_vod__c,Vault_Document_Minor_Version_vod__c,Vault_Document_Number_vod__c,Vault_Document_Title_vod__c,Vault_Instance_ID_vod__c,Preference_Modification_vod__c,Approved_Document_vod__c,Link_Name_vod__c,Bot_vod__c
|
Id,IsDeleted,Name,RecordTypeId,CreatedDate,CreatedById,LastModifiedDate,LastModifiedById,SystemModstamp,LastActivityDate,MayEdit,IsLocked,Sent_Email_vod__c,Activity_DateTime_vod__c,City_vod__c,Click_URL_vod__c,Client_Name_vod__c,Client_OS_vod__c,Client_Type_vod__c,Country_vod__c,Device_Type_vod__c,Event_Msg_vod__c,Event_type_vod__c,IP_Address_vod__c,Region_vod__c,User_Agent_vod__c,Vault_Doc_ID_vod__c,Vault_Doc_Name_vod__c,Vault_Document_Major_Version_vod__c,Vault_Document_Minor_Version_vod__c,Vault_Document_Number_vod__c,Vault_Document_Title_vod__c,Vault_Instance_ID_vod__c,Preference_Modification_vod__c,Approved_Document_vod__c,Link_Name_vod__c
|
||||||
src02c.crm_Email_Activity_vod__c
|
src02c.crm_Email_Activity_vod__c
|
||||||
org02.crm_Email_Activity_vod__c
|
org02.crm_Email_Activity_vod__c
|
||||||
|
|
||||||
|
|||||||
@ -4,9 +4,9 @@ utf-8
|
|||||||
"
|
"
|
||||||
CRLF
|
CRLF
|
||||||
1
|
1
|
||||||
37
|
36
|
||||||
Id,IsDeleted,Name,RecordTypeId,CreatedDate,CreatedById,LastModifiedDate,LastModifiedById,SystemModstamp,MayEdit,IsLocked,Attendee_vod__c,User_vod__c,Medical_Event_vod__c,Attendee_Type_vod__c,Status_vod__c,Contact_vod__c,Attendee_Name_vod__c,Account_vod__c,Start_Date_vod__c,Signature_vod__c,Signature_Datetime_vod__c,MSJ_Copy_Account_Type__c,MSJ_Evaluation__c,MSJ_Hospital__c,MSJ_Role__c,Mobile_ID_vod__c,MSJ_Evaluation_Comment__c,Position_vod__c,Talk_Title_vod__c,MSJ_Attendee_Reaction__c,MSJ_Registration__c,MSJ_DirectMail_Status__c,EM_Event_Team_Member_vod__c,Group_Name_vod__c,Role_vod__c,MSJ_Attendee_Media__c
|
Id,IsDeleted,Name,RecordTypeId,CreatedDate,CreatedById,LastModifiedDate,LastModifiedById,SystemModstamp,MayEdit,IsLocked,Attendee_vod__c,User_vod__c,Medical_Event_vod__c,Attendee_Type_vod__c,Status_vod__c,Contact_vod__c,Attendee_Name_vod__c,Account_vod__c,Start_Date_vod__c,Signature_vod__c,Signature_Datetime_vod__c,MSJ_Copy_Account_Type__c,MSJ_Evaluation__c,MSJ_Hospital__c,MSJ_Role__c,Mobile_ID_vod__c,MSJ_Evaluation_Comment__c,Position_vod__c,Talk_Title_vod__c,MSJ_Attendee_Reaction__c,MSJ_Registration__c,MSJ_DirectMail_Status__c,EM_Event_Team_Member_vod__c,Group_Name_vod__c,Role_vod__c
|
||||||
Id,IsDeleted,Name,RecordTypeId,CreatedDate,CreatedById,LastModifiedDate,LastModifiedById,SystemModstamp,MayEdit,IsLocked,Attendee_vod__c,User_vod__c,Medical_Event_vod__c,Attendee_Type_vod__c,Status_vod__c,Contact_vod__c,Attendee_Name_vod__c,Account_vod__c,Start_Date_vod__c,Signature_vod__c,Signature_Datetime_vod__c,MSJ_Copy_Account_Type__c,MSJ_Evaluation__c,MSJ_Hospital__c,MSJ_Role__c,Mobile_ID_vod__c,MSJ_Evaluation_Comment__c,Position_vod__c,Talk_Title_vod__c,MSJ_Attendee_Reaction__c,MSJ_Registration__c,MSJ_DirectMail_Status__c,EM_Event_Team_Member_vod__c,Group_Name_vod__c,Role_vod__c,MSJ_Attendee_Media__c
|
Id,IsDeleted,Name,RecordTypeId,CreatedDate,CreatedById,LastModifiedDate,LastModifiedById,SystemModstamp,MayEdit,IsLocked,Attendee_vod__c,User_vod__c,Medical_Event_vod__c,Attendee_Type_vod__c,Status_vod__c,Contact_vod__c,Attendee_Name_vod__c,Account_vod__c,Start_Date_vod__c,Signature_vod__c,Signature_Datetime_vod__c,MSJ_Copy_Account_Type__c,MSJ_Evaluation__c,MSJ_Hospital__c,MSJ_Role__c,Mobile_ID_vod__c,MSJ_Evaluation_Comment__c,Position_vod__c,Talk_Title_vod__c,MSJ_Attendee_Reaction__c,MSJ_Registration__c,MSJ_DirectMail_Status__c,EM_Event_Team_Member_vod__c,Group_Name_vod__c,Role_vod__c
|
||||||
src02c.crm_Event_Attendee_vod__c
|
src02c.crm_Event_Attendee_vod__c
|
||||||
org02.crm_Event_Attendee_vod__c
|
org02.crm_Event_Attendee_vod__c
|
||||||
|
|
||||||
|
|||||||
@ -4,9 +4,9 @@ utf-8
|
|||||||
"
|
"
|
||||||
CRLF
|
CRLF
|
||||||
1
|
1
|
||||||
52
|
51
|
||||||
Id,OwnerId,IsDeleted,Name,RecordTypeId,CreatedDate,CreatedById,LastModifiedDate,LastModifiedById,SystemModstamp,MayEdit,IsLocked,LastViewedDate,LastReferencedDate,Description_vod__c,Product_vod__c,Product_Strategy_vod__c,Display_Order_vod__c,Active_vod__c,Category_vod__c,Vehicle_vod__c,CLM_ID_vod__c,Custom_Reaction_vod__c,Slide_Version_vod__c,Language_vod__c,Media_File_CRC_vod__c,Media_File_Name_vod__c,Media_File_Size_vod__c,Segment_vod__c,Disable_Actions_vod__c,VExternal_Id_vod__c,CDN_Path_vod__c,Status_vod__c,Vault_DNS_vod__c,Vault_Doc_Id_vod__c,Vault_External_Id_vod__c,Vault_GUID_vod__c,Vault_Last_Modified_Date_Time_vod__c,Is_Shared_Resource_vod__c,iOS_Viewer_vod__c,iOS_Resolution_vod__c,approved_for_distribution_date__c,approved_for_use_date__c,business_function__c,ewizard_link__c,expiration_date__c,keywords__c,trade_team__c,MSJ_Start_Date__c,MSJ_End_Date__c,MSJ_Strategic_Message__c,Media_Type_vod__c
|
Id,OwnerId,IsDeleted,Name,RecordTypeId,CreatedDate,CreatedById,LastModifiedDate,LastModifiedById,SystemModstamp,MayEdit,IsLocked,LastViewedDate,LastReferencedDate,Description_vod__c,Product_vod__c,Product_Strategy_vod__c,Display_Order_vod__c,Active_vod__c,Category_vod__c,Vehicle_vod__c,CLM_ID_vod__c,Custom_Reaction_vod__c,Slide_Version_vod__c,Language_vod__c,Media_File_CRC_vod__c,Media_File_Name_vod__c,Media_File_Size_vod__c,Segment_vod__c,Disable_Actions_vod__c,VExternal_Id_vod__c,CDN_Path_vod__c,Status_vod__c,Vault_DNS_vod__c,Vault_Doc_Id_vod__c,Vault_External_Id_vod__c,Vault_GUID_vod__c,Vault_Last_Modified_Date_Time_vod__c,Is_Shared_Resource_vod__c,iOS_Viewer_vod__c,iOS_Resolution_vod__c,approved_for_distribution_date__c,approved_for_use_date__c,business_function__c,ewizard_link__c,expiration_date__c,keywords__c,trade_team__c,MSJ_Start_Date__c,MSJ_End_Date__c,MSJ_Strategic_Message__c
|
||||||
Id,OwnerId,IsDeleted,Name,RecordTypeId,CreatedDate,CreatedById,LastModifiedDate,LastModifiedById,SystemModstamp,MayEdit,IsLocked,LastViewedDate,LastReferencedDate,Description_vod__c,Product_vod__c,Product_Strategy_vod__c,Display_Order_vod__c,Active_vod__c,Category_vod__c,Vehicle_vod__c,CLM_ID_vod__c,Custom_Reaction_vod__c,Slide_Version_vod__c,Language_vod__c,Media_File_CRC_vod__c,Media_File_Name_vod__c,Media_File_Size_vod__c,Segment_vod__c,Disable_Actions_vod__c,VExternal_Id_vod__c,CDN_Path_vod__c,Status_vod__c,Vault_DNS_vod__c,Vault_Doc_Id_vod__c,Vault_External_Id_vod__c,Vault_GUID_vod__c,Vault_Last_Modified_Date_Time_vod__c,Is_Shared_Resource_vod__c,iOS_Viewer_vod__c,iOS_Resolution_vod__c,approved_for_distribution_date__c,approved_for_use_date__c,business_function__c,ewizard_link__c,expiration_date__c,keywords__c,trade_team__c,MSJ_Start_Date__c,MSJ_End_Date__c,MSJ_Strategic_Message__c,Media_Type_vod__c
|
Id,OwnerId,IsDeleted,Name,RecordTypeId,CreatedDate,CreatedById,LastModifiedDate,LastModifiedById,SystemModstamp,MayEdit,IsLocked,LastViewedDate,LastReferencedDate,Description_vod__c,Product_vod__c,Product_Strategy_vod__c,Display_Order_vod__c,Active_vod__c,Category_vod__c,Vehicle_vod__c,CLM_ID_vod__c,Custom_Reaction_vod__c,Slide_Version_vod__c,Language_vod__c,Media_File_CRC_vod__c,Media_File_Name_vod__c,Media_File_Size_vod__c,Segment_vod__c,Disable_Actions_vod__c,VExternal_Id_vod__c,CDN_Path_vod__c,Status_vod__c,Vault_DNS_vod__c,Vault_Doc_Id_vod__c,Vault_External_Id_vod__c,Vault_GUID_vod__c,Vault_Last_Modified_Date_Time_vod__c,Is_Shared_Resource_vod__c,iOS_Viewer_vod__c,iOS_Resolution_vod__c,approved_for_distribution_date__c,approved_for_use_date__c,business_function__c,ewizard_link__c,expiration_date__c,keywords__c,trade_team__c,MSJ_Start_Date__c,MSJ_End_Date__c,MSJ_Strategic_Message__c
|
||||||
src02.crm_Key_Message_vod__c
|
src02.crm_Key_Message_vod__c
|
||||||
org02.crm_Key_Message_vod__c
|
org02.crm_Key_Message_vod__c
|
||||||
|
|
||||||
|
|||||||
@ -1,13 +0,0 @@
|
|||||||
CRM
|
|
||||||
,
|
|
||||||
utf-8
|
|
||||||
"
|
|
||||||
CRLF
|
|
||||||
1
|
|
||||||
26
|
|
||||||
Id,IsDeleted,Name,RecordTypeId,CreatedDate,CreatedById,LastModifiedDate,LastModifiedById,SystemModstamp,MayEdit,IsLocked,LastViewedDate,LastReferencedDate,MSJ_Related_External_Account_Data__c,MSJ_Active__c,MSJ_Terms_Conditions_Details__c,MSJ_Terms_Conditions__c,MSJ_Channel_Value__c,MSJ_Consent_Channel__c,MSJ_Consent_Details__c,MSJ_Consent_Status__c,MSJ_Consent__c,MSJ_Therapeutic_Area_TA__c,MSJ_Email_Unmatch__c,MSJ_WebApp_ClientId__c,MSJ_WebApp_ClientName__c
|
|
||||||
Id,IsDeleted,Name,RecordTypeId,CreatedDate,CreatedById,LastModifiedDate,LastModifiedById,SystemModstamp,MayEdit,IsLocked,LastViewedDate,LastReferencedDate,MSJ_Related_External_Account_Data__c,MSJ_Active__c,MSJ_Terms_Conditions_Details__c,MSJ_Terms_Conditions__c,MSJ_Channel_Value__c,MSJ_Consent_Channel__c,MSJ_Consent_Details__c,MSJ_Consent_Status__c,MSJ_Consent__c,MSJ_Therapeutic_Area_TA__c,MSJ_Email_Unmatch__c,MSJ_WebApp_ClientId__c,MSJ_WebApp_ClientName__c
|
|
||||||
src02.crm_MSJ_Related_External_Account_Data_Attrib__c
|
|
||||||
org02.crm_MSJ_Related_External_Account_Data_Attrib__c
|
|
||||||
|
|
||||||
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user