【问题标题】:Working with the generated API Gateway url in CDK在 CDK 中使用生成的 API Gateway url
【发布时间】:2022-09-24 06:36:52
【问题描述】:

我正在使用创建 Telegram 机器人AWS API 网关AWS 拉姆达,并使用 AWS CDK v2 定义基础设施。

在使用cdk deploy 部署我的堆栈后,我在控制台输出中获得了为 API 网关生成的 URL。理想情况下,我想使用该 URL 在 Telegram 中注册一个 webhook,作为部署过程的一部分。这将只涉及向 URL 发出 GET 请求,从AWS 机密管理器以及生成的网关 URL。

有没有办法在 CDK 中部署期间执行该 HTTP 请求?

    标签: amazon-web-services aws-api-gateway aws-cdk telegram-webhook


    【解决方案1】:

    这样做的方法是创建一个 cloudformation 自定义资源来在 api 网关启动后处理请求。 cdk 看起来像

    const api = new apigateway.RestApi(this, 'Api', {
          restApiName: 'MyApi',
    
    });
    
    const provider = new cr.Provider(this, 'Provider', {
            onEventHandler: new nodeLambda.NodejsFunction(this, 'handler', {
                handler: 'handler',
                }),
    });
    
    new cdk.CustomResource(this, 'registerApi', {
      serviceToken: provider.serviceToken,
      properties: {
          apiGatewayUrl: api.url,
      },
    });
    
    

    您的 lambda 代码将从事件中传递的资源属性中获取 api url,然后从秘密管理器中获取您的秘密,并调用电报以注册您的新 api

    【讨论】:

      猜你喜欢
      • 2020-05-12
      • 2021-09-15
      • 1970-01-01
      • 1970-01-01
      • 2021-10-21
      • 1970-01-01
      • 2020-05-21
      • 2019-10-17
      • 2017-08-08
      相关资源
      最近更新 更多