微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决以编程方式在 AWS Elastic Beanstalk 中创建新实例

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

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

任何人都可以帮我确认是否有办法以编程方式执行此操作,或者向上和向下扩展的唯一方法是通过控制台执行此操作?

解决方法

AWS Elastic Beanstalk 确实有一个公共 API,可让您使用代码执行操作。例如,这里是此服务的 Java API 的 Javadoc。

Interface ElasticBeanstalkClient

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

由于此 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 开发工具包中执行此操作。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。