如何設定 APM 整合和 CA 憑證
注意
Azure Spring Apps 是 Azure Spring Cloud 服務的新名稱。 雖然服務有新的名稱,但是您暫時還是會在某些位置看到舊的名稱。我們正在致力更新螢幕擷取畫面、影片和圖表等資產。
本文適用於:❌ 基本/標準✔️企業
本文說明如何在 Azure Spring Apps Enterprise 方案中設定應用程式效能監視器 (APM) 整合和證書頒發機構單位 (CA) 憑證。
您可以在 Azure Spring Apps 企業方案實例上啟用或停用 Tanzu Build Service。 如需詳細資訊,請參閱使用 Tanzu Build Service 的建置服務隨選一節。
必要條件
- 已布建的 Azure Spring Apps 企業版方案實例。 如需詳細資訊,請參閱 快速入門:使用企業方案建置和部署應用程式至 Azure Spring Apps。
- Azure CLI 2.49.0 版或更高版本。 使用下列命令來安裝 Azure Spring Apps 擴充功能:
az extension add --name spring
支援的案例 - APM 和 CA 憑證整合
Tanzu Build Service 會使用 buildpack 系結來與 Tanzu Partner Buildpacks 和其他雲端原生組建套件整合,例如 GitHub 上的 ca-certificates buildpack。
Azure Spring Apps 目前支援下列 APM 類型:
- ApplicationInsights
- Dynatrace
- AppDynamics
- New Relic
- ElasticAPM
Azure Spring Apps 支援所有語言系列組建套件的 CA 憑證,但不支援所有支援的 APM。 下表顯示 Tanzu 語言系列 buildpacks 支援的系結類型。
Buildpack | ApplicationInsights | New Relic | AppDynamics | Dynatrace | ElasticAPM |
---|---|---|---|---|---|
Java | ✔ | ✔ | ✔ | ✔ | ✔ |
.NET | ✔ | ✔ | |||
Go | ✔ | ||||
Python | |||||
NodeJS | ✔ | ✔ | ✔ | ✔ | |
網頁伺服器 | ✔ | ||||
Java 原生映像 | |||||
PHP | ✔ | ✔ | ✔ |
如需使用網頁伺服器的相關信息,請參閱 部署Web靜態檔案。
Tanzu Build Service 預設會在 Azure Spring Apps Enterprise 中啟用。 如果您選擇停用建置服務,則可以部署應用程式,但只能使用自定義容器映像。 本節提供啟用和停用建置服務案例的指引。
支援的 APM 類型
本節列出您可以用於整合之 API 的支持語言和必要環境變數。
Application Insights
支援的語言:
- Java
buildpack 系結所需的環境變數:
connection-string
如需其他支持的環境變數,請參閱 Application Insights 概觀。
DynaTrace
支援的語言:
- Java
- .NET
- Go
- Node.js
- WebServers
- PHP
buildpack 系結所需的環境變數:
api-url
或environment-id
(用於建置步驟)api-token
(建置步驟)TENANT
TENANTTOKEN
CONNECTION_POINT
如需其他支持的環境變數,請參閱 Dynatrace
New Relic
支援的語言:
- Java
- .NET
- Node.js
- PHP
buildpack 系結所需的環境變數:
license_key
app_name
如需其他支持的環境變數,請參閱 New Relic
彈性
支援的語言:
- Java
- Node.js
- PHP
buildpack 系結所需的環境變數:
service_name
application_packages
server_url
如需其他支持的環境變數,請參閱 彈性
AppDynamics
支援的語言:
- Java
- Node.js
buildpack 系結所需的環境變數:
agent_application_name
agent_tier_name
agent_node_name
agent_account_name
agent_account_access_key
controller_host_name
controller_ssl_enabled
controller_port
如需其他支持的環境變數,請參閱 AppDynamics
產生器中的系結已被取代
注意
先前,您會透過產生器中的系結來管理 APM 整合和 CA 憑證。 建置器功能中的系結已被取代,未來將會移除。 建議您移轉系結中設定的 APM。 如需詳細資訊,請參閱 移轉系結 中所設定的 APM 一節。
當您針對建置服務使用自己的容器登錄或停用建置服務時,建置器中的系結功能無法使用。
當您針對建置服務使用受控 Azure Container Registry 時,登錄仍可供回溯相容性使用,但未來將會移除。
當您使用 Azure CLI 建立服務實例時,可能會收到錯誤訊息 Buildpack bindings feature is deprecated, it's not available when your own container registry is used for build service or build service is disabled
。 此訊息表示您使用的是舊版的 Azure CLI。 若要修正此問題,請升級 Azure CLI。 如需詳細資訊,請參閱 如何更新 Azure CLI。
設定應用程式組建和部署的 APM 整合
您可以使用下列兩種方式在 Azure Spring Apps 中設定 APM:
在服務實例層級上管理 APM 設定,並藉由參考它們來系結至應用程式組建和部署。 此方法是設定 APM 的建議方式。
透過產生器中的系結管理 APM 組態,並藉由參考產生器系結至應用程式組建和部署。
注意
這種方法是設定 APM 的舊方法,現在已被取代。 建議您移轉系結中設定的 APM。 如需詳細資訊,請參閱 移轉系結 中所設定的 APM 一節。
您現在可以在 Azure Spring Apps 中設定 APM,方法是在服務實例層級上管理 APM 設定,並藉由參考它們系結至應用程式組建和部署。 此方法是設定 APM 的建議方式。
下列各節提供這兩種方法的指引。
管理服務實例層級上的 APM(建議 )
您可以建立 APM 組態並系結至應用程式組建和部署,如下列各節所述。
在 Azure Spring Apps 中管理 APM 設定
您可以使用 Azure 入口網站 或 Azure CLI,在 APM 設定中設定屬性或秘密來管理 APM 整合。
注意
透過 APM 組態設定屬性或秘密時,請使用不含 APM 名稱的密鑰名稱作為前置詞。 例如,請勿針對 Dynatrace 或 APPLICATIONINSIGHTS_
Application Insights 使用DT_
前置詞。 Tanzu APM 組建套件會將密鑰名稱轉換為具有前置詞的原始環境變數名稱。
如果您想要覆寫或設定某些屬性或秘密,例如應用程式名稱或應用程式層級,則需要在使用 APM 名稱做為前置詞的原始環境變數部署應用程式時設定環境變數。
使用下列步驟來顯示、新增、編輯或刪除 APM 設定:
開啟 Azure 入口網站。
在瀏覽窗格中,選取 [APM]。
若要建立 APM 組態,請選取 [ 新增]。 如果您想要全域啟用 APM 設定,請選取 [ 全域啟用]。 所有後續的組建和部署都會自動使用 APM 設定。
若要檢視或編輯 APM 設定,請選取組態的省略號 (...) 按鈕,然後選取 [ 編輯 APM]。
若要刪除 APM 組態,請選取組態的省略號 (...) 按鈕,然後選取 [ 刪除]。 如果任何組建或部署都使用 APM 組態,您就無法將其刪除。
使用下列步驟來檢視系結至組建的 APM 組態:
流覽至 Azure Spring Apps 實例的 [建置服務 ] 頁面。
在瀏覽窗格的 [設定] 區段中,選取 [APM 系結]。
在 [ APM 系 結] 頁面上,檢視系結至組建的 APM 組態。
使用下列步驟來檢視系結至部署的 APM 組態:
如需組建套件和properties
secrets
參數的詳細資訊,請參閱支援的案例 - APM 和 CA 憑證整合一節。
系結至應用程式組建和部署
針對使用受控 Azure Container Registry 的組建服務,請使用下列命令將 APM 整合到您的部署:
az spring app deploy \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-instance-name> \
--name <app-name> \
--builder <builder-name> \
--apms <APM-name> \
--artifact-path <path-to-your-JAR-file>
當您全域啟用 APM 設定時,所有後續的組建和部署都會自動使用它,而且不需要指定 --apms
參數。 如果您想要覆寫全域為部署啟用的 APM 組態,請透過 --apms
參數指定 APM 組態。
對於使用您自己的容器登錄的組建服務,您可以將應用程式建置至容器映射,並將映像部署到目前或其他 Azure Spring Apps 企業版服務實例。
提供您自己的容器登錄會分隔建置與部署。 您可以使用 build 命令,使用建置器建立或更新組建,然後使用 deploy 命令將容器映射部署至服務。
使用下列命令來建置映像並設定 APM:
az spring build-service build <create|update> \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-instance-name> \
--name <app-name> \
--builder <builder-name> \
--apms <APM-name> \
--artifact-path <path-to-your-JAR-file>
當您全域啟用 APM 設定時,所有後續的組建和部署都會自動使用它,而且不需要指定 --apms
參數。 如果您想要覆寫針對組建全域啟用的 APM 組態,請透過 --apms
參數指定 APM 組態。
使用下列命令,使用先前建置的容器映像來部署應用程式,並設定APM。 您可以使用全域啟用的 APM 組態,或使用 --apms
參數來指定 APM 組態。
az spring app deploy \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-instance-name> \
--name <app-name> \
--container-image <your-container-image> \
--container-registry <your-container-registry> \
--registry-password <your-password> \
--registry-username <your-username> \
--apms <your-APM>
當您停用建置服務時,您只能部署具有容器映像的應用程式。 如需詳細資訊,請參閱 使用自定義容器映像部署應用程式。
您可以使用 Azure Spring Apps Enterprise 的多個實例,其中某些實例會建置和部署映像,而其他實例則只會部署映像。 試想以下情況:
針對一個實例,您可以使用使用者容器登錄來啟用建置服務。 然後,您會使用 APM 或 CA 憑證,從成品檔案或原始程式碼建置至容器映像。 然後,您可以部署到目前的 Azure Spring Apps 實例或其他服務實例。 如需詳細資訊,請參閱如何在 Azure Spring Apps Enterprise 中部署 Polyglot 應用程式的<建置和部署 polyglot 應用程式>一節。
在另一個已停用建置服務的實例中,您會在登錄中部署具有容器映像的應用程式,同時也會使用 APM。
在此案例中,您可以使用全域啟用的 APM 組態,或使用 --apms
參數來指定 APM 組態,如下列範例所示:
az spring app deploy \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-instance-name> \
--name <app-name> \
--container-image <your-container-image> \
--container-registry <your-container-registry> \
--registry-password <your-password> \
--registry-username <your-username> \
--apms <your-APM>
透過產生器中的系結管理 APM (已淘汰)
當建置服務使用 Azure Spring Apps 受控容器登錄時,您可以將應用程式建置至映射,然後將其部署,但僅限於目前的 Azure Spring Apps 服務實例內。
透過產生器中的系結管理 APM 組態
您可以透過產生器中的系結來管理 APM 組態。 如需詳細資訊,請參閱 在 Azure Spring Apps 中管理建立器中的系結(已淘汰) 一節。
系結至應用程式組建和部署
使用下列命令,將APM整合到您的部署中。 APM 是透過產生器中的系結來設定:
az spring app deploy \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-instance-name> \
--name <app-name> \
--builder <builder-name> \
--artifact-path <path-to-your-JAR-file>
建立服務實例時啟用ApplicationInsights
如果您在建立服務實例時啟用 Application Insights,則適用下列條件:
- 如果您使用受控 Azure Container Registry 進行建置服務,Application Insights 會系結至預設產生器中的系結。
- 如果您針對建置服務使用自己的容器登錄,或停用建置服務,則會為 Application Insights 建立預設的 APM 組態。 默認 APM 會全域啟用,而且所有後續的組建和部署都會自動使用它。
設定應用程式組建和部署的 CA 憑證
您可以使用下列兩種方式,在 Azure Spring Apps 中設定 CA 憑證:
- 您可以在 TLS/SSL 設定中管理公用憑證,並藉由參考它們來系結至應用程式組建和部署。 此方法是設定 CA 憑證的建議方式。
- 您可以在 TLS/SSL 設定中管理公用憑證,並透過產生器中的系結 CA 憑證。 如需詳細資訊,請參閱 在 Azure Spring Apps 中管理建立器中的系結(已淘汰) 一節。
注意
這種方法是設定 CA 憑證且已被取代的舊方法。 建議您移轉系結中設定的 CA 憑證。 如需詳細資訊,請參閱 移轉系結 中設定的 CA 憑證一節。
您現在可以在 TLS/SSL 設定中管理公用憑證,並藉由參考它們來系結至應用程式組建和部署。 此方法是設定 CA 憑證的建議方式。
若要管理服務實例層級上的公用憑證,請參閱在 Azure Spring Apps 中使用應用程式中的 TLS/SSL 憑證一節。 然後,請遵循下列各節所述的其中一種方法,將 CA 憑證系結至應用程式組建和部署。
將 CA 憑證系結至應用程式組建和部署
如需如何將 CA 憑證系結至部署的資訊,請參閱在 Azure Spring Apps 中使用應用程式中的 TLS/SSL 憑證一節。 然後,使用下列指示系結至應用程式組建。
當您啟用建置服務並使用受控 Azure Container Registry 時,請使用下列命令將 CA 憑證整合到您的部署中:
az spring app deploy \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-instance-name> \
--name <app-name> \
--builder <builder-name> \
--build-certificates <CA certificate-name> \
--artifact-path <path-to-your-JAR-file>
當您針對組建服務使用自己的容器登錄或停用組建服務時,請使用下列命令將 CA 憑證整合到組建中:
az spring build-service build <create|update> \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-instance-name> \
--name <app-name> \
--builder <builder-name> \
--certificates <CA certificate-name> \
--artifact-path <path-to-your-JAR-file>
檢視系結至應用程式組建的 CA 憑證
使用下列步驟來檢視系結至組建的 CA 憑證:
透過產生器中的系結 CA 憑證 (已淘汰)
CA 憑證使用 ca-certificates buildpack 來支援在組建和運行時間將 CA 憑證提供給系統信任存放區。
在 Azure Spring Apps 企業版方案中,CA 憑證會使用 Azure 入口網站 中 [TLS/SSL 設定] 頁面上的 [公鑰憑證] 索引卷標,如下列螢幕快照所示:
您可以在 [ 編輯系結 ] 頁面上設定 CA 憑證。 憑證 succeeded
會顯示在 CA 憑證 清單中。
在 Azure Spring Apps 中的建立器中管理系結(已淘汰)
本節僅適用於已啟用建置服務的 Azure Spring Apps Enterprise 服務實例。 啟用建置服務后,一個 buildpack 系結表示針對一個 APM 類型的認證組態,或針對 CA 憑證類型設定 CA 憑證組態。 針對 APM 整合,請遵循先前的指示來設定 APM 的必要環境變數或秘密。
注意
設定 APM 系結的環境變數時,請使用不含前置詞的索引鍵名稱。 例如,請勿針對 Dynatrace 系結或 APPLICATIONINSIGHTS_
Application Insights 使用DT_
前置詞。 Tanzu APM 組建套件會將密鑰名稱轉換為具有前置詞的原始環境變數名稱。
您可以使用 Azure 入口網站 或 Azure CLI 來管理 buildpack 系結。
使用下列步驟來檢視 buildpack 系結:
在 Azure 入口網站 中,移至您的 Azure Spring Apps Enterprise 服務實例。
在瀏覽窗格中,選取 [ 建置服務]。
選取 [系結] 數據行底下的 [編輯],以檢視為建立器設定的系結。
檢閱 [編輯預設產生器] 頁面上的系結。
建立 buildpack 系結
若要建立組建套件系結,請在 [編輯系結] 頁面上選取 [取消系結],指定系結屬性,然後選取 [儲存]。
解除系結組建套件系結
您可以使用 Unbind 系結命令或編輯系結屬性,解除系結套件系結。
若要使用 [解除系結系結 ] 命令,請選取 [系結 ] 超鏈接,然後選取 [ 解除系結系結]。
若要藉由編輯系結屬性解除系結建置套件系結,請選取 [編輯系結],然後選取 [ 解除系結]。
當您解除系結時,系結狀態會從 系結 變更為 Unbound。
從產生器中的系結移轉 APM 和 CA 憑證
產生器中的系結功能已被取代,且未來將會移除。 建議您在產生器中移轉系結。
您可以在系結中設定 APM 和 CA 憑證,並使用下列各節來移轉它們。
移轉系結中設定的 APM
在大部分的使用案例中,預設產生器中的系結中只會設定一個 APM。 您可以在系結中使用相同的組態建立新的 APM 組態,並全域啟用此 APM 設定。 所有後續的組建和部署都會自動使用此組態。 使用下列步驟移轉:
使用下列命令來建立 APM 組態:
az spring apm create \ --resource-group <resource-group-name> \ --service <Azure-Spring-Apps-instance-name> \ --name <your-APM-name> \ --type <your-APM-type> \ --properties a=b c=d \ --secrets e=f g=h
使用下列命令全域啟用 APM 設定:
az spring apm enable-globally \ --resource-group <resource-group-name> \ --service <Azure-Spring-Apps-instance-name> \ --name <your-APM-name> \
使用下列命令重新部署所有應用程式,以全域啟用新的 APM 組態:
az spring app deploy \ --resource-group <resource-group-name> \ --service <Azure-Spring-Apps-instance-name> \ --name <app-name> \ --builder <builder-name> \ --artifact-path <path-to-your-JAR-file>
確認新的 APM 組態適用於所有應用程式。 如果一切正常運作,請使用下列命令來移除產生器中的 APM 系結:
az spring build-service builder buildpack-binding delete \ --resource-group <resource-group-name> \ --service <Azure-Spring-Apps-instance-name> \ --name <your-APM-buildpack-binding-name> \ --builder-name <your-builder-name>
如果系結中設定了數個 APM,您可以在系結中使用相同的組態建立數個 APM 組態,並在適用時全域啟用 APM 設定。 --apms
如果您想要覆寫全域啟用的 APM,請使用 參數來指定部署的 APM 組態,如下列命令所示:
az spring app deploy \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-instance-name> \
--name <app-name> \
--builder <builder-name> \
--apms <APM-name> \
--artifact-path <path-to-your-JAR-file>
在移轉過程中,APM 會在系結和 APM 設定中設定。 在此情況下,APM 組態會生效,而且會忽略系結。
移轉系結中設定的 CA 憑證
使用下列步驟來移轉 CA 憑證:
如果是在系結中設定的 CA 憑證,如果用於運行時間,您可以將憑證載入您的應用程式。 如需詳細資訊,請參閱在 Azure Spring Apps 中使用應用程式中的 TLS/SSL 憑證一節。
使用下列命令,使用 CA 憑證重新部署所有應用程式。 如果您在建置階段使用憑證,請使用
--build-certificates
參數來指定在建置階段用於部署的 CA 憑證:az spring app deploy \ --resource-group <resource-group-name> \ --service <Azure-Spring-Apps-instance-name> \ --name <app-name> \ --builder <builder-name> \ --build-certificates <CA certificate-name> \ --artifact-path <path-to-your-JAR-file>
確認 CA 憑證是否適用於使用該憑證的所有應用程式。 如果一切正常運作,請使用下列命令來移除產生器中的 CA 憑證系結:
az spring build-service builder buildpack-binding delete \ --resource-group <resource-group-name> \ --service <Azure-Spring-Apps-instance-name> \ --name <your-CA-certificate-buildpack-binding-name> \ --builder-name <your-builder-name>