标签: aws-cdk

API网关无法启用CORS

当我尝试从我的 React 应用程序请求 lambda 支持的 API(使用 API 网关,使用 CLI 和云开发套件部署)时,出现以下错误:

Access to XMLHttpRequest at 'https://xxxxxxxxxx.execute-api.eu-west-1.amazonaws.com/prod/xxxxx' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

GET https://xxxxxxxxxx.execute-api.eu-west-1.amazonaws.com/prod/xxxxx net::ERR_FAILED
Run Code Online (Sandbox Code Playgroud)

我使用CDK定义的API资源都传递到这个方法中

javascript amazon-web-services reactjs aws-amplify aws-cdk

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

如何在具有超过 16 个子网的 VPC 中使用 AWS CDK 创建 ECS 服务

使用 AWS CDK 创建 FargateService 时,我收到以下错误:

子网最多可以有 16 个项目。

我有这个代码来创建服务:

 var ecsService = new FargateService(this, $"{serviceNameHyphen}-service", new FargateServiceProps
 {
    TaskDefinition = taskDefinition,
    AssignPublicIp = false,
    Cluster = infrastructureStack.EcsCluster,
    CloudMapOptions = new CloudMapOptions
    {
          Name = serviceName,
          DnsRecordType = DnsRecordType.A,
          DnsTtl = Duration.Seconds(60),
          FailureThreshold = 2d
    },
    DesiredCount = 1,
    HealthCheckGracePeriod = Duration.Seconds(60),
    MaxHealthyPercent = 200,
    MinHealthyPercent = 100,
    PlatformVersion = FargatePlatformVersion.LATEST,
    ServiceName = $"{serviceNameHyphen}-service",
    SecurityGroup = albSecurityGroup,
    VpcSubnets = new SubnetSelection
    {
         OnePerAz = true,
         SubnetType = SubnetType.PUBLIC,
    }
}); …
Run Code Online (Sandbox Code Playgroud)

aws-cdk

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

在 Lambda 运行时代码中引用 ARN(在 CDK 堆栈中创建)

我有一个 CDK 堆栈,可以创建 lambda 和 SNS 主题。策略设置为允许 lambda 发布到 SNS 主题。

我很难在 lambda 运行时代码中指定主题 ARN,因为从技术上讲它尚未创建,只是在堆栈中。

如何在 Lambda 代码中引用主题 ARN,以便 lambda 发布到该主题?Lambda 是用 Python 编写的。我正在使用该fromAsset方法 ( https://docs.aws.amazon.com/cdk/api/latest/docs/aws-lambda-readme.html ) 在堆栈中指定 lambda 运行时代码。

sns = boto3.client('sns')
responce = sns.publish(
  TopicArn="arn would go here --- not sure what to put here w/ no arn",
  Message="my_message"
)
Run Code Online (Sandbox Code Playgroud)

amazon-sns aws-lambda aws-cdk

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

由于未在堆栈级别指定帐户/区域,因此无法从上下文提供程序 ami 检索值

您好,当我尝试在 AWS CDK 上创建堆栈时遇到问题

    import * as cdk from '@aws-cdk/core';
    import ec2 = require('@aws-cdk/aws-ec2');
    import { SubnetType } from '@aws-cdk/aws-ec2';

    export class FirstDemoStack extends cdk.Stack {
      constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) {
        super(scope, id, props);

        const natGatewayProvider = ec2.NatProvider.instance({
          instanceType: new ec2.InstanceType('t3.micro')
        });

        const vpc = new ec2.Vpc(this, 'VPC_Test', {
          cidr: '10.0.0.0/26',
          maxAzs: 1,
          subnetConfiguration:[
            {
              subnetType: ec2.SubnetType.PUBLIC,
              name: 'Ingress',
              cidrMask: 28
            },
            {
              cidrMask: 28,
              name: 'Application',
              subnetType: ec2.SubnetType.PRIVATE
            }
          ],
          natGatewayProvider,
          natGateways:2,
        });
      }
    }
Run Code Online (Sandbox Code Playgroud)

所以我得到下一个错误

    Cannot …
Run Code Online (Sandbox Code Playgroud)

amazon-ec2 amazon-web-services typescript aws-cdk

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

“CDK 部署”未启动

大家好,我是 AWS CDK 的新手,想要使用 AWS 开发人员指南创建一个简单的应用程序 (javaScript): https: //docs.aws.amazon.com/cdk/latest/guide/hello_world.html

似乎一切都工作正常,但是当我尝试运行“cdk部署”命令时,部署甚至没有启动,并且在这个阶段堆栈: 在此输入图像描述

有人知道我做错了什么或者如何得到实际的错误吗?

javascript amazon-web-services aws-cdk

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

AWS CDK以及如何在不卡住的情况下更新ECS

我有一个简单的 CDK 堆栈来通过ApplicationLoadBalancedEc2Servic. 部署效果很好。但是当我升级时,例如通过将 docker 容器设置为hasura/graphql-engine:v1.3.1-beta.1,更新会永远持续下去,最后的输出类似于:

12:23:01 | UPDATE_IN_PROGRESS   | AWS::CloudFormation::Stack
| HasuraStack
12:23:32 | UPDATE_IN_PROGRESS   | AWS::ECS::Service
| Hasura/Service/Service
Run Code Online (Sandbox Code Playgroud)

我认为这与desiredCapacity和minCapacity设置为1有关。只要我进入AWS控制台并将它们手动设置为0,更新就会起作用。我尝试了 minCapacity/maxCapacity/desiredCapacity 的不同配置,但没有成功。

最好的结果是运行 2 个实例,旧实例缓慢耗尽,新实例将所有新流量重定向到新实例。有没有什么简单的方法可以实现类似的目标并获得更新?短暂的停机时间也是可以接受的。

这是代码:

const cluster = new Cluster(this, 'Cluster', {
  vpc: props.vpc,
});

cluster.addCapacity('ASGroupCapacity', {
  instanceType: new InstanceType(props.instanceType || 't3.micro'),
});

this.service = new ApplicationLoadBalancedEc2Service(this, 'Hasura', {
  publicLoadBalancer: true,
  cluster,
  // assignPublicIp: props.hasuraServiceProps?.assignPublicIp || true,
  domainName: `${props.subDomain}.${props.zone.zoneName}`,
  domainZone: props.zone,
  protocol: ApplicationProtocol.HTTPS,
  memoryReservationMiB: 512,
  desiredCount: 1,
  taskImageOptions: {
    image: ContainerImage.fromRegistry('hasura/graphql-engine:v1.3.0'),
    containerPort: 8080,
    environment: …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services node.js aws-cdk

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

“this”类型的参数不可分配给 AWS CDK 中“Construct”类型的参数

我在使用 CDK 时遇到问题,因为该this属性出错并表示我无法将“this”分配给类型构造的参数。这发生在该const s3ListLambdaRole部分的开始,并使之后的每个新变量声明也会出现同样的错误。

import * as sns from '@aws-cdk/aws-sns';
import * as subs from '@aws-cdk/aws-sns-subscriptions';
import * as sqs from '@aws-cdk/aws-sqs';
import * as cdk from '@aws-cdk/core';
import * as s3 from '@aws-cdk/aws-s3';
import * as lambda from '@aws-cdk/aws-lambda';
import * as path from 'path';
import { Bucket } from '@aws-cdk/aws-s3';
import * as iam from'@aws-cdk/aws-iam';


export class SecurityBaselineDevStack extends cdk.Stack {
  constructor(scope: cdk.App, id: string, props?: cdk.StackProps) {
    super(scope, id, props);

    const testSecurityqueue = …
Run Code Online (Sandbox Code Playgroud)

typescript aws-cdk

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

如何将 Route53 A 记录定位到 ApiGateway v2

ApiGateway 1 有一个别名,但它的接口不符合 V2:

在此输入图像描述

这是domainName

  const domainName = new apigw2.DomainName(config.scope, config.id + 'DomainName', {
    domainName: config.domainName,
    certificate: config.certificate,
  });
  
Run Code Online (Sandbox Code Playgroud)

aws-cloudformation amazon-route53 aws-api-gateway aws-cdk

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

如何将配置传递到 AWS-CDK 堆栈中使用的 Web 应用程序

假设您有一个 AWS CDK 堆栈创建了一些资源

  1. Cognito 用户池
  2. 应用同步端点

您想要部署到 S3 的 Web 应用程序会使用它们。

如何以编程方式将配置(例如 appsync 端点的端点 url)传递到要部署的应用程序?

AWS Amplify 创建aws-exports.js应用程序使用的文件。该文件由一些 amplify 命令创建,并放入应用程序目录中,以便从应用程序访问。

有没有关于如何在不使用放大的情况下解决此问题的工具或建议?如果有人有一些例子或想法那就太好了。

我正在使用使用生成器创建的标准 React 应用程序。

amazon-web-services aws-cloudformation aws-cdk

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

在 AWS CDK 中设置状态机时,如何删除 Lambda 调用的默认重试策略?

我正在使用 AWS CDK 创建状态机。而不是默认的重试策略,如下所示:

  "Retry": [
    {
      "ErrorEquals": [
        "Lambda.ServiceException",
        "Lambda.AWSLambdaException",
        "Lambda.SdkClientException"
      ],
      "IntervalSeconds": 2,
      "MaxAttempts": 6,
      "BackoffRate": 2
    }
  ]
Run Code Online (Sandbox Code Playgroud)

我只想制定一项如下所示的包罗万象的政策:

"Retry": [
    {
      "ErrorEquals": [
        "States.ALL"
      ],
      "IntervalSeconds": 10,
      "MaxAttempts": 3,
      "BackoffRate": 1.5
    }
  ]
Run Code Online (Sandbox Code Playgroud)

不幸的是,我找不到在部署堆栈时删除默认策略的方法。我的包罗万象只是添加到重试策略数组的末尾。

"Retry": [
    {
      "ErrorEquals": [
        "Lambda.ServiceException",
        "Lambda.AWSLambdaException",
        "Lambda.SdkClientException"
      ],
      "IntervalSeconds": 2,
      "MaxAttempts": 6,
      "BackoffRate": 2
    },
    {
      "ErrorEquals": [
        "States.ALL"
      ],
      "IntervalSeconds": 10,
      "MaxAttempts": 3,
      "BackoffRate": 1.5
    }
  ]
Run Code Online (Sandbox Code Playgroud)

有人知道如何摆脱默认政策吗?

amazon-web-services retrypolicy aws-step-functions aws-cdk

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