Tutorial: Membuat aplikasi terkelola dengan tindakan dan sumber daya khusus
Dalam tutorial ini, Anda membuat aplikasi terkelola Anda sendiri dengan tindakan dan sumber daya kustom. Aplikasi terkelola berisi tindakan kustom di Overview
halaman, jenis sumber daya kustom yang ditampilkan sebagai item menu terpisah di Table of Content
dan tindakan konteks kustom pada halaman sumber daya kustom.
Tutorial ini mencakup langkah-langkah berikut:
- Menulis file definisi antarmuka pengguna untuk membuat instans aplikasi terkelola
- Templat penggunaan penulis dengan Penyedia Kustom Azure, Akun Azure Storage Azure, dan Fungsi Azure
- Artefak definisi tampilan penulis dengan tindakan kustom dan sumber daya
- Buat definisi aplikasi terkelola.
- Menerapkan instans aplikasi terkelola
- Melakukan tindakan kustom dan membuat sumber daya kustom
Prasyarat
Untuk menyelesaikan tutorial ini, Anda perlu mengetahui:
- Cara Membuat dan menerbitkan definisi aplikasi terkelola.
- Cara Menggunakan aplikasi Katalog Layanan melalui portal Microsoft Azure.
- Cara Membuat antarmuka pengguna portal Microsoft Azure untuk aplikasi terkelola Anda.
- Kapabilitas Lihat artefak definisi.
- Kapabilitas Penyedia Kustom Azure.
Definisi antarmuka pengguna
Dalam tutorial ini, Anda membuat aplikasi terkelola dan grup sumber daya terkelolanya berisi instans penyedia kustom, akun penyimpanan, dan fungsi. Fungsi Azure yang digunakan dalam contoh ini mengimplementasikan API yang menangani operasi penyedia kustom untuk tindakan dan sumber daya. Akun Azure Storage digunakan sebagai penyimpanan dasar untuk sumber daya penyedia kustom Anda.
Definisi antarmuka pengguna untuk membuat instans aplikasi terkelola funcname
mencakup storagename
dan elemen input. Nama akun Azure Storage dan nama fungsi harus unik secara global. Secara default, file fungsi disebarkan dari paket fungsi sampel, tetapi Anda dapat mengubahnya dengan menambahkan elemen input untuk tautan paket di createUiDefinition.json:
{
"name": "funcname",
"type": "Microsoft.Common.TextBox",
"label": "Name of the function to be created",
"toolTip": "Name of the function to be created",
"visible": true,
"constraints": {
"required": true
}
},
{
"name": "storagename",
"type": "Microsoft.Common.TextBox",
"label": "Name of the storage to be created",
"toolTip": "Name of the storage to be created",
"visible": true,
"constraints": {
"required": true
}
},
{
"name": "zipFileBlobUri",
"type": "Microsoft.Common.TextBox",
"defaultValue": "https://github.com/Azure/azure-quickstart-templates/tree/master/quickstarts/microsoft.customproviders/custom-rp-with-function/artifacts/functionzip/functionpackage.zip",
"label": "The Uri to the uploaded function zip file",
"toolTip": "The Uri to the uploaded function zip file",
"visible": true
}
Dan output dalam createUiDefinition.json:
"funcname": "[steps('applicationSettings').funcname]",
"storageName": "[steps('applicationSettings').storagename]",
"zipFileBlobUri": "[steps('applicationSettings').zipFileBlobUri]"
Contoh lengkap createUiDefinition.js pada sampel dapat ditemukan di Referensi: Artefak elemen antarmuka pengguna.
Templat dengan penyedia kustom
Untuk membuat instans aplikasi terkelola dengan penyedia kustom, Anda perlu menentukan sumber daya penyedia kustom dengan nama publik dan mengetikkan Microsoft.CustomProviders/resourceProviders
mainTemplate.json Anda. Dalam sumber daya tersebut, Anda menentukan jenis dan tindakan sumber daya untuk layanan Anda. Untuk menerapkan fungsi Azure dan instans Akun Azure Storage menentukan sumber daya tipe Microsoft.Web/sites
dan Microsoft.Storage/storageAccounts
masing-masing.
Dalam tutorial ini, Anda membuat satu users
jenis sumber daya, ping
tindakan kustom, dan users/contextAction
tindakan kustom yang dilakukan dalam konteks users
sumber daya kustom. Untuk setiap jenis dan tindakan sumber daya, berikan titik akhir yang menunjuk ke fungsi dengan nama yang disediakan dalam createUiDefinition.json. Tentukan routingType
sebagai Proxy,Cache
untuk jenis sumber daya dan Proxy
untuk tindakan:
{
"apiVersion": "[variables('customrpApiversion')]",
"type": "Microsoft.CustomProviders/resourceProviders",
"name": "[variables('customProviderName')]",
"location": "[parameters('location')]",
"properties": {
"actions": [
{
"name": "ping",
"routingType": "Proxy",
"endpoint": "[listSecrets(resourceId('Microsoft.Web/sites/functions', parameters('funcname'), 'HttpTrigger1'), '2018-02-01').trigger_url]"
},
{
"name": "users/contextAction",
"routingType": "Proxy",
"endpoint": "[listSecrets(resourceId('Microsoft.Web/sites/functions', parameters('funcname'), 'HttpTrigger1'), '2018-02-01').trigger_url]"
}
],
"resourceTypes": [
{
"name": "users",
"routingType": "Proxy,Cache",
"endpoint": "[listSecrets(resourceId('Microsoft.Web/sites/functions', parameters('funcname'), 'HttpTrigger1'), '2018-02-01').trigger_url]"
}
]
},
"dependsOn": [
"[concat('Microsoft.Web/sites/',parameters('funcname'))]"
]
}
Contoh lengkap mainTemplate.jspada sampel dapat ditemukan di Referensi: Penyebaran artefak templat.
Lihat artefak definisi
Untuk menentukan antarmuka pengguna yang menyertakan tindakan kustom dan sumber daya kustom di aplikasi terkelola Anda, Anda perlu penulis viewDefinition.json pada artefak. Untuk informasi selengkapnya tentang artefak definisi tampilan, lihat Menampilkan artefak definisi di Azure Managed Applications.
Dalam tutorial ini, Anda akan:
- Halaman Gambaran Umum dengan tombol toolbar yang mewakili tindakan kustom
TestAction
dengan input teks dasar. - Halaman Pengguna yang mewakili tipe sumber daya kustom
users
. - Tindakan sumber daya kustom
users/contextAction
di Pengguna halaman yang akan dilakukan dalam konteks sumber daya kustom tipeusers
.
Contoh berikut menunjukkan konfigurasi tampilan untuk halaman "Gambaran Umum":
{
"kind": "Overview",
"properties": {
"header": "Welcome to your Demo Azure Managed Application",
"description": "This Managed application with Custom Provider is for demo purposes only.",
"commands": [
{
"displayName": "Ping Action",
"path": "/customping",
"icon": "LaunchCurrent"
}
]
}
}
Contoh berikut mencakup konfigurasi halaman sumber daya Pengguna dengan tindakan sumber daya kustom:
{
"kind": "CustomResources",
"properties": {
"displayName": "Users",
"version": "1.0.0.0",
"resourceType": "users",
"createUIDefinition": {},
"commands": [
{
"displayName": "Custom Context Action",
"path": "users/contextAction",
"icon": "Start"
}
],
"columns": [
{
"key": "properties.FullName",
"displayName": "Full Name"
},
{
"key": "properties.Location",
"displayName": "Location",
"optional": true
}
]
}
}
Contoh lengkap viewDefinition.jspada sampel dapat ditemukan di Referensi: Lihat artefak definisi.
Definisi Aplikasi Terkelola
Ke paket artefak aplikasi terkelola berikut ke arsip zip dan unggah ke penyimpanan:
- createUiDefinition.json
- mainTemplate.json
- viewDefinition.json
Semua berkas harus berada pada level root. Paket dengan artefak dapat disimpan di penyimpanan apa pun, misalnya gumpalan GitHub atau blob Akun Azure Storage Azure. Berikut adalah skrip untuk mengunggah paket aplikasi ke akun penyimpanan:
$resourceGroup="appResourcesGroup"
$storageName="mystorageaccount$RANDOM"
# Sign in to your Azure subscription
Connect-AzAccount
# Create resource group for managed application definition and application package
New-AzResourceGroup -Name $resourceGroup -Location eastus
# Create storage account for a package with application artifacts
$storageAccount=New-AzStorageAccount `
-ResourceGroupName $resourceGroup `
-Name $storageName `
-SkuName Standard_LRS `
-Location eastus `
$ctx=$storageAccount.Context
# Create storage container and upload zip to blob
New-AzStorageContainer -Name appcontainer -Context $ctx -Permission blob
Set-AzStorageBlobContent `
-File "path_to_your_zip_package" `
-Container appcontainer `
-Blob app.zip `
-Context $ctx
# Get blob absolute uri
$blobUri=(Get-AzureStorageBlob -Container appcontainer -Blob app.zip -Context $ctx).ICloudBlob.uri.AbsoluteUri
Jalankan skrip Azure CLI berikut atau ikuti langkah-langkah dalam portal Azure untuk menyebarkan definisi aplikasi terkelola Katalog Layanan:
Untuk menjalankan sampel ini, instal versi terbaru Azure CLI. Untuk memulai, jalankan az login
guna membuat koneksi dengan Azure.
Sampel untuk Azure CLI ditulis untuk bash
shell. Untuk menjalankan sampel ini di Windows PowerShell atau Perintah, Anda perlu mengubah elemen skrip.
resourceGroup="appResourcesGroup"
# Select subscription and create resource group (if you have not created yet)
az account set --subscription <subscriptionID>
az group create --name $resourceGroup --location eastus
# Get object ID of your identity
userid=$(az ad user list --upn example@contoso.org --query [0].id --output tsv)
# Get role definition ID for the Owner role
roleid=$(az role definition list --name Owner --query [].name --output tsv)
# Create managed application definition resource
az managedapp definition create \
--name "ManagedUsersAppDefinition" \
--location "eastus" \
--resource-group $resourceGroup \
--lock-level ReadOnly \
--display-name "Managed users app definition" \
--description "Managed application with Azure Custom Provider" \
--authorizations "$userid:$roleid" \
--package-file-uri "path to your app.zip package"
Instans aplikasi terkelola
Saat definisi aplikasi terkelola disebarkan, jalankan skrip berikut atau ikuti langkah-langkah dalam portal Azure untuk menyebarkan instans aplikasi terkelola Anda dengan penyedia kustom:
appResourcesGroup="appResourcesGroup"
applicationGroup="usersApplicationGroup"
# Create resource group for managed application instance
az group create --name $applicationGroup --location eastus
# Get ID of managed application definition
appid=$(az managedapp definition show --name ManagedUsersAppDefinition --resource-group $appResourcesGroup --query id --output tsv)
# Create the managed application
az managedapp create \
--name ManagedUsersApp \
--location "eastus" \
--kind "Servicecatalog" \
--resource-group $applicationGroup \
--managedapp-definition-id $appid \
--managed-rg-id "managedResourcesGroup" \
--parameters "{\"funcname\": {\"value\": \"managedusersappfunction\"}, \"storageName\": {\"value\": \"managedusersappstorage\"}}"
Gunakan tindakan dan sumber daya kustom
Setelah instans aplikasi katalog layanan disebarkan, Anda memiliki dua grup sumber daya baru. Grup applicationGroup
sumber daya berisi instans aplikasi terkelola dan grup managedResourceGroup
sumber daya menyimpan sumber daya untuk aplikasi terkelola, termasuk penyedia kustom.
Anda dapat pergi ke instans aplikasi terkelola dan melakukan tindakan kustom di halaman "Gambaran Umum", membuat sumber daya kustom pengguna di halaman "Pengguna" dan menjalankan tindakan konteks kustom pada sumber daya kustom.
- Buka Gambaran Umum dan pilih Tindakan Ping:
- Buka Pengguna dan pilih Tambahkan. Berikan masukan untuk membuat sumber daya dan mengirimkan formulir:
- Buka Pengguna dan pilih sumber daya pengguna dan pilih Tindakan Konteks Kustom:
Membersihkan sumber daya
Di langkah-langkah sebelumnya, Anda membuat sumber daya Azure dalam grup sumber daya. Jika Anda tidak berharap membutuhkan sumber daya ini di masa mendatang, Anda dapat menghapusnya dengan menghapus grup sumber daya.
Pada menu portal Microsoft Azure atau halaman Beranda, pilih Grup sumber daya. Setelah itu, pada halaman Grup sumber daya, pilih myResourceGroup.
Pada halaman myResourceGroup, pastikan sumber daya yang tercantum adalah sumber daya yang ingin Anda hapus.
Pilih Hapus grup sumber daya, ketik myResourceGroup di kotak teks untuk mengonfirmasi, lalu pilih Hapus.
Cari bantuan
Jika Anda memiliki pertanyaan atau memerlukan jawaban tentang Azure Managed Applications, Anda dapat memposting pertanyaan di Stack Overflow dengan tag azure-managed-app
atau Tanya Jawab Microsoft dengan tag azure-managed-application
.
Langkah berikutnya
Untuk memublikasikan aplikasi terkelola Anda ke Azure Marketplace, lihat Aplikasi terkelola Azure di Marketplace.
Pelajari selengkapnya tentang Penyedia Kustom