Spring Cloud Azure 资源管理器

本文适用于: ✔️版本 4.14.0 ✔️ 版本 5.8.0

Azure 资源管理器 (ARM) 是适用于 Azure 的部署和管理服务。 它提供了一个管理层,用于在 Azure 帐户中创建、更新和删除资源。 Spring Cloud Azure 资源管理器可帮助预配资源或检索资源元数据。

依赖项设置

<dependency>
  <groupId>com.azure.spring</groupId>
  <artifactId>spring-cloud-azure-resourcemanager</artifactId>
</dependency>

配置

注意

如果选择使用安全主体通过 Microsoft Entra ID 进行身份验证和授权来访问 Azure 资源,请参阅 “使用 Microsoft Entra ID 授权访问”,以确保安全主体已获得访问 Azure 资源的足够权限。

spring-cloud-azure-resourcemanager 的可配置属性:

properties 说明
spring.cloud.azure.resource-manager.enabled 是否启用资源管理器。 默认值为 true。
spring.cloud.azure.credential.client-id 使用 Azure 执行服务主体身份验证时要使用的客户端 ID。
spring.cloud.azure.credential.client-secret 使用 Azure 执行服务主体身份验证时要使用的客户端密码。
spring.cloud.azure.credential.client-certificate-path 使用 Azure 执行服务主体身份验证时要使用的 PEM 证书文件的路径。
spring.cloud.azure.credential.client-certificate-password 证书文件的密码。
spring.cloud.azure.credential.username 在 Azure 中执行用户名/密码身份验证时要使用的用户名。
spring.cloud.azure.credential.password 执行用户名/密码身份验证时要使用的密码。
spring.cloud.azure.credential.managed-identity-enabled 是否启用托管标识。
spring.cloud.azure.profile.cloud-type 要连接到的 Azure 云的名称。
spring.cloud.azure.profile.environment.active-directory-endpoint 要连接到的 Microsoft Entra 终结点进行身份验证。
spring.cloud.azure.profile.subscription-id 连接到 Azure 资源时要使用的订阅 ID。
spring.cloud.azure.profile.tenant-id Azure 资源的租户 ID。 允许 tenant-id 的值包括: commonorganizationsconsumers或租户 ID。
spring.cloud.azure.azure-service.namespace 用于预配资源的 Azure 服务的命名空间。
spring.cloud.azure.azure-service.resource.resource-group 包含 Azure 服务资源的资源组。

基本用法

Spring Cloud Azure 资源管理器可与特定的 Spring Cloud Azure 初学者协作,检索连接信息(例如连接字符串),以连接到 Azure 服务。 它还可与第三方库一起使用 spring-cloud-azure-starter ,以检索用户名/密码等元数据,以及完成身份验证。 有关详细信息,请参阅 Spring Cloud Azure Kafka 支持Spring Cloud Azure Redis 支持

例如,若要检索 Azure 服务的连接字符串,开发人员可以使用服务主体作为凭据进行身份验证和检索连接字符串。 下面列出了配置。 至少应为所提供的服务主体分配关联命名空间的角色 Contributor 。 请参阅 “使用 Microsoft Entra ID 授权访问权限”,确保主体已获得访问 Azure 资源的足够权限。

spring:
  cloud:
    azure:
      credential:
        client-id: ${AZURE_CLIENT_ID}
        client-secret: ${AZURE_CLIENT_SECRET}
      profile:
        tenant-id: <tenant>
        subscription-id: ${AZURE_SUBSCRIPTION_ID}
      <azure-service>:
        namespace: ${SERVICEBUS_NAMESPACE}
        resource:
          resource-group: ${RESOURCE_GROUP}

注意

允许 tenant-id 的值包括: commonorganizationsconsumers或租户 ID。 有关这些值的详细信息,请参阅 错误AADSTS50020的错误终结点(个人和组织帐户) 部分 - 来自标识提供者的用户帐户不存在于租户中。 有关转换单租户应用的信息,请参阅 Microsoft Entra ID 上的“将单租户应用转换为多租户”。

示例

有关详细信息,请参阅 GitHub 上的 azure-spring-boot-samples 存储库。