Bagikan melalui


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:

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 tipe users.

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.

              Grup sumber daya aplikasi

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:

              Lakukan tindakan kustom

  • Buka Pengguna dan pilih Tambahkan. Berikan masukan untuk membuat sumber daya dan mengirimkan formulir:

Cuplikan layar yang menampilkan tombol Tambahkan yang dipilih dari Pengguna.

  • Buka Pengguna dan pilih sumber daya pengguna dan pilih Tindakan Konteks Kustom:

Cuplikan layar yang menampilkan Tindakan Konteks Kustom yang dipilih.

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