Azure2==Read a secret from Azure Key Vault in a Spring Boot application

Tutorial: Read a secret from Azure Key Vault in a Spring Boot application | Microsoft Docs

======================

PS E:\ideaMyProject2\keyvault> az login
A web browser has been opened at https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize. Please continue the login in the web browser. If no web browser is available or if the web browser fails to open, use device code flow with `az login --use-device-code`.
[
  {
    "cloudName": "AzureCloud",
    "homeTenantId": "9c6f33c6-0a22-45e9-b129-78843f81e5f8",
    "id": "1e084e44-86cb-4469-a7b4-144285f0f2cb",
    "isDefault": true,
    "managedByTenants": [],
    "name": "免费试用",
    "state": "Enabled",
    "tenantId": "9c6f33c6-0a22-45e9-b129-78843f81e5f8",
    "user": {
      "name": "908163862@qq.com",
      "type": "user"
    }
  }
]
PS E:\ideaMyProject2\keyvault> az account list
[
  {
    "cloudName": "AzureCloud",
    "homeTenantId": "9c6f33c6-0a22-45e9-b129-78843f81e5f8",
    "id": "1e084e44-86cb-4469-a7b4-144285f0f2cb",
    "isDefault": true,
    "managedByTenants": [],
    "name": "免费试用",
    "state": "Enabled",
    "tenantId": "9c6f33c6-0a22-45e9-b129-78843f81e5f8",
    "user": {
      "name": "908163862@qq.com",
      "type": "user"
    }
  }
]
PS E:\ideaMyProject2\keyvault> az account set -s 1e084e44-86cb-4469-a7b4-144285f0f2cb

PS E:\ideaMyProject2\keyvault> az account set -s 1e084e44-86cb-4469-a7b4-144285f0f2cb
PS E:\ideaMyProject2\keyvault> az ad sp create-for-rbac --name contososp --role Contributor --scopes /subscriptions/1e084e44-86cb-4469-a7b4-144285f0f2cb

{
  "appId": "6dbe9b78-5f0a-46f2-b653-9c229a88a776",
  "displayName": "contososp",
  "password": "XSt8Q~V02HZy6ZRxDqV3AU2A~c1w.xcMsnMQYau2",
  "tenant": "9c6f33c6-0a22-45e9-b129-78843f81e5f8"
}

PS E:\ideaMyProject2\keyvault> az group create --name contosorg --location eastasia
{
  "id": "/subscriptions/1e084e44-86cb-4469-a7b4-144285f0f2cb/resourceGroups/contosorg",
  "location": "eastasia",
  "managedBy": null,
  "name": "contosorg",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null,
  "type": "Microsoft.Resources/resourceGroups"
}

PS E:\ideaMyProject2\keyvault> az keyvault create --resource-group contosorg --name contosokv0614 --enabled-for-deployment true --enabled-for-disk-encryption true --enabled-for-template-deployment true --location eastasia --query properties.vaultUri --sku standard

"https://contosokv0614.vault.azure.net/"

az keyvault set-policy --name contosokv0614 --spn 6dbe9b78-5f0a-46f2-b653-9c229a88a776 --secret-permissions get list

az keyvault secret set --name "connectionString" --vault-name "contosokv0614" --value "jdbc:sqlserver://SERVER.database.windows.net:1433;database=DATABASE;"

<plugin>
  <groupId>com.microsoft.azure</groupId>
  <artifactId>azure-webapp-maven-plugin</artifactId>
  <version>2.5.0</version>
</plugin>

mvn azure-webapp:config

mvn -DskipTests clean package azure-webapp:deploy

az webapp identity assign --resource-group contosorg --name keyvault0614

PS E:\ideaMyProject2\keyvault> az webapp identity assign --resource-group contosorg --name keyvault0614
{
  "principalId": "c617a35b-353a-4633-9780-740551ee75c0",
  "tenantId": "9c6f33c6-0a22-45e9-b129-78843f81e5f8",
  "type": "SystemAssigned",
  "userAssignedIdentities": null
}


az keyvault set-policy --name contosokv0614--object-id c617a35b-353a-4633-9780-740551ee75c0 --secret-permissions get list

mvn -DskipTests clean package azure-webapp:deploy

报错了。。。

 

 

2022-06-14T01:01:22.828440530Z Picked up JAVA_TOOL_OPTIONS: -Xmx1350M -Djava.net.preferIPv4Stack=true
2022-06-14T01:03:19.406749968Z 01:03:19.378 [main] ERROR org.springframework.boot.SpringApplication - Application run failed
2022-06-14T01:03:19.406836068Z java.lang.IllegalStateException: Failed to configure KeyVault property source
2022-06-14T01:03:19.406845069Z 	at com.azure.spring.cloud.autoconfigure.keyvault.environment.KeyVaultEnvironmentPostProcessor.buildKeyVaultPropertySource(KeyVaultEnvironmentPostProcessor.java:127)
2022-06-14T01:03:19.406852469Z 	at com.azure.spring.cloud.autoconfigure.keyvault.environment.KeyVaultEnvironmentPostProcessor.buildKeyVaultPropertySourceList(KeyVaultEnvironmentPostProcessor.java:112)
2022-06-14T01:03:19.406857569Z 	at com.azure.spring.cloud.autoconfigure.keyvault.environment.KeyVaultEnvironmentPostProcessor.postProcessEnvironment(KeyVaultEnvironmentPostProcessor.java:85)
2022-06-14T01:03:19.406862569Z 	at org.springframework.boot.env.EnvironmentPostProcessorApplicationListener.onApplicationEnvironmentPreparedEvent(EnvironmentPostProcessorApplicationListener.java:102)
2022-06-14T01:03:19.406867269Z 	at org.springframework.boot.env.EnvironmentPostProcessorApplicationListener.onApplicationEvent(EnvironmentPostProcessorApplicationListener.java:87)
2022-06-14T01:03:19.406871869Z 	at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:176)
2022-06-14T01:03:19.406876569Z 	at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:169)
2022-06-14T01:03:19.406881269Z 	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:143)
2022-06-14T01:03:19.406885969Z 	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:131)
2022-06-14T01:03:19.406890569Z 	at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:82)
2022-06-14T01:03:19.406901469Z 	at org.springframework.boot.SpringApplicationRunListeners.lambda$environmentPrepared$2(SpringApplicationRunListeners.java:63)
2022-06-14T01:03:19.406907469Z 	at java.util.ArrayList.forEach(ArrayList.java:1259)
2022-06-14T01:03:19.406911769Z 	at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:117)
2022-06-14T01:03:19.406916169Z 	at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:111)
2022-06-14T01:03:19.406926369Z 	at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:62)
2022-06-14T01:03:19.406930969Z 	at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:375)
2022-06-14T01:03:19.406934969Z 	at org.springframework.boot.SpringApplication.run(SpringApplication.java:333)
2022-06-14T01:03:19.406938869Z 	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1365)
2022-06-14T01:03:19.406942969Z 	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354)
2022-06-14T01:03:19.406946869Z 	at com.example.keyvault.sample.KeyvaultApplication.main(KeyvaultApplication.java:18)
2022-06-14T01:03:19.406950769Z 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2022-06-14T01:03:19.406954969Z 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
2022-06-14T01:03:19.406958969Z 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2022-06-14T01:03:19.406962869Z 	at java.lang.reflect.Method.invoke(Method.java:498)
2022-06-14T01:03:19.406966769Z 	at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49)
2022-06-14T01:03:19.406970769Z 	at org.springframework.boot.loader.Launcher.launch(Launcher.java:108)
2022-06-14T01:03:19.406974770Z 	at org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
2022-06-14T01:03:19.406978670Z 	at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88)
2022-06-14T01:03:19.406982770Z Caused by: reactor.core.Exceptions$ReactiveException: java.io.IOException: Server returned HTTP response code: 400 for URL: http://172.16.0.2:8081/msi/token?resource=https%3A%2F%2Fvault.azure.net&api-version=2019-08-01&client_id=c617a35b-353a-4633-9780-740551ee75c0
2022-06-14T01:03:19.406987670Z 	at reactor.core.Exceptions.propagate(Exceptions.java:392)
2022-06-14T01:03:19.406991470Z 	at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:97)
2022-06-14T01:03:19.406995470Z 	at reactor.core.publisher.Flux.blockLast(Flux.java:2645)
2022-06-14T01:03:19.406999270Z 	at com.azure.core.util.paging.ContinuablePagedByIteratorBase.requestPage(ContinuablePagedByIteratorBase.java:94)
2022-06-14T01:03:19.407003270Z 	at com.azure.core.util.paging.ContinuablePagedByPageIterable$ContinuablePagedByPageIterator.<init>(ContinuablePagedByPageIterable.java:57)
2022-06-14T01:03:19.407007470Z 	at com.azure.core.util.paging.ContinuablePagedByPageIterable.iterator(ContinuablePagedByPageIterable.java:41)
2022-06-14T01:03:19.407011470Z 	at java.lang.Iterable.spliterator(Iterable.java:101)
2022-06-14T01:03:19.407015570Z 	at com.azure.spring.cloud.autoconfigure.keyvault.environment.KeyVaultOperation.lambda$refreshProperties$2(KeyVaultOperation.java:140)
2022-06-14T01:03:19.407019670Z 	at java.util.Optional.map(Optional.java:215)
2022-06-14T01:03:19.407027170Z 	at com.azure.spring.cloud.autoconfigure.keyvault.environment.KeyVaultOperation.refreshProperties(KeyVaultOperation.java:140)
2022-06-14T01:03:19.407031470Z 	at com.azure.spring.cloud.autoconfigure.keyvault.environment.KeyVaultOperation.<init>(KeyVaultOperation.java:77)
2022-06-14T01:03:19.407035770Z 	at com.azure.spring.cloud.autoconfigure.keyvault.environment.KeyVaultEnvironmentPostProcessor.buildKeyVaultPropertySource(KeyVaultEnvironmentPostProcessor.java:124)
2022-06-14T01:03:19.407039870Z 	... 27 common frames omitted
2022-06-14T01:03:19.407043670Z 	Suppressed: java.lang.Exception: #block terminated with an error
2022-06-14T01:03:19.407047370Z 		at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:99)
2022-06-14T01:03:19.407051370Z 		... 37 common frames omitted
2022-06-14T01:03:19.407055170Z Caused by: java.io.IOException: Server returned HTTP response code: 400 for URL: http://172.16.0.2:8081/msi/token?resource=https%3A%2F%2Fvault.azure.net&api-version=2019-08-01&client_id=c617a35b-353a-4633-9780-740551ee75c0
2022-06-14T01:03:19.407059670Z 	at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1902)
2022-06-14T01:03:19.407063570Z 	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1500)
2022-06-14T01:03:19.407067470Z 	at com.azure.identity.implementation.IdentityClient.lambda$authenticateToManagedIdentityEndpoint$55(IdentityClient.java:1322)
2022-06-14T01:03:19.407071770Z 	at reactor.core.publisher.MonoCallable.subscribe(MonoCallable.java:57)
2022-06-14T01:03:19.407075770Z 	at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64)
2022-06-14T01:03:19.407079870Z 	at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52)
2022-06-14T01:03:19.407083770Z 	at reactor.core.publisher.MonoDelaySubscription.accept(MonoDelaySubscription.java:53)
2022-06-14T01:03:19.407087570Z 	at reactor.core.publisher.MonoDelaySubscription.accept(MonoDelaySubscription.java:34)
2022-06-14T01:03:19.407091570Z 	at reactor.core.publisher.FluxDelaySubscription$DelaySubscriptionOtherSubscriber.onNext(FluxDelaySubscription.java:131)
2022-06-14T01:03:19.407095570Z 	at reactor.core.publisher.MonoDelay$MonoDelayRunnable.propagateDelay(MonoDelay.java:271)
2022-06-14T01:03:19.407099470Z 	at reactor.core.publisher.MonoDelay$MonoDelayRunnable.run(MonoDelay.java:286)
2022-06-14T01:03:19.407103670Z 	at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68)
2022-06-14T01:03:19.407107471Z 	at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28)
2022-06-14T01:03:19.407111271Z 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
2022-06-14T01:03:19.407115171Z 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
2022-06-14T01:03:19.407119071Z 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
2022-06-14T01:03:19.407125771Z 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
2022-06-14T01:03:19.407129871Z 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
2022-06-14T01:03:19.407133771Z 	at java.lang.Thread.run(Thread.java:748)
2022-06-14T01:03:19.784883717Z Wait for pid == 159 either returned successfully or was interrupted due to a signal 159
2022-06-14T01:03:19.786090226Z Done waiting for main process. GLOBAL_PID_MAIN=159.
2022-06-14T01:03:19.792486274Z Exiting entry script!
2022-06-14T01:03:20.646Z ERROR - Container keyvault0614_0_0c96f113 for site keyvault0614 has exited, failing site start
2022-06-14T01:03:21.432Z ERROR - Container keyvault0614_0_0c96f113 didn't respond to HTTP pings on port: 80, failing site start. See container logs for debugging.
2022-06-14T01:03:21.472Z INFO  - Stopping site keyvault0614 because it failed during startup.
2022-06-14T01:04:24  No new trace in the past 1 min(s).
2022-06-14T01:05:24  No new trace in the past 2 min(s).
2022-06-14T01:06:24  No new trace in the past 3 min(s).
2022-06-14T01:06:43.445Z INFO  - Pulling image: mcr.microsoft.com/appsvc/msitokenservice:stage6
2022-06-14T01:06:43.627Z INFO  - stage6 Pulling from appsvc/msitokenservice
2022-06-14T01:06:43.628Z INFO  -  Digest: sha256:cc56bdc01ad5e52f2ec2d529b120f08e42e4eb67685d4d02c7c4236c1eb11aa6
2022-06-14T01:06:43.628Z INFO  -  Status: Image is up to date for mcr.microsoft.com/appsvc/msitokenservice:stage6
2022-06-14T01:06:43.634Z INFO  - Pull Image successful, Time taken: 0 Minutes and 0 Seconds
2022-06-14T01:06:43.684Z INFO  - Starting container for site
2022-06-14T01:06:43.685Z INFO  - docker run -d --expose=8081 --name keyvault0614_0_d5134716_msiProxy -e WEBSITE_ROLE_INSTANCE_ID=0 -e WEBSITE_HOSTNAME=keyvault0614.azurewebsites.net -e WEBSITE_INSTANCE_ID=dc53be36b799cb821204690280fca101c99336de96f5c8afcfa31feca04d4aad -e WEBSITE_USE_DIAGNOSTIC_SERVER=False mcr.microsoft.com/appsvc/msitokenservice:stage6
2022-06-14T01:06:43.685Z INFO  - Logging is not enabled for this container.
Please use https://aka.ms/linux-diagnostics to enable logging to see container logs here.
is container.
Please use https://aka.ms/linux-diagnostics to enable logging to see container logs here.
2022-06-14T01:06:54.100Z INFO  - Initiating warmup request to container keyvault0614_0_d5134716_msiProxy for site keyvault0614
2022-06-14T01:06:54.161Z INFO  - Container keyvault0614_0_d5134716_msiProxy for site keyvault0614 initialized successfully and is ready to serve requests.
2022-06-14T01:06:54.167Z INFO  - Initiating warmup request to container keyvault0614_0_d5134716 for site keyvault0614
2022-06-14T01:07:09.625Z INFO  - Waiting for response to warmup request for container keyvault0614_0_d5134716. Elapsed time = 15.5658225 sec
2022-06-14T01:07:25.321Z INFO  - Waiting for response to warmup request for container keyvault0614_0_d5134716. Elapsed time = 31.261722 sec
2022-06-14T01:07:40.722Z INFO  - Waiting for response to warmup request for container keyvault0614_0_d5134716. Elapsed time = 46.6634521 sec
2022-06-14T01:07:55.920Z INFO  - Waiting for response to warmup request for container keyvault0614_0_d5134716. Elapsed time = 61.8617045 sec
2022-06-14T01:08:11.121Z INFO  - Waiting for response to warmup request for container keyvault0614_0_d5134716. Elapsed time = 77.0620566 sec
2022-06-14T01:08:26.381Z INFO  - Waiting for response to warmup request for container keyvault0614_0_d5134716. Elapsed time = 92.3226127 sec

 

免费30天的账号只能新建B1类型的pricingTier ,内存只有1.7G,怀疑是不是起容器的时候内存不够了?导致起不了。

crazy。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值