AWS::StackName使用 CloudFormation 模板,CloudFormation 服务在应用模板之前要求提供堆栈名称 ( )。
使用AWS CDK,我们运行cdk synth创建cfn模板并cdk deploy基于该模板部署服务。
AWS CDK 是否在 Cloudformation 服务中创建默认堆栈名称?跑步后cdk deploy
通过本教程。
运行时,cdk deploy它会要求部署权限。我假设这是因为本教程前面创建的 IAM 资源。我无法在 CI 环境中运行它,因为没有办法回答这个问题。看起来没有办法以非交互式方式运行它?
我在文档中也找不到任何内容?
您好,我正在研究 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) 您好,我正在研究 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) 在打字稿中做一些 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 CDK 还很陌生,对 AWS 没有太多经验。在我正在编写的 CDK 堆栈中,我必须授予使用其他 CDK 模板构建并且已经在 aws 中的资源的权限。
假设我的堆栈 A 包含一个 lambda,该 lambda 将从另一个服务 X 调用。服务 X 需要具有 lambda 的调用权限。我可以从堆栈 A 代码中授予服务 X 权限,还是需要修改服务 X 堆栈?
我正在尝试使用 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.html和https://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
使用 CDK 将 ApiGateway 连接到 lambda,我们首先创建一个 RestApi(),然后创建一个 LambdaIntegration 将 Apigateway 连接到 lambda。使用 lambda 别名时如何执行此操作?
如何将 ApiGateway 指向特定的 Lambda 别名解释了如何在没有 CDK 的情况下将 ApiG 连接到 Lambda 别名。如何将其转换为 CDK?
我们的目标是为与 API Gateway 一起使用的 lambda 添加预配置并发和自动缩放。
在CDK 细粒度构造测试中,有什么不同
expect(...).toHaveResource(...)
Run Code Online (Sandbox Code Playgroud)
和
expect(...).toHaveResourceLike(...)
Run Code Online (Sandbox Code Playgroud)
从@aws-cdk/assert/jest模块?
我知道如何使用 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)
这是它在控制台中的样子: