0
# ECR Integration
1
2
Interact with Amazon ECR (Elastic Container Registry) for container image management in containerized Dagster workflows.
3
4
## Capabilities
5
6
### ECR Public Resource
7
8
```python { .api }
9
class ECRPublicResource(ResourceWithBoto3Configuration):
10
"""
11
Resource for interacting with Amazon ECR Public.
12
"""
13
14
def get_authorization_token(self) -> Dict:
15
"""
16
Get authorization token for ECR Public.
17
18
Returns:
19
Dict: Authorization token and metadata
20
"""
21
22
def get_login_password(self) -> str:
23
"""
24
Get Docker login password for ECR Public.
25
26
Returns:
27
str: Docker login password
28
"""
29
30
def ecr_public_resource(**kwargs) -> ECRPublicResource: ...
31
```
32
33
### Testing Utilities
34
35
```python { .api }
36
class FakeECRPublicResource(ConfigurableResource):
37
"""
38
Mock ECR Public resource for testing.
39
"""
40
41
def fake_ecr_public_resource(**kwargs): ...
42
```
43
44
## Usage Examples
45
46
```python
47
from dagster import op, job, Definitions
48
from dagster_aws.ecr import ECRPublicResource
49
50
@op(required_resource_keys={"ecr"})
51
def pull_container_image(context):
52
ecr = context.resources.ecr
53
54
# Get authorization for ECR Public
55
token = ecr.get_authorization_token()
56
password = ecr.get_login_password()
57
58
# Use for Docker operations
59
context.log.info(f"Retrieved ECR authorization token")
60
61
return token
62
63
@job(
64
resource_defs={
65
"ecr": ECRPublicResource(region_name="us-east-1")
66
}
67
)
68
def container_job():
69
pull_container_image()
70
71
defs = Definitions(jobs=[container_job])
72
```