|
1 | 1 | import re
|
2 |
| -from easyecs.model.ecs import EcsFileSecretModelV2 |
| 2 | +from easyecs.model.ecs import EcsFileSecretModel, EcsFileSecretModelV2 |
3 | 3 |
|
4 | 4 |
|
5 | 5 | def create_task_definition(
|
@@ -121,13 +121,13 @@ def extract_container_config(stack, container_definition, log_configuration, run
|
121 | 121 | command = ["sleep", "infinity"]
|
122 | 122 |
|
123 | 123 | environment = {}
|
124 |
| - if isinstance(container_definition.env, List): |
| 124 | + if isinstance(container_definition.env, list): |
125 | 125 | environment = {
|
126 | 126 | env_definition.name: env_definition.value
|
127 | 127 | for env_definition in container_definition.env
|
128 | 128 | if env_definition.active
|
129 | 129 | }
|
130 |
| - elif isinstance(container_definition.env, Dict): |
| 130 | + elif isinstance(container_definition.env, dict): |
131 | 131 | environment = container_definition.env
|
132 | 132 |
|
133 | 133 | secrets = extract_secrets(stack, container_definition.secrets, name)
|
@@ -173,16 +173,22 @@ def extract_secrets(stack, secret_definitions, container_name):
|
173 | 173 | ecs_secret = ECSSecret.from_secrets_manager(secret, secret_definition.field)
|
174 | 174 | secrets[secret_name] = ecs_secret
|
175 | 175 | elif isinstance(secret_definition, EcsFileSecretModelV2):
|
176 |
| - arn_fields = dict(re.finditer(r"^arn:aws:secretsmanager:(?P<region_name>[a-z0-9-]+):(?P<account_id>\d{12}):secret:(?P<secret_name>[^:]+)(?::(?P<field>[^:]*))?(?::([^:]*))?(?::([^:]*))?$", secret_definition.valueFrom)) |
| 176 | + arn_fields = list( |
| 177 | + re.finditer( |
| 178 | + r"^^(?P<secret_complete_arn>arn:aws:secretsmanager:(?P<region_name>[a-z0-9-]+):(?P<account_id>\d{12}):secret:(?P<secret_name>[^:]+))(?::(?P<field>[^:]*))?(?::([^:]*))?(?::([^:]*))?$", # noqa |
| 179 | + secret_definition.valueFrom, |
| 180 | + ) |
| 181 | + ) |
177 | 182 | if not arn_fields:
|
178 | 183 | raise ValueError(f"Invalid ARN format: {secret_definition.valueFrom}")
|
179 |
| - field = arn_fields[0].group_dict()["field"] |
180 |
| - import pdb; pdb.set_trace() |
| 184 | + secret_complete_arn = arn_fields[0].groupdict()["secret_complete_arn"] |
| 185 | + field = arn_fields[0].groupdict()["field"] |
| 186 | + print(secret_definition.valueFrom) |
181 | 187 | secret_name = secret_definition.name
|
182 | 188 | secret = Secret.from_secret_complete_arn(
|
183 |
| - stack, f"{secret_name}_{container_name}", secret_definition.valueFrom |
| 189 | + stack, f"{secret_name}_{container_name}", secret_complete_arn |
184 | 190 | )
|
185 |
| - ecs_secret = ECSSecret.from_secrets_manager(secret) |
| 191 | + ecs_secret = ECSSecret.from_secrets_manager(secret, field=field) |
186 | 192 | secrets[secret_name] = ecs_secret
|
187 | 193 | else:
|
188 | 194 | raise Exception("Unsupported secret type")
|
|
0 commit comments