Name | prefect-aws JSON |
Version |
0.5.16
JSON |
| download |
home_page | None |
Summary | Prefect integrations for interacting with Amazon Web Services. |
upload_time | 2025-08-27 14:22:41 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.9 |
license | Apache License 2.0 |
keywords |
prefect
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# `prefect-aws`
<p align="center">
<a href="https://pypi.python.org/pypi/prefect-aws/" alt="PyPI version">
<img alt="PyPI" src="https://img.shields.io/pypi/v/prefect-aws?color=26272B&labelColor=090422"></a>
<a href="https://pepy.tech/badge/prefect-aws/" alt="Downloads">
<img src="https://img.shields.io/pypi/dm/prefect-aws?color=26272B&labelColor=090422" /></a>
</p>
## Welcome
Build production-ready data workflows that seamlessly integrate with AWS services. `prefect-aws` provides battle-tested blocks, tasks, and infrastructure integrations for AWS, featuring support for ECS, S3, Secrets Manager, Lambda, Batch, and Glue.
## Why use prefect-aws?
While you could integrate with AWS services directly using boto3, `prefect-aws` offers significant advantages:
- **Production-ready integrations**: Pre-built, tested components that handle common AWS patterns and edge cases
- **Unified credential management**: Secure, centralized authentication that works consistently across all AWS services
- **Built-in observability**: Automatic logging, monitoring, and state tracking for all AWS operations in your workflows
- **Infrastructure as code**: Deploy and scale your workflows on AWS ECS with minimal configuration
- **Error handling & retries**: Robust error handling with intelligent retry logic for transient AWS service issues
- **Type safety**: Full type hints and validation for all AWS service interactions
## Getting started
### Prerequisites
- An [AWS account](https://aws.amazon.com/account/) and the necessary permissions to access desired services.
### Installation
Install `prefect-aws` as a dependency of Prefect. If you don't already have `prefect` installed, it will install the newest version of `prefect` as well.
```bash
pip install "prefect[aws]"
```
## Blocks setup
### Credentials
Most AWS services require an authenticated session.
Prefect makes it simple to provide credentials via AWS Credentials blocks.
Steps:
1. Refer to the [AWS Configuration documentation](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-creds) to retrieve your access key ID and secret access key.
1. Copy the access key ID and secret access key.
1. Create an `AwsCredentials` block in the Prefect UI or use a Python script like the one below.
```python
from prefect_aws import AwsCredentials
AwsCredentials(
aws_access_key_id="PLACEHOLDER",
aws_secret_access_key="PLACEHOLDER",
aws_session_token=None, # replace this with token if necessary
region_name="us-east-2"
).save("BLOCK-NAME-PLACEHOLDER")
```
Prefect uses the Boto3 library under the hood.
To find credentials for authentication, any data not provided to the block are sourced at runtime in the order shown in the [Boto3 docs](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html#configuring-credentials).
Prefect creates the session object using the values in the block and then, any missing values follow the sequence in the Boto3 docs.
### S3
Create a block for reading and writing files to S3.
```python
from prefect_aws import AwsCredentials
from prefect_aws.s3 import S3Bucket
S3Bucket(
bucket_name="BUCKET-NAME-PLACEHOLDER",
credentials=aws_credentials
).save("S3-BLOCK-NAME-PLACEHOLDER")
```
### Lambda
Invoke AWS Lambdas, synchronously or asynchronously.
```python
from prefect_aws.lambda_function import LambdaFunction
from prefect_aws.credentials import AwsCredentials
LambdaFunction(
function_name="test_lambda_function",
aws_credentials=credentials,
).save("LAMBDA-BLOCK-NAME-PLACEHOLDER")
```
### Secret Manager
Create a block to read, write, and delete AWS Secret Manager secrets.
```python
from prefect_aws import AwsCredentials
from prefect_aws.secrets_manager import AwsSecret
AwsSecret(
secret_name="test_secret_name",
aws_credentials=credentials,
).save("AWS-SECRET-BLOCK-NAME-PLACEHOLDER")
```
## Scale workflows with AWS infrastructure
### ECS (Elastic Container Service)
Deploy and scale your Prefect workflows on [AWS ECS](https://aws.amazon.com/ecs/) for production workloads. `prefect-aws` provides:
- **ECS workers**: Long-running workers for hybrid deployments with full control over execution environment
- **Auto-scaling**: Dynamic resource allocation based on workflow demands
- **Cost optimization**: Pay only for compute resources when workflows are running
See the [ECS worker deployment guide](/integrations/prefect-aws/ecs_guide) for a step-by-step walkthrough of deploying production-ready workers to your ECS cluster.
### Docker Images
Pre-built Docker images with `prefect-aws` are available for simplified deployment:
```bash
docker pull prefecthq/prefect-aws:latest
```
#### Available Tags
Image tags have the following format:
- `prefecthq/prefect-aws:latest` - Latest stable release with Python 3.12
- `prefecthq/prefect-aws:latest-python3.11` - Latest stable with Python 3.11
- `prefecthq/prefect-aws:0.5.9-python3.12` - Specific prefect-aws version with Python 3.12
- `prefecthq/prefect-aws:0.5.9-python3.12-prefect3.4.9` - Full version specification
#### Usage Examples
**Running an ECS worker:**
```bash
docker run -d \
--name prefect-ecs-worker \
-e PREFECT_API_URL=https://api.prefect.cloud/api/accounts/your-account/workspaces/your-workspace \
-e PREFECT_API_KEY=your-api-key \
prefecthq/prefect-aws:latest \
prefect worker start --pool ecs-pool
```
**Local development:**
```bash
docker run -it --rm \
-v $(pwd):/opt/prefect \
prefecthq/prefect-aws:latest \
python your_flow.py
```
## Supported AWS services
`prefect-aws` provides comprehensive integrations for key AWS services:
| Service | Integration Type | Use Cases |
|---------|-----------------|-----------|
| **S3** | `S3Bucket` block | File storage, data lake operations, deployment storage |
| **Secrets Manager** | `AwsSecret` block | Secure credential storage, API key management |
| **Lambda** | `LambdaFunction` block | Serverless function execution, event-driven processing |
| **Glue** | `GlueJobBlock` block | ETL operations, data transformation pipelines |
| **ECS** | `ECSWorker` infrastructure | Container orchestration, scalable compute workloads |
| **Batch** | `batch_submit` task | High-throughput computing, batch job processing |
**Integration types explained:**
- **Blocks**: Reusable configuration objects that can be saved and shared across flows
- **Tasks**: Functions decorated with `@task` for direct use in flows
- **Workers**: Infrastructure components for running flows on AWS compute services
Each integration includes full support for AWS IAM roles, cross-region operations, and Prefect's built-in retry and error handling mechanisms.
## Examples
### Read and write files to AWS S3
Upload a file to an AWS S3 bucket and download the same file under a different filename.
The following code assumes that the bucket already exists:
```python
from pathlib import Path
from prefect import flow
from prefect_aws import AwsCredentials, S3Bucket
@flow
def s3_flow():
# create a dummy file to upload
file_path = Path("test-example.txt")
file_path.write_text("Hello, Prefect!")
aws_credentials = AwsCredentials.load("BLOCK-NAME-PLACEHOLDER")
s3_bucket = S3Bucket(
bucket_name="BUCKET-NAME-PLACEHOLDER",
credentials=aws_credentials
)
s3_bucket_path = s3_bucket.upload_from_path(file_path)
downloaded_file_path = s3_bucket.download_object_to_path(
s3_bucket_path, "downloaded-test-example.txt"
)
return downloaded_file_path.read_text()
if __name__ == "__main__":
s3_flow()
```
### Access secrets with AWS Secrets Manager
Write a secret to AWS Secrets Manager, read the secret data, delete the secret, and return the secret data.
```python
from prefect import flow
from prefect_aws import AwsCredentials, AwsSecret
@flow
def secrets_manager_flow():
aws_credentials = AwsCredentials.load("BLOCK-NAME-PLACEHOLDER")
aws_secret = AwsSecret(secret_name="test-example", aws_credentials=aws_credentials)
aws_secret.write_secret(secret_data=b"Hello, Prefect!")
secret_data = aws_secret.read_secret()
aws_secret.delete_secret()
return secret_data
if __name__ == "__main__":
secrets_manager_flow()
```
### Invoke lambdas
```python
from prefect_aws.lambda_function import LambdaFunction
from prefect_aws.credentials import AwsCredentials
credentials = AwsCredentials()
lambda_function = LambdaFunction(
function_name="test_lambda_function",
aws_credentials=credentials,
)
response = lambda_function.invoke(
payload={"foo": "bar"},
invocation_type="RequestResponse",
)
response["Payload"].read()
```
### Submit AWS Glue jobs
```python
from prefect import flow
from prefect_aws import AwsCredentials
from prefect_aws.glue_job import GlueJobBlock
@flow
def example_run_glue_job():
aws_credentials = AwsCredentials(
aws_access_key_id="your_access_key_id",
aws_secret_access_key="your_secret_access_key"
)
glue_job_run = GlueJobBlock(
job_name="your_glue_job_name",
arguments={"--YOUR_EXTRA_ARGUMENT": "YOUR_EXTRA_ARGUMENT_VALUE"},
).trigger()
return glue_job_run.wait_for_completion()
if __name__ == "__main__":
example_run_glue_job()
```
### Submit AWS Batch jobs
```python
from prefect import flow
from prefect_aws import AwsCredentials
from prefect_aws.batch import batch_submit
@flow
def example_batch_submit_flow():
aws_credentials = AwsCredentials(
aws_access_key_id="access_key_id",
aws_secret_access_key="secret_access_key"
)
job_id = batch_submit(
"job_name",
"job_queue",
"job_definition",
aws_credentials
)
return job_id
if __name__ == "__main__":
example_batch_submit_flow()
```
## Resources
### Documentation
- **[prefect-aws SDK Reference](https://reference.prefect.io/prefect_aws/)** - Complete API documentation for all blocks and tasks
- **[ECS Deployment Guide](/integrations/prefect-aws/ecs_guide)** - Step-by-step guide for deploying workflows on ECS
- **[Prefect Secrets Management](/v3/develop/secrets)** - Using AWS credentials with third-party services
### AWS Resources
- **[AWS Documentation](https://docs.aws.amazon.com/)** - Official AWS service documentation
- **[Boto3 Documentation](https://boto3.amazonaws.com/v1/documentation/api/latest/index.html)** - Python SDK reference for AWS services
- **[AWS IAM Best Practices](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)** - Security recommendations for AWS access
### Community & Support
- **[Prefect Slack Community](https://prefect.io/slack)** - Get help and share experiences
- **[GitHub Issues](https://github.com/PrefectHQ/prefect/issues)** - Report bugs and request features
Raw data
{
"_id": null,
"home_page": null,
"name": "prefect-aws",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "prefect",
"author": null,
"author_email": "\"Prefect Technologies, Inc.\" <help@prefect.io>",
"download_url": "https://files.pythonhosted.org/packages/b4/5a/493fdbd95a1c2832556caec88478abb2776d3973c8f963dd3ab2b36e144c/prefect_aws-0.5.16.tar.gz",
"platform": null,
"description": "# `prefect-aws`\n\n<p align=\"center\">\n <a href=\"https://pypi.python.org/pypi/prefect-aws/\" alt=\"PyPI version\">\n <img alt=\"PyPI\" src=\"https://img.shields.io/pypi/v/prefect-aws?color=26272B&labelColor=090422\"></a>\n <a href=\"https://pepy.tech/badge/prefect-aws/\" alt=\"Downloads\">\n <img src=\"https://img.shields.io/pypi/dm/prefect-aws?color=26272B&labelColor=090422\" /></a>\n</p>\n\n## Welcome\n\nBuild production-ready data workflows that seamlessly integrate with AWS services. `prefect-aws` provides battle-tested blocks, tasks, and infrastructure integrations for AWS, featuring support for ECS, S3, Secrets Manager, Lambda, Batch, and Glue.\n\n## Why use prefect-aws?\n\nWhile you could integrate with AWS services directly using boto3, `prefect-aws` offers significant advantages:\n\n- **Production-ready integrations**: Pre-built, tested components that handle common AWS patterns and edge cases\n- **Unified credential management**: Secure, centralized authentication that works consistently across all AWS services\n- **Built-in observability**: Automatic logging, monitoring, and state tracking for all AWS operations in your workflows\n- **Infrastructure as code**: Deploy and scale your workflows on AWS ECS with minimal configuration\n- **Error handling & retries**: Robust error handling with intelligent retry logic for transient AWS service issues\n- **Type safety**: Full type hints and validation for all AWS service interactions\n\n## Getting started\n\n### Prerequisites\n\n- An [AWS account](https://aws.amazon.com/account/) and the necessary permissions to access desired services.\n\n### Installation\n\nInstall `prefect-aws` as a dependency of Prefect. If you don't already have `prefect` installed, it will install the newest version of `prefect` as well.\n\n```bash\npip install \"prefect[aws]\"\n```\n\n## Blocks setup\n\n### Credentials\n\nMost AWS services require an authenticated session.\nPrefect makes it simple to provide credentials via AWS Credentials blocks.\n\nSteps:\n\n1. Refer to the [AWS Configuration documentation](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-creds) to retrieve your access key ID and secret access key.\n1. Copy the access key ID and secret access key.\n1. Create an `AwsCredentials` block in the Prefect UI or use a Python script like the one below.\n\n```python\nfrom prefect_aws import AwsCredentials\n\n\nAwsCredentials(\n aws_access_key_id=\"PLACEHOLDER\",\n aws_secret_access_key=\"PLACEHOLDER\",\n aws_session_token=None, # replace this with token if necessary\n region_name=\"us-east-2\"\n).save(\"BLOCK-NAME-PLACEHOLDER\")\n```\n\nPrefect uses the Boto3 library under the hood.\nTo find credentials for authentication, any data not provided to the block are sourced at runtime in the order shown in the [Boto3 docs](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html#configuring-credentials).\nPrefect creates the session object using the values in the block and then, any missing values follow the sequence in the Boto3 docs.\n\n### S3\n\nCreate a block for reading and writing files to S3.\n\n```python\nfrom prefect_aws import AwsCredentials\nfrom prefect_aws.s3 import S3Bucket\n\nS3Bucket(\n bucket_name=\"BUCKET-NAME-PLACEHOLDER\",\n credentials=aws_credentials\n).save(\"S3-BLOCK-NAME-PLACEHOLDER\")\n```\n\n### Lambda\nInvoke AWS Lambdas, synchronously or asynchronously.\n\n```python\nfrom prefect_aws.lambda_function import LambdaFunction\nfrom prefect_aws.credentials import AwsCredentials\n\nLambdaFunction(\n function_name=\"test_lambda_function\",\n aws_credentials=credentials,\n).save(\"LAMBDA-BLOCK-NAME-PLACEHOLDER\")\n```\n\n### Secret Manager\nCreate a block to read, write, and delete AWS Secret Manager secrets.\n\n```python\nfrom prefect_aws import AwsCredentials\nfrom prefect_aws.secrets_manager import AwsSecret\n\nAwsSecret(\n secret_name=\"test_secret_name\",\n aws_credentials=credentials,\n).save(\"AWS-SECRET-BLOCK-NAME-PLACEHOLDER\")\n\n```\n\n\n## Scale workflows with AWS infrastructure\n\n### ECS (Elastic Container Service)\n\nDeploy and scale your Prefect workflows on [AWS ECS](https://aws.amazon.com/ecs/) for production workloads. `prefect-aws` provides:\n\n- **ECS workers**: Long-running workers for hybrid deployments with full control over execution environment\n- **Auto-scaling**: Dynamic resource allocation based on workflow demands\n- **Cost optimization**: Pay only for compute resources when workflows are running\n\nSee the [ECS worker deployment guide](/integrations/prefect-aws/ecs_guide) for a step-by-step walkthrough of deploying production-ready workers to your ECS cluster.\n\n### Docker Images\n\nPre-built Docker images with `prefect-aws` are available for simplified deployment:\n\n```bash\ndocker pull prefecthq/prefect-aws:latest\n```\n\n#### Available Tags\n\nImage tags have the following format:\n- `prefecthq/prefect-aws:latest` - Latest stable release with Python 3.12\n- `prefecthq/prefect-aws:latest-python3.11` - Latest stable with Python 3.11\n- `prefecthq/prefect-aws:0.5.9-python3.12` - Specific prefect-aws version with Python 3.12\n- `prefecthq/prefect-aws:0.5.9-python3.12-prefect3.4.9` - Full version specification\n\n#### Usage Examples\n\n**Running an ECS worker:**\n```bash\ndocker run -d \\\n --name prefect-ecs-worker \\\n -e PREFECT_API_URL=https://api.prefect.cloud/api/accounts/your-account/workspaces/your-workspace \\\n -e PREFECT_API_KEY=your-api-key \\\n prefecthq/prefect-aws:latest \\\n prefect worker start --pool ecs-pool\n```\n\n**Local development:**\n```bash\ndocker run -it --rm \\\n -v $(pwd):/opt/prefect \\\n prefecthq/prefect-aws:latest \\\n python your_flow.py\n```\n\n## Supported AWS services\n\n`prefect-aws` provides comprehensive integrations for key AWS services:\n\n| Service | Integration Type | Use Cases |\n|---------|-----------------|-----------|\n| **S3** | `S3Bucket` block | File storage, data lake operations, deployment storage |\n| **Secrets Manager** | `AwsSecret` block | Secure credential storage, API key management |\n| **Lambda** | `LambdaFunction` block | Serverless function execution, event-driven processing |\n| **Glue** | `GlueJobBlock` block | ETL operations, data transformation pipelines |\n| **ECS** | `ECSWorker` infrastructure | Container orchestration, scalable compute workloads |\n| **Batch** | `batch_submit` task | High-throughput computing, batch job processing |\n\n**Integration types explained:**\n- **Blocks**: Reusable configuration objects that can be saved and shared across flows\n- **Tasks**: Functions decorated with `@task` for direct use in flows\n- **Workers**: Infrastructure components for running flows on AWS compute services\n\nEach integration includes full support for AWS IAM roles, cross-region operations, and Prefect's built-in retry and error handling mechanisms.\n\n## Examples\n\n### Read and write files to AWS S3\n\nUpload a file to an AWS S3 bucket and download the same file under a different filename.\nThe following code assumes that the bucket already exists:\n\n```python\nfrom pathlib import Path\nfrom prefect import flow\nfrom prefect_aws import AwsCredentials, S3Bucket\n\n\n@flow\ndef s3_flow():\n # create a dummy file to upload\n file_path = Path(\"test-example.txt\")\n file_path.write_text(\"Hello, Prefect!\")\n\n aws_credentials = AwsCredentials.load(\"BLOCK-NAME-PLACEHOLDER\")\n s3_bucket = S3Bucket(\n bucket_name=\"BUCKET-NAME-PLACEHOLDER\",\n credentials=aws_credentials\n )\n\n s3_bucket_path = s3_bucket.upload_from_path(file_path)\n downloaded_file_path = s3_bucket.download_object_to_path(\n s3_bucket_path, \"downloaded-test-example.txt\"\n )\n return downloaded_file_path.read_text()\n\n\nif __name__ == \"__main__\":\n s3_flow()\n```\n\n### Access secrets with AWS Secrets Manager\n\nWrite a secret to AWS Secrets Manager, read the secret data, delete the secret, and return the secret data.\n\n```python\nfrom prefect import flow\nfrom prefect_aws import AwsCredentials, AwsSecret\n\n\n@flow\ndef secrets_manager_flow():\n aws_credentials = AwsCredentials.load(\"BLOCK-NAME-PLACEHOLDER\")\n aws_secret = AwsSecret(secret_name=\"test-example\", aws_credentials=aws_credentials)\n aws_secret.write_secret(secret_data=b\"Hello, Prefect!\")\n secret_data = aws_secret.read_secret()\n aws_secret.delete_secret()\n return secret_data\n\n\nif __name__ == \"__main__\":\n secrets_manager_flow()\n```\n\n### Invoke lambdas\n\n```python\nfrom prefect_aws.lambda_function import LambdaFunction\nfrom prefect_aws.credentials import AwsCredentials\n\ncredentials = AwsCredentials()\nlambda_function = LambdaFunction(\n function_name=\"test_lambda_function\",\n aws_credentials=credentials,\n)\nresponse = lambda_function.invoke(\n payload={\"foo\": \"bar\"},\n invocation_type=\"RequestResponse\",\n)\nresponse[\"Payload\"].read()\n```\n\n### Submit AWS Glue jobs\n\n```python\nfrom prefect import flow\nfrom prefect_aws import AwsCredentials\nfrom prefect_aws.glue_job import GlueJobBlock\n\n\n@flow\ndef example_run_glue_job():\n aws_credentials = AwsCredentials(\n aws_access_key_id=\"your_access_key_id\",\n aws_secret_access_key=\"your_secret_access_key\"\n )\n glue_job_run = GlueJobBlock(\n job_name=\"your_glue_job_name\",\n arguments={\"--YOUR_EXTRA_ARGUMENT\": \"YOUR_EXTRA_ARGUMENT_VALUE\"},\n ).trigger()\n\n return glue_job_run.wait_for_completion()\n\n\nif __name__ == \"__main__\":\n example_run_glue_job()\n```\n\n### Submit AWS Batch jobs\n\n```python\nfrom prefect import flow\nfrom prefect_aws import AwsCredentials\nfrom prefect_aws.batch import batch_submit\n\n\n@flow\ndef example_batch_submit_flow():\n aws_credentials = AwsCredentials(\n aws_access_key_id=\"access_key_id\",\n aws_secret_access_key=\"secret_access_key\"\n )\n job_id = batch_submit(\n \"job_name\",\n \"job_queue\",\n \"job_definition\",\n aws_credentials\n )\n return job_id\n\n\nif __name__ == \"__main__\":\n example_batch_submit_flow()\n```\n\n## Resources\n\n### Documentation\n- **[prefect-aws SDK Reference](https://reference.prefect.io/prefect_aws/)** - Complete API documentation for all blocks and tasks\n- **[ECS Deployment Guide](/integrations/prefect-aws/ecs_guide)** - Step-by-step guide for deploying workflows on ECS\n- **[Prefect Secrets Management](/v3/develop/secrets)** - Using AWS credentials with third-party services\n\n### AWS Resources\n- **[AWS Documentation](https://docs.aws.amazon.com/)** - Official AWS service documentation\n- **[Boto3 Documentation](https://boto3.amazonaws.com/v1/documentation/api/latest/index.html)** - Python SDK reference for AWS services\n- **[AWS IAM Best Practices](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)** - Security recommendations for AWS access\n\n### Community & Support\n- **[Prefect Slack Community](https://prefect.io/slack)** - Get help and share experiences\n- **[GitHub Issues](https://github.com/PrefectHQ/prefect/issues)** - Report bugs and request features\n",
"bugtrack_url": null,
"license": "Apache License 2.0",
"summary": "Prefect integrations for interacting with Amazon Web Services.",
"version": "0.5.16",
"project_urls": {
"Homepage": "https://github.com/PrefectHQ/prefect/tree/main/src/integrations/prefect-aws"
},
"split_keywords": [
"prefect"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "d49db6146f061b0da5e3a74abded8275b8a16f9f168d7a7dacf04c5515ee40c0",
"md5": "f203cb488d6d18a89dd7c14bf0d70bc6",
"sha256": "a62176b7d7c3dcdae35774a0ec68c2c72f984efac6e09f5148191ab5c2b1ca0c"
},
"downloads": -1,
"filename": "prefect_aws-0.5.16-py3-none-any.whl",
"has_sig": false,
"md5_digest": "f203cb488d6d18a89dd7c14bf0d70bc6",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 82913,
"upload_time": "2025-08-27T14:22:40",
"upload_time_iso_8601": "2025-08-27T14:22:40.255458Z",
"url": "https://files.pythonhosted.org/packages/d4/9d/b6146f061b0da5e3a74abded8275b8a16f9f168d7a7dacf04c5515ee40c0/prefect_aws-0.5.16-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b45a493fdbd95a1c2832556caec88478abb2776d3973c8f963dd3ab2b36e144c",
"md5": "114095014c81fdce68abd806300067b9",
"sha256": "ca8da239c0539bab1d402ae1583168888715d604047202ea8ae8a6481de3d6bf"
},
"downloads": -1,
"filename": "prefect_aws-0.5.16.tar.gz",
"has_sig": false,
"md5_digest": "114095014c81fdce68abd806300067b9",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 134175,
"upload_time": "2025-08-27T14:22:41",
"upload_time_iso_8601": "2025-08-27T14:22:41.683936Z",
"url": "https://files.pythonhosted.org/packages/b4/5a/493fdbd95a1c2832556caec88478abb2776d3973c8f963dd3ab2b36e144c/prefect_aws-0.5.16.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-27 14:22:41",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "PrefectHQ",
"github_project": "prefect",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "prefect-aws"
}