以编程方式在 AWS Elastic Beanstalk 中创建新实例

Create new instances in AWS Elastic Beanstalk programmatically

我是 AWS Elastic Beanstalk 的新手,我试图通过阅读文档并从中进行开发来理解它。随着阅读量的增长,我提出了以下问题:是否可以通过源代码来扩展或缩小应用程序?例如,如果我的应用程序达到某个阈值,它必须扩大规模。

我对此进行了研究,但找不到执行此操作的任何代码,我发现扩展应用程序的唯一方法是通过 AWS Elastic Beanstalk 控制台增加或减少其实例。

任何人都可以帮助我确认是否有办法以编程方式执行此操作,或者放大和缩小的唯一方法是通过控制台执行此操作?

A​​WS Elastic Beanstalk 确实有一个public API 让您使用代码执行操作。例如,这是此服务的 Java API 的 Java 文档。

Interface ElasticBeanstalkClient

您可以修改某些内容。例如,阅读 updateApplicationVersion 方法。但是,您需要阅读这些 Java 文档来弄清楚什么是可能的,什么是不可能的。

因为还没有 public 个示例 API,这里有一个功能示例描述了如何使用这个 API 来描述已部署的应用程序。

package com.aws.example;

import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.elasticbeanstalk.ElasticBeanstalkClient;
import software.amazon.awssdk.services.elasticbeanstalk.model.ApplicationDescription;
import software.amazon.awssdk.services.elasticbeanstalk.model.DescribeApplicationsResponse;

import java.util.List;

public class DescribeApplications {

    public static void main(String[] args) {

        Region region = Region.US_EAST_1;
        ElasticBeanstalkClient beanstalkClient = ElasticBeanstalkClient.builder()
                .region(region)
                .build();

        DescribeApplicationsResponse applicationsResponse = beanstalkClient.describeApplications();
        List<ApplicationDescription> apps = applicationsResponse.applications();
        for (ApplicationDescription app: apps) {
            System.out.println("The application name is "+app.applicationName());
            System.out.println("The application ARN  is "+app.applicationArn());
        }
    }
  }

Elastic Beanstalk 只是为您创建了一些 AWS 资源。这些资源包括 EC2 AutoScaling 组。您将修改 AutoScaling 组的所需实例计数属性以触发缩放事件。您可以在适用于不同编程语言的任何 AWS 开发工具包中执行此操作。