Skip to content

Commit 05ea0d9

Browse files
committed
PR-7510 refinements to documentation, etc
1 parent ebf4eea commit 05ea0d9

7 files changed

Lines changed: 100 additions & 89 deletions

File tree

ctorm/cumulus-db-md-extract/README.md

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -128,10 +128,7 @@ echo "${BUILD_ID}"
128128
aws codebuild start-build \
129129
--project-name "${CODEBUILD_PROJECT}" \
130130
--region "${AWS_REGION}" \
131-
--environment-variables-override '[
132-
{"name": "SLICES_S3_URI", "value": "s3://ctorm-scratch/cumulus-granules/opera/slices_daily-OPERA_L2_RTC-S1_V1-20170910-20181203.tsv", "type": "PLAINTEXT"},
133-
{"name": "COLLECTION", "value": "OPERA_L2_RTC-S1_V1", "type": "PLAINTEXT"}
134-
]' \
131+
--environment-variables-override name=SLICES_S3_URI,value="s3://ctorm-scratch/cumulus-granules/opera/slices_daily-OPERA_L2_CSLC-S1_V1-20180707-20200522.tsv",type=PLAINTEXT \
135132
--query 'build.id' \
136133
--output text
137134
# )"

ctorm/cumulus-db-md-extract/export-granules-daily.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
set -euo pipefail
22

3+
# Takes slice TSV files and creates .jsonl files out of the cumulus DB
4+
35
S3_PREFIX="s3://${CTORM_BUCKET}/cumulus-granules/${DUMP_SUBDIR}"
46
FAILED_SLICES_FILE="failed_slices_daily.tsv"
57

ctorm/granule-md-db-loader/README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ export CTORM_BUCKET="ctorm-dev-scratch"
2626
aws s3 ls s3://${CTORM_BUCKET}/cumulus-granules/nisar/ |grep PRE
2727
aws s3 ls s3://${CTORM_BUCKET}/cumulus-granules/opera/ |grep PRE
2828

29-
# If you want do them all sequentially, not recommended and not going to work with all the data:
29+
# If you want do them all sequentially, not recommended and not going to work with all the data because throttling::
3030
aws codebuild start-build --profile="${AWS_PROFILE}" \
3131
--project-name "${CODEBUILD_PROJECT}" \
3232
--region "us-west-2" \
@@ -60,6 +60,7 @@ aws codebuild start-build --profile="${AWS_PROFILE}" \
6060
--environment-variables-override name=PREFIX,value=cumulus-granules/opera/OPERA_L3_DIST-ALERT-S1_V1_/,type=PLAINTEXT \
6161
--query 'build.id' \
6262
--output text
63+
# nisar
6364
aws codebuild start-build --profile="${AWS_PROFILE}" \
6465
--project-name "${CODEBUILD_PROJECT}" \
6566
--region "us-west-2" \

ctorm/granule-md-db-loader/granule_md_db_loader.py

Lines changed: 46 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -47,49 +47,51 @@ def limit(self, pk):
4747

4848

4949
def handle_file(
50-
local_path,
51-
table,
52-
rate_limiter: PartitionRateLimiter,
53-
records_in_file,
54-
total_records,
50+
local_path: str,
51+
table,
52+
rate_limiter: PartitionRateLimiter,
53+
records_in_file: int,
54+
total_records: int,
5555
):
56-
with gzip.open(local_path, "rt", encoding="utf-8") as f:
57-
with table.batch_writer() as batch:
58-
for line in f:
59-
line = line.strip()
60-
if not line:
61-
continue
62-
63-
try:
64-
# Convert floats/doubles to Decimal for
65-
# DynamoDB compatibility
66-
item = json.loads(line, parse_float=Decimal)
67-
except Exception as e:
68-
logger.error(f"Failed to parse JSON line: {e}")
69-
continue
70-
71-
# Add/modify fields if needed
72-
newdate = datetime.datetime.utcnow().isoformat() + "Z"
73-
item["imported_at"] = newdate
74-
75-
# Ensure partition and sort keys are present
76-
pk = item.get("pk")
77-
sk = item.get("sk")
78-
if not pk or not sk:
79-
logger.warning(
80-
"Skipping record missing pk/sk: %s",
81-
item.get('granule_id'),
82-
)
83-
84-
continue
85-
86-
# Apply dynamic rate limit based on the partition key
87-
rate_limiter.limit(pk)
88-
89-
# Batch insert into DynamoDB
90-
batch.put_item(Item=item)
91-
records_in_file += 1
92-
total_records += 1
56+
with (
57+
gzip.open(local_path, "rt", encoding="utf-8") as f,
58+
table.batch_writer() as batch,
59+
):
60+
for line in f:
61+
line = line.strip()
62+
if not line:
63+
continue
64+
65+
try:
66+
# Convert floats/doubles to Decimal for
67+
# DynamoDB compatibility
68+
item = json.loads(line, parse_float=Decimal)
69+
except Exception as e:
70+
logger.error("Failed to parse JSON line: %s", e)
71+
continue
72+
73+
# Add/modify fields if needed
74+
newdate = datetime.datetime.utcnow().isoformat() + "Z"
75+
item["imported_at"] = newdate
76+
77+
# Ensure partition and sort keys are present
78+
pk = item.get("pk")
79+
sk = item.get("sk")
80+
if not pk or not sk:
81+
logger.warning(
82+
"Skipping record missing pk/sk: %s",
83+
item.get("granule_id"),
84+
)
85+
86+
continue
87+
88+
# Apply dynamic rate limit based on the partition key
89+
rate_limiter.limit(pk)
90+
91+
# Batch insert into DynamoDB
92+
batch.put_item(Item=item)
93+
records_in_file += 1
94+
total_records += 1
9395
return records_in_file, total_records
9496

9597

@@ -142,7 +144,7 @@ def main():
142144
if not key.endswith(".jsonl.gz"):
143145
continue
144146

145-
logger.info(f"Processing s3://{bucket_name}/{key}")
147+
logger.info("Processing s3://%s/%s", bucket_name, key)
146148
total_files += 1
147149

148150
# Download and decompress the file
@@ -166,14 +168,13 @@ def main():
166168
dyndb_table,
167169
rate_limiter,
168170
records_in_file,
169-
total_records
171+
total_records,
170172
)
171173

172174
logger.info(
173175
"Successfully imported %s records from %s",
174176
records_in_file,
175177
key,
176-
177178
)
178179
except Exception as e:
179180
logger.error("Error processing file %s: %s", key, e)

ctorm/infra/README.md

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,25 @@ terraform plan \
1919
terraform apply \
2020
-var-file="${VARFILE}"
2121

22+
terraform destroy
23+
```
24+
25+
## Increasing DynamoDB table capacity
26+
27+
For loading the DynamoDB table with the .jsonl files, we'll need to increase the capacity of the table.
28+
AWS will throttle drastically if we don't. There is some limitation on how often we can switch between
29+
PROVISIONED and PAY_PER_REQUEST, so don't do it willy-nilly.
30+
31+
```bash
2232
# For temporary use while loading granule metadata:
2333
terraform plan \
2434
-var-file="${VARFILE}" \
2535
-var="granule_table_billing_mode=PROVISIONED" \
26-
-var="granule_table_write_capacity=10000"
36+
-var="granule_table_write_capacity=5000"
2737

28-
terraform apply \
29-
-var-file="${VARFILE}" \
30-
-var="granule_table_billing_mode=PROVISIONED" \
31-
-var="granule_table_write_capacity=10000"
38+
# To set it back to the default:
39+
terraform plan \
40+
-var-file="${VARFILE}"
3241

3342

3443
terraform destroy

ctorm/infra/terraform/terraform.tfstate

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"version": 4,
33
"terraform_version": "1.9.2",
4-
"serial": 69,
4+
"serial": 80,
55
"lineage": "b892c75c-f0f0-4b0a-da62-f1b3dc822c9c",
66
"outputs": {
77
"cumulus_db_md_extract_upload_role_arn": {
@@ -45,16 +45,16 @@
4545
"attributes": {
4646
"exclude_symlink_directories": null,
4747
"excludes": null,
48-
"id": "8aba5fc615e31fb8e702c9792731579710ec9e7f",
49-
"output_base64sha256": "qNJKWp7fS4ASgrj5WdfgpTyLErnAm7Wx5K2yrPD0mww=",
50-
"output_base64sha512": "6zrwnliKIyNwiEayn3ouS6dmWHY7Ft777al1qI7xKBzFgVo4+kmCKy1gSqHsXrxGI6i7HnMtSxFsMdQiovpI2g==",
48+
"id": "52e34db2cc95ccb0b9a4b2c00d666b0fa966c7d6",
49+
"output_base64sha256": "sJyNi8A4EiUt9+1eGfxqev6khx8HyXxL3o25bEriL5Y=",
50+
"output_base64sha512": "cYqWFwuEi6LTUM2lmqkXnWuYX+bf0oG86hslOpldD33Zq+jezzEQpTt9V3MGu8xmBy+knCvhX457ql2fPXo2qw==",
5151
"output_file_mode": null,
52-
"output_md5": "10648403b2277ad95dd6324dd58521c9",
52+
"output_md5": "c7918cf0c08ea6e16f8828296cd3d06a",
5353
"output_path": "./.terraform/granule-md-db-loader.zip",
54-
"output_sha": "8aba5fc615e31fb8e702c9792731579710ec9e7f",
55-
"output_sha256": "a8d24a5a9edf4b801282b8f959d7e0a53c8b12b9c09bb5b1e4adb2acf0f49b0c",
56-
"output_sha512": "eb3af09e588a2323708846b29f7a2e4ba76658763b16defbeda975a88ef1281cc5815a38fa49822b2d604aa1ec5ebc4623a8bb1e732d4b116c31d422a2fa48da",
57-
"output_size": 3296,
54+
"output_sha": "52e34db2cc95ccb0b9a4b2c00d666b0fa966c7d6",
55+
"output_sha256": "b09c8d8bc03812252df7ed5e19fc6a7afea4871f07c97c4bde8db96c4ae22f96",
56+
"output_sha512": "718a96170b848ba2d350cda59aa9179d6b985fe6dfd281bcea1b253a995d0f7dd9abe8decf3110a53b7d577306bbcc66072fa49c2be15f8e7baa5d9f3d7a36ab",
57+
"output_size": 3481,
5858
"source": [],
5959
"source_content": null,
6060
"source_content_filename": null,
@@ -793,7 +793,7 @@
793793
"inline_policy": [
794794
{
795795
"name": "ctorm-dev-cumulus-db-md-extract-upload",
796-
"policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Action\":[\"s3:PutObject\",\"s3:AbortMultipartUpload\"],\"Effect\":\"Allow\",\"Resource\":\"arn:aws:s3:::ctorm-dev-scratch/cumulus-granules/*\",\"Sid\":\"UploadExtractedGranules\"},{\"Action\":\"s3:ListBucket\",\"Condition\":{\"StringLike\":{\"s3:prefix\":\"cumulus-granules/*\"}},\"Effect\":\"Allow\",\"Resource\":\"arn:aws:s3:::ctorm-dev-scratch\",\"Sid\":\"ListDestinationPrefix\"}]}"
796+
"policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Action\":[\"s3:PutObject\",\"s3:GetObject\",\"s3:AbortMultipartUpload\"],\"Effect\":\"Allow\",\"Resource\":\"arn:aws:s3:::ctorm-dev-scratch/cumulus-granules/*\",\"Sid\":\"UploadExtractedGranules\"},{\"Action\":\"s3:ListBucket\",\"Condition\":{\"StringLike\":{\"s3:prefix\":\"cumulus-granules/*\"}},\"Effect\":\"Allow\",\"Resource\":\"arn:aws:s3:::ctorm-dev-scratch\",\"Sid\":\"ListDestinationPrefix\"}]}"
797797
}
798798
],
799799
"managed_policy_arns": [],
@@ -1195,7 +1195,7 @@
11951195
"content_encoding": "",
11961196
"content_language": "",
11971197
"content_type": "application/octet-stream",
1198-
"etag": "10648403b2277ad95dd6324dd58521c9",
1198+
"etag": "c7918cf0c08ea6e16f8828296cd3d06a",
11991199
"force_destroy": false,
12001200
"id": "codebuild/granule-md-db-loader.zip",
12011201
"key": "codebuild/granule-md-db-loader.zip",
@@ -1207,7 +1207,7 @@
12071207
"override_provider": [],
12081208
"server_side_encryption": "AES256",
12091209
"source": "./.terraform/granule-md-db-loader.zip",
1210-
"source_hash": "qNJKWp7fS4ASgrj5WdfgpTyLErnAm7Wx5K2yrPD0mww=",
1210+
"source_hash": "sJyNi8A4EiUt9+1eGfxqev6khx8HyXxL3o25bEriL5Y=",
12111211
"storage_class": "STANDARD",
12121212
"tags": {},
12131213
"tags_all": {},

ctorm/infra/terraform/terraform.tfstate.backup

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"version": 4,
33
"terraform_version": "1.9.2",
4-
"serial": 67,
4+
"serial": 76,
55
"lineage": "b892c75c-f0f0-4b0a-da62-f1b3dc822c9c",
66
"outputs": {
77
"cumulus_db_md_extract_upload_role_arn": {
@@ -45,16 +45,16 @@
4545
"attributes": {
4646
"exclude_symlink_directories": null,
4747
"excludes": null,
48-
"id": "8aba5fc615e31fb8e702c9792731579710ec9e7f",
49-
"output_base64sha256": "qNJKWp7fS4ASgrj5WdfgpTyLErnAm7Wx5K2yrPD0mww=",
50-
"output_base64sha512": "6zrwnliKIyNwiEayn3ouS6dmWHY7Ft777al1qI7xKBzFgVo4+kmCKy1gSqHsXrxGI6i7HnMtSxFsMdQiovpI2g==",
48+
"id": "d4be9c10fb356c2942476bb405fe6e86236ca9d9",
49+
"output_base64sha256": "k194U724Vh6mbvti7qO0mrH4uDfFUqoOAgSUtY8zmW0=",
50+
"output_base64sha512": "/tl0guEuEuyrvuj+stzcDIneyXnGYZxXS+GHq3+Od3b3Rgyni0trdrvK2XAEb/SD0ccNAACcZ9AJxPkDFGv/EA==",
5151
"output_file_mode": null,
52-
"output_md5": "10648403b2277ad95dd6324dd58521c9",
52+
"output_md5": "66541e163cc3aaff54beddc162ad3aca",
5353
"output_path": "./.terraform/granule-md-db-loader.zip",
54-
"output_sha": "8aba5fc615e31fb8e702c9792731579710ec9e7f",
55-
"output_sha256": "a8d24a5a9edf4b801282b8f959d7e0a53c8b12b9c09bb5b1e4adb2acf0f49b0c",
56-
"output_sha512": "eb3af09e588a2323708846b29f7a2e4ba76658763b16defbeda975a88ef1281cc5815a38fa49822b2d604aa1ec5ebc4623a8bb1e732d4b116c31d422a2fa48da",
57-
"output_size": 3296,
54+
"output_sha": "d4be9c10fb356c2942476bb405fe6e86236ca9d9",
55+
"output_sha256": "935f7853bdb8561ea66efb62eea3b49ab1f8b837c552aa0e020494b58f33996d",
56+
"output_sha512": "fed97482e12e12ecabbee8feb2dcdc0c89dec979c6619c574be187ab7f8e7776f7460ca78b4b6b76bbcad970046ff483d1c70d00009c67d009c4f903146bff10",
57+
"output_size": 3469,
5858
"source": [],
5959
"source_content": null,
6060
"source_content_filename": null,
@@ -249,9 +249,9 @@
249249
{
250250
"schema_version": 0,
251251
"attributes": {
252-
"id": "923578907",
253-
"json": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Sid\": \"UploadExtractedGranules\",\n \"Effect\": \"Allow\",\n \"Action\": [\n \"s3:PutObject\",\n \"s3:AbortMultipartUpload\"\n ],\n \"Resource\": \"arn:aws:s3:::ctorm-dev-scratch/cumulus-granules/*\"\n },\n {\n \"Sid\": \"ListDestinationPrefix\",\n \"Effect\": \"Allow\",\n \"Action\": \"s3:ListBucket\",\n \"Resource\": \"arn:aws:s3:::ctorm-dev-scratch\",\n \"Condition\": {\n \"StringLike\": {\n \"s3:prefix\": \"cumulus-granules/*\"\n }\n }\n }\n ]\n}",
254-
"minified_json": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"UploadExtractedGranules\",\"Effect\":\"Allow\",\"Action\":[\"s3:PutObject\",\"s3:AbortMultipartUpload\"],\"Resource\":\"arn:aws:s3:::ctorm-dev-scratch/cumulus-granules/*\"},{\"Sid\":\"ListDestinationPrefix\",\"Effect\":\"Allow\",\"Action\":\"s3:ListBucket\",\"Resource\":\"arn:aws:s3:::ctorm-dev-scratch\",\"Condition\":{\"StringLike\":{\"s3:prefix\":\"cumulus-granules/*\"}}}]}",
252+
"id": "3026717548",
253+
"json": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Sid\": \"UploadExtractedGranules\",\n \"Effect\": \"Allow\",\n \"Action\": [\n \"s3:PutObject\",\n \"s3:GetObject\",\n \"s3:AbortMultipartUpload\"\n ],\n \"Resource\": \"arn:aws:s3:::ctorm-dev-scratch/cumulus-granules/*\"\n },\n {\n \"Sid\": \"ListDestinationPrefix\",\n \"Effect\": \"Allow\",\n \"Action\": \"s3:ListBucket\",\n \"Resource\": \"arn:aws:s3:::ctorm-dev-scratch\",\n \"Condition\": {\n \"StringLike\": {\n \"s3:prefix\": \"cumulus-granules/*\"\n }\n }\n }\n ]\n}",
254+
"minified_json": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"UploadExtractedGranules\",\"Effect\":\"Allow\",\"Action\":[\"s3:PutObject\",\"s3:GetObject\",\"s3:AbortMultipartUpload\"],\"Resource\":\"arn:aws:s3:::ctorm-dev-scratch/cumulus-granules/*\"},{\"Sid\":\"ListDestinationPrefix\",\"Effect\":\"Allow\",\"Action\":\"s3:ListBucket\",\"Resource\":\"arn:aws:s3:::ctorm-dev-scratch\",\"Condition\":{\"StringLike\":{\"s3:prefix\":\"cumulus-granules/*\"}}}]}",
255255
"override_json": null,
256256
"override_policy_documents": null,
257257
"policy_id": null,
@@ -261,6 +261,7 @@
261261
{
262262
"actions": [
263263
"s3:AbortMultipartUpload",
264+
"s3:GetObject",
264265
"s3:PutObject"
265266
],
266267
"condition": [],
@@ -676,7 +677,7 @@
676677
"type": "S"
677678
}
678679
],
679-
"billing_mode": "PAY_PER_REQUEST",
680+
"billing_mode": "PROVISIONED",
680681
"deletion_protection_enabled": false,
681682
"global_secondary_index": [
682683
{
@@ -686,8 +687,8 @@
686687
"on_demand_throughput": [],
687688
"projection_type": "ALL",
688689
"range_key": "gsi1sk",
689-
"read_capacity": 0,
690-
"write_capacity": 0
690+
"read_capacity": 5000,
691+
"write_capacity": 5
691692
}
692693
],
693694
"hash_key": "pk",
@@ -703,7 +704,7 @@
703704
}
704705
],
705706
"range_key": "sk",
706-
"read_capacity": 0,
707+
"read_capacity": 5000,
707708
"replica": [],
708709
"restore_date_time": null,
709710
"restore_source_name": null,
@@ -715,7 +716,7 @@
715716
"stream_label": "",
716717
"stream_view_type": "",
717718
"table_class": "STANDARD",
718-
"tags": {},
719+
"tags": null,
719720
"tags_all": {},
720721
"timeouts": null,
721722
"ttl": [
@@ -724,7 +725,7 @@
724725
"enabled": false
725726
}
726727
],
727-
"write_capacity": 0
728+
"write_capacity": 5
728729
},
729730
"sensitive_attributes": [],
730731
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxODAwMDAwMDAwMDAwLCJkZWxldGUiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjozNjAwMDAwMDAwMDAwfSwic2NoZW1hX3ZlcnNpb24iOiIxIn0="
@@ -792,7 +793,7 @@
792793
"inline_policy": [
793794
{
794795
"name": "ctorm-dev-cumulus-db-md-extract-upload",
795-
"policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Action\":[\"s3:PutObject\",\"s3:AbortMultipartUpload\"],\"Effect\":\"Allow\",\"Resource\":\"arn:aws:s3:::ctorm-dev-scratch/cumulus-granules/*\",\"Sid\":\"UploadExtractedGranules\"},{\"Action\":\"s3:ListBucket\",\"Condition\":{\"StringLike\":{\"s3:prefix\":\"cumulus-granules/*\"}},\"Effect\":\"Allow\",\"Resource\":\"arn:aws:s3:::ctorm-dev-scratch\",\"Sid\":\"ListDestinationPrefix\"}]}"
796+
"policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Action\":[\"s3:PutObject\",\"s3:GetObject\",\"s3:AbortMultipartUpload\"],\"Effect\":\"Allow\",\"Resource\":\"arn:aws:s3:::ctorm-dev-scratch/cumulus-granules/*\",\"Sid\":\"UploadExtractedGranules\"},{\"Action\":\"s3:ListBucket\",\"Condition\":{\"StringLike\":{\"s3:prefix\":\"cumulus-granules/*\"}},\"Effect\":\"Allow\",\"Resource\":\"arn:aws:s3:::ctorm-dev-scratch\",\"Sid\":\"ListDestinationPrefix\"}]}"
796797
}
797798
],
798799
"managed_policy_arns": [],
@@ -915,7 +916,7 @@
915916
"id": "ctorm-dev-cumulus-db-md-extract-upload:ctorm-dev-cumulus-db-md-extract-upload",
916917
"name": "ctorm-dev-cumulus-db-md-extract-upload",
917918
"name_prefix": "",
918-
"policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Action\":[\"s3:PutObject\",\"s3:AbortMultipartUpload\"],\"Effect\":\"Allow\",\"Resource\":\"arn:aws:s3:::ctorm-dev-scratch/cumulus-granules/*\",\"Sid\":\"UploadExtractedGranules\"},{\"Action\":\"s3:ListBucket\",\"Condition\":{\"StringLike\":{\"s3:prefix\":\"cumulus-granules/*\"}},\"Effect\":\"Allow\",\"Resource\":\"arn:aws:s3:::ctorm-dev-scratch\",\"Sid\":\"ListDestinationPrefix\"}]}",
919+
"policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Action\":[\"s3:PutObject\",\"s3:GetObject\",\"s3:AbortMultipartUpload\"],\"Effect\":\"Allow\",\"Resource\":\"arn:aws:s3:::ctorm-dev-scratch/cumulus-granules/*\",\"Sid\":\"UploadExtractedGranules\"},{\"Action\":\"s3:ListBucket\",\"Condition\":{\"StringLike\":{\"s3:prefix\":\"cumulus-granules/*\"}},\"Effect\":\"Allow\",\"Resource\":\"arn:aws:s3:::ctorm-dev-scratch\",\"Sid\":\"ListDestinationPrefix\"}]}",
919920
"role": "ctorm-dev-cumulus-db-md-extract-upload"
920921
},
921922
"sensitive_attributes": [],
@@ -1194,7 +1195,7 @@
11941195
"content_encoding": "",
11951196
"content_language": "",
11961197
"content_type": "application/octet-stream",
1197-
"etag": "10648403b2277ad95dd6324dd58521c9",
1198+
"etag": "66541e163cc3aaff54beddc162ad3aca",
11981199
"force_destroy": false,
11991200
"id": "codebuild/granule-md-db-loader.zip",
12001201
"key": "codebuild/granule-md-db-loader.zip",
@@ -1206,7 +1207,7 @@
12061207
"override_provider": [],
12071208
"server_side_encryption": "AES256",
12081209
"source": "./.terraform/granule-md-db-loader.zip",
1209-
"source_hash": "qNJKWp7fS4ASgrj5WdfgpTyLErnAm7Wx5K2yrPD0mww=",
1210+
"source_hash": "k194U724Vh6mbvti7qO0mrH4uDfFUqoOAgSUtY8zmW0=",
12101211
"storage_class": "STANDARD",
12111212
"tags": {},
12121213
"tags_all": {},

0 commit comments

Comments
 (0)