标签: aws-cdk

AWS CDK 是否在 CloudFormation 中创建默认堆栈名称?

AWS::StackName使用 CloudFormation 模板,CloudFormation 服务在应用模板之前要求提供堆栈名称 ( )。

使用AWS CDK,我们运行cdk synth创建cfn模板并cdk deploy基于该模板部署服务。

AWS CDK 是否在 Cloudformation 服务中创建默认堆栈名称?跑步后cdk deploy

aws-cloudformation aws-cdk

2
推荐指数
1
解决办法
4982
查看次数

在 CI 环境中运行 CDK 部署

通过本教程

运行时,cdk deploy它会要求部署权限。我假设这是因为本教程前面创建的 IAM 资源。我无法在 CI 环境中运行它,因为没有办法回答这个问题。看起来没有办法以非交互式方式运行它?

我在文档中也找不到任何内容?

aws-cdk

2
推荐指数
1
解决办法
807
查看次数

如何在 AWS CDK 中指定源安全组 ID?

您好,我正在研究 AWS CDK。我正在编写安全组模板。我可以在 Cloud 编队中编写它。现在我正在用 AWS CDK 编写它。我没有得到包含源安全组的任何示例。下面是我之前写的云形成模板。

Resources:
  MerchWebServicesSecurityGroup:
    Type: "AWS::EC2::SecurityGroup"
    Properties:
      Tags:
        - Key: "Name"
          Value: !Ref "AWS::StackName"
      GroupDescription: "EC2 Services Security Group"
      VpcId:
        Fn::ImportValue: "infra-vpc-base::VpcId"
      SecurityGroupIngress:
        - IpProtocol: tcp
          FromPort: "80"
          ToPort: "80"
          SourceSecurityGroupId: !Ref MerchWebServicesLoadBalancerSecurityGroup
        - IpProtocol: tcp
          FromPort: "443"
          ToPort: "443"
          SourceSecurityGroupId: !Ref MerchWebServicesLoadBalancerSecurityGroup
        - IpProtocol: tcp
          FromPort: 31000
          ToPort: 65535
          SourceSecurityGroupId: !Ref MerchWebServicesLoadBalancerSecurityGroup

  MerchWebServicesLoadBalancerSecurityGroup:
    Type: "AWS::EC2::SecurityGroup"
    Properties:
      Tags:
        -
          Key: "Name"
          Value: !Ref "AWS::StackName"
      GroupDescription: "MerchWebServices ALB Group"
      VpcId:
        Fn::ImportValue: "infra-vpc-base::VpcId"
      SecurityGroupIngress:
        - IpProtocol: …
Run Code Online (Sandbox Code Playgroud)

python amazon-web-services aws-cloudformation aws-cdk

2
推荐指数
1
解决办法
2250
查看次数

无法使用 python 在 aws cdk 中编写策略文档

您好,我正在研究 AWS CDK。我正在尝试制定政策。下面是我的代码。

MWSECSServiceRole = iam.Role(self, 'MWSECSServiceRole',
          assumed_by=iam.ServicePrincipal('ecs.amazonaws.com'))

        MWSECSServiceRole.add_to_policy(iam.PolicyStatement(
        effect=iam.Effect.ALLOW,
        resources=["arn:aws:elasticloadbalancing:*:{AccountId}:loadbalancer/app/mws-*","arn:aws:elasticloadbalancing:*:{AccountId}:listener-rule/app/mws-*","arn:aws:elasticloadbalancing:*:{AccountId}:listener/app/mws-*","arn:aws:elasticloadbalancing:*:{AccountId}:targetgroup/mws-*"],
        actions=["elasticloadbalancing:DeregisterInstancesFromLoadBalancer","elasticloadbalancing:DeregisterTargets","elasticloadbalancing:RegisterInstancesWithLoadBalancer","elasticloadbalancing:RegisterTargets"]
        ))

        MWSECSServiceRole.add_to_policy(iam.PolicyStatement(
        effect=iam.Effect.ALLOW,
        resources=["*"],
        actions=["ec2:AuthorizeSecurityGroupIngress","ec2:Describe*","elasticloadbalancing:Describe*"]
        ))
Run Code Online (Sandbox Code Playgroud)

这将生成下面的云形成模板。

MWSECSServiceRoleDefaultPolicyD5E258B0:
    Type: AWS::IAM::Policy
    Properties:
      PolicyDocument:
        Statement:
          - Action:
              - elasticloadbalancing:DeregisterInstancesFromLoadBalancer
              - elasticloadbalancing:DeregisterTargets
              - elasticloadbalancing:RegisterInstancesWithLoadBalancer
              - elasticloadbalancing:RegisterTargets
            Effect: Allow
            Resource:
              - arn:aws:elasticloadbalancing:*:{AccountId}:loadbalancer/app/mws-*
              - arn:aws:elasticloadbalancing:*:{AccountId}:listener-rule/app/mws-*
              - arn:aws:elasticloadbalancing:*:{AccountId}:listener/app/mws-*
              - arn:aws:elasticloadbalancing:*:{AccountId}:targetgroup/mws-*
          - Action:
              - ec2:AuthorizeSecurityGroupIngress
              - ec2:Describe*
              - elasticloadbalancing:Describe*
            Effect: Allow
            Resource: "*"
        Version: "2012-10-17"
      PolicyName: MWSECSServiceRoleDefaultPolicyD5E258B0
      Roles:
        - Ref: MWSECSServiceRole966AC1F9
    Metadata:
      aws:cdk:path: LocationCdkStack-cdkstack/MWSECSServiceRole/DefaultPolicy/Resource
Run Code Online (Sandbox Code Playgroud)

当我尝试部署它时会引发以下错误。

The policy failed legacy parsing (Service: AmazonIdentityManagement; Status Code: 400; …
Run Code Online (Sandbox Code Playgroud)

python amazon-web-services aws-cloudformation aws-cdk

2
推荐指数
1
解决办法
2458
查看次数

部署 lambda 时 CDK 排除文件

在打字稿中做一些 lambdas 并通过 cdk 部署等。一切正常,但我正在使用:

code: lambda.Code.asset('lambdas'),
Run Code Online (Sandbox Code Playgroud)

本地目录是 lambdas。然而,这会在其中部署 .js、.ts 和 .d.ts 文件,我想知道是否有这样的说法:

code: lambda.Code.asset('lambdas/*.js'),
Run Code Online (Sandbox Code Playgroud)

只需为较小的部署等部署 javascript 文件。

我想过在 tsconfig 文件中使用 outDir 但这也适用于 cdk stack.ts 所以这不起作用。

那么我有什么想法可以从 ts 项目中部署 js 文件吗?

aws-lambda aws-cdk

2
推荐指数
1
解决办法
1554
查看次数

AWS CDK 授予对堆栈外资源的权限

我对 AWS CDK 还很陌生,对 AWS 没有太多经验。在我正在编写的 CDK 堆栈中,我必须授予使用其他 CDK 模板构建并且已经在 aws 中的资源的权限。

假设我的堆栈 A 包含一个 lambda,该 lambda 将从另一个服务 X 调用。服务 X 需要具有 lambda 的调用权限。我可以从堆栈 A 代码中授予服务 X 权限,还是需要修改服务 X 堆栈?

amazon-web-services aws-lambda aws-cdk

2
推荐指数
1
解决办法
3192
查看次数

无效的 AttributeDataType 输入,考虑使用提供的 AttributeDataType 枚举

我正在尝试使用 aws cdk 创建 aws cognito 用户池。下面是我的代码 -

user_pool = _cognito.UserPool(
    stack,
    id="user-pool-id",
    user_pool_name="temp-user-pool",
    self_sign_up_enabled=True,
    sign_in_aliases={
        "username": False,
        "email": True
    },
    required_attributes={
        "email": True
    }   
)
Run Code Online (Sandbox Code Playgroud)

我想在用户池中为电子邮件设置“属性”部分。但上面的代码给了我这个例外 -

Invalid AttributeDataType input, consider using the provided AttributeDataType enum. (Service: AWSCognitoIdentityProviderService; Status Code: 400; Error Code: InvalidParameterException; Request ID:
Run Code Online (Sandbox Code Playgroud)

我尝试了很多场景,但没有奏效。我在这里错过了什么。任何帮助,将不胜感激。谢谢!我指的是这个 AWS 文档来创建用户池 - https://docs.aws.amazon.com/cdk/api/latest/python/aws_cdk.aws_cognito/UserPool.htmlhttps://docs.aws.amazon.com/ cdk/api/latest/python/aws_cdk.aws_cognito/RequiredAttributes.html#aws_cdk.aws_cognito.RequiredAttributes

python amazon-web-services amazon-cognito aws-userpools aws-cdk

2
推荐指数
1
解决办法
1056
查看次数

如何将 API Gateway 指向 CDK 中的 lambda 别名?

使用 CDK 将 ApiGateway 连接到 lambda,我们首先创建一个 RestApi(),然后创建一个 LambdaIntegration 将 Apigateway 连接到 lambda。使用 lambda 别名时如何执行此操作?

如何将 ApiGateway 指向特定的 Lambda 别名解释了如何在没有 CDK 的情况下将 ApiG 连接到 Lambda 别名。如何将其转换为 CDK?

我们的目标是为与 API Gateway 一起使用的 lambda 添加预配置并发和自动缩放。

amazon-web-services aws-lambda aws-api-gateway aws-cdk

2
推荐指数
2
解决办法
1372
查看次数

2
推荐指数
1
解决办法
1119
查看次数

如何使用 CDK 订阅通知或 SNS 主题的警报?

我知道如何使用 AWS CDK 创建警报,但我不知道如何向该警报添加通知。我怎么做?

这是我的警报代码:

/**
 * Alarm for CPU above 75%
 */
const metric = cluster.metricCPUUtilization();
new cloudwatch.Alarm(this, `CPU above 75% alarm` , {
  metric: metric,
  threshold: 75,
  evaluationPeriods: 3,
  datapointsToAlarm: 2,
});
Run Code Online (Sandbox Code Playgroud)

这是它在控制台中的样子:

控制台中的警报通知

amazon-cloudwatch typescript aws-cdk

2
推荐指数
1
解决办法
859
查看次数