用于 AWS Fargate 到 Amazon SQS 集成的 CDK 构造
项目描述
aws-fargate-sqs 模块
---所有类都在积极开发中,并且在任何未来版本中都会进行非向后兼容的更改或删除。这些不受语义版本控制模型的约束。这意味着虽然您可以使用它们,但在升级到此软件包的较新版本时可能需要更新源代码。
| 参考文档: | https://docs.aws.amazon.com/solutions/latest/constructs/ |
|---|
| 语 | 包裹 |
|---|---|
aws_solutions_constructs.aws_fargate_sqs |
|
@aws-solutions-constructs/aws-fargate-sqs |
|
software.amazon.awsconstructs.services.fargatesqs |
概述
此 AWS 解决方案构造实现了可写入 Amazon SQS 队列的 AWS Fargate 服务
这是一个最小的可部署模式定义:
打字稿
import { Construct } from 'constructs';
import { Stack, StackProps } from 'aws-cdk-lib';
import { FargateToSqs, FargateToSqsProps } from '@aws-solutions-constructs/aws-fargate-sqs';
const constructProps: FargateToSqsProps = {
publicApi: true,
ecrRepositoryArn: "arn:aws:ecr:us-east-1:123456789012:repository/your-ecr-repo"
};
new FargateToSqs(this, 'test-construct', constructProps);
Python
from aws_solutions_constructs.aws_fargate_sqs import FargateToSqs, FargateToSqsProps
from aws_cdk import (
Stack
)
from constructs import Construct
FargateToSqs(self, 'test_construct',
public_api=True,
ecr_repository_arn="arn:aws:ecr:us-east-1:123456789012:repository/your-ecr-repo")
爪哇
import software.constructs.Construct;
import software.amazon.awscdk.Stack;
import software.amazon.awscdk.StackProps;
import software.amazon.awsconstructs.services.fargatesqs.*;
new FargateToSqs(this, "test_construct", new FargateToSqsProps.Builder()
.publicApi(true)
.ecrRepositoryArn("arn:aws:ecr:us-east-1:123456789012:repository/your-ecr-repo")
.build());
模式构造道具
| 姓名 | 类型 | 描述 |
|---|---|---|
| 公共API | 布尔值 | 构造是部署私有 API 还是公共 API。这对 VPC 有影响。 |
| vpc 道具? | ec2.VpcProps | 构造将创建的 VPC 的可选自定义属性。此 VPC 将由构造创建的任何私有托管区域使用(这就是 loadBalancerProps 和 privateHostedZoneProps 不能包含 VPC 的原因)。同时提供 this 和 existingVpc 是错误的。 |
| 现有的Vpc? | ec2.IVpc | 要在其中部署构造的现有 VPC。同时提供 this 和 vpcProps 是错误的。如果客户端提供现有的负载均衡器和/或现有的私有托管区域,则这些构造必须存在于此 VPC 中。 |
| 集群道具? | ecs.ClusterProps | 用于创建新 ECS 集群的可选属性。要提供现有集群,请使用 fargateServiceProps 的集群属性。 |
| ecrRepositoryArn? | 细绳 | 包含用于生成容器的图像的 ECR 存储库的 arn。必须提供 this 或 containerDefinitionProps 的 image 属性。格式:arn:aws:ecr: region : account number :repository/ Repository Name |
| ecrImage 版本? | 细绳 | 存储库中要使用的映像版本。默认为“最新” |
| 容器定义道具? | [ecs.ContainerDefinitionProps | 任何]( https://docs.aws.amazon.com/cdk/api/v1/docs/@aws-cdk_aws-ecs.ContainerDefinitionProps.html ) |
| fargateTaskDefinitionProps? | [ecs.FargateTaskDefinitionProps | 任何]( https://docs.aws.amazon.com/cdk/api/v1/docs/@aws-cdk_aws-ecs.FargateTaskDefinitionProps.html ) |
| fargateServiceProps? | [ecs.FargateServiceProps | 任何]( https://docs.aws.amazon.com/cdk/api/v1/docs/@aws-cdk_aws-ecs.FargateServiceProps.html ) |
| 现有的FargateServiceObject? | ecs.FargateService | Fargate 服务已实例化(可能由另一个解决方案构造)。如果指定,则不能提供定义新服务的 props,包括:ecrImageVersion、containerDefinitionProps、fargateTaskDefinitionProps、ecrRepositoryArn、fargateServiceProps、clusterProps |
| 现有的ContainerDefinitionObject? | ecs.ContainerDefinition | 已作为 Fargate 服务的一部分实例化的容器定义。这必须是现有FargateServiceObject 中的容器 |
| 现有队列对象? | sqs.队列 | 要使用的可选的现有 SQS 队列,而不是默认队列。同时提供 this 和 queueProps 会导致错误。 |
| 队列道具? | sqs.QueueProps | 可选的用户提供的属性,用于覆盖 SQS 队列的默认属性。 |
| 部署死信队列? | 布尔值 | 是否创建辅助队列用作死信队列。默认为true. |
| 死信队列道具? | sqs.QueueProps | 可选的用户提供的道具来覆盖死信队列的默认道具。仅在deployDeadLetterQueue属性设置为 true 时使用。 |
| 最大接收计数? | 整数 | 消息在被移动到死信队列之前可以不成功地出列的次数。默认为15. |
| queueUrlEnvironmentVariableName? | 细绳 | 容器环境变量的可选名称设置为队列的 URL。默认值:SQS_QUEUE_URL |
| queueArnEnvironmentVariableName? | 细绳 | 容器环境变量的可选名称设置为队列的 arn。默认值:SQS_QUEUE_ARN |
| 队列权限? | string[] |
授予 Fargate 服务的可选队列权限。可以指定以下一项或多项:Read, Write. 默认为Write |
模式属性
| 姓名 | 类型 | 描述 |
|---|---|---|
| 个人电脑 | ec2.IVpc | 构造使用的 VPC(无论是由构造创建还是由客户端提供) |
| 服务 | ecs.FargateService | 此构造使用的 AWS Fargate 服务(无论是由此构造创建还是在初始化时传递给此构造) |
| 容器 | ecs.ContainerDefinition | 与服务属性中的 AWS Fargate 服务关联的容器。 |
| sqs队列 | sqs.队列 | 返回由模式创建的 SQS 队列的实例。 |
| 死信队列? | sqs.队列 | 返回由模式创建的死信队列的实例(如果已部署)。 |
默认设置
没有任何覆盖的 Construct 的开箱即用实现将设置以下默认值:
AWS Fargate 服务
-
设置 AWS Fargate 服务
-
使用现有服务(如果提供)
-
如果未提供,则创建新服务。
- 服务将在隔离子网(如果可用)中运行,然后在私有子网(如果可用)中运行,最后在公共子网中运行
-
使用 SQS 队列的名称将环境变量添加到容器中
-
向容器 IAM 角色添加权限,允许其发布到 SQS 队列
-
亚马逊 SQS 队列
-
设置 Amazon SQS 队列
- 如果提供了一个现有队列,则使用现有队列,否则创建一个新队列
-
将接口端点添加到 SQS 的 VPC(该服务默认在独立子网或私有子网中运行)
建筑学
© 版权所有 2022 Amazon.com, Inc. 或其附属公司。版权所有。