【问题标题】:How can we determine the current region with AWS Fargate我们如何使用 AWS Fargate 确定当前区域
【发布时间】:2020-02-13 06:12:48
【问题描述】:

我有一个在 AWS Fargate 上运行的 Java 应用程序。出于安全原因,Regions.getCurrentRegion() 从 AWS Fargate 中返回 null

是否有其他方法可以确定 fargate 容器在哪个区域运行?

【问题讨论】:

    标签: java amazon-web-services aws-fargate


    【解决方案1】:

    在 Fargate 中,当前区域可通过 AWS_REGION 环境变量获得。

    【讨论】:

    • 您是否也知道如何获得本案的AZ?
    • 这是在哪里记录的?
    • 如果没有记录,可能会发生变化
    【解决方案2】:

    如果您使用的是 AWS java sdk,您可以链接 AwsRegionProvider 并抽象出围绕区域检索的逻辑。如果您使用凭据配置文件,或者环境变量发生更改,或者它最终在TaskMetadata 中可用,您可以链接区域提供程序,以便您可以在任何可用的地方获取区域。这还允许您重用可能在不同类型的 AWS 基础设施上运行的代码。

    您将构造一个AwsRegionProviderChain 并传入每个相关AwsRegionProvider 的实例,例如AwsEnvVarOverrideRegionProviderAwsProfileRegionProvider 等。

    【讨论】:

    • 我喜欢这个答案,但是有没有办法为所有提供者配置超时?这样做似乎会大大增加我的应用程序启动时间
    • 您可以尝试使用 CompletableFuture.allOf 来获取第一个返回的。如果速度是必要的,你最好做一些特定于平台的事情
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-29
    • 1970-01-01
    • 2021-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多