Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här självstudien är del tre i en serie och visar hur du distribuerar ett Service Fabric-program till ett kluster i Azure.
I den tredje delen i serien får du lära dig att:
- Skapa ett säkert Linux-kluster i Azure
- Distribuera ett program till klustret
I den här självstudieserien får du lära du dig att:
- Skapa ett Java Service Fabric Reliable Services-program
- distribuera och felsöka programmet på ett lokalt kluster
- Distribuera programmet till ett Azure-kluster
- konfigurera övervakning och diagnostik för programmet
- Konfigurera CI/CD
Förutsättningar
Innan du börjar den här självstudien:
- Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto
- Installera Azure CLI
- Installera Service Fabric SDK för Mac eller Linux
- Installera Python 3
Skapa ett Service Fabric-kluster i Azure
Följande steg skapar de resurser som krävs för att distribuera programmet till ett Service Fabric-kluster. Dessutom konfigureras resurser som behövs för att övervaka hälsotillståndet för din lösning med hjälp av ELK-stacken (Elasticsearch, Logstash, Kibana). Mer specifikt används Event Hubs som mottagare för loggar från Service Fabric. Den är konfigurerad för att skicka loggar från Service Fabric-klustret till logstash-instansen.
Öppna en terminal och ladda ned följande paket som innehåller nödvändiga hjälpskript och mallarna för att skapa resurserna i Azure
git clone https://github.com/Azure-Samples/service-fabric-java-quickstart.gitLogga in på ditt Azure-konto
az loginAnge din Azure-prenumeration som du vill använda för att skapa resurserna
az account set --subscription [SUBSCRIPTION-ID]Från mappen service-fabric-java-quickstart/AzureCluster kör du följande kommando för att skapa ett klustercertifikat i Key Vault. Det här certifikatet används för att skydda Service Fabric-klustret. Ange regionen (måste vara samma som service fabric-klustret), resursgruppens namn för nyckelvalvet, nyckelvalvets namn, certifikatlösenord och klustrets DNS-namn.
./new-service-fabric-cluster-certificate.sh [REGION] [KEY-VAULT-RESOURCE-GROUP] [KEY-VAULT-NAME] [CERTIFICATE-PASSWORD] [CLUSTER-DNS-NAME-FOR-CERTIFICATE] Example: ./new-service-fabric-cluster-certificate.sh 'westus' 'testkeyvaultrg' 'testkeyvault' '<password>' 'testservicefabric.westus.cloudapp.azure.com'Föregående kommando returnerar följande information som bör noteras för senare användning.
Source Vault Resource Id: /subscriptions/<subscription_id>/resourceGroups/testkeyvaultrg/providers/Microsoft.KeyVault/vaults/<name> Certificate URL: https://<name>.vault.azure.net/secrets/<cluster-dns-name-for-certificate>/<guid> Certificate Thumbprint: <THUMBPRINT>Skapa en resursgrupp för lagringskontot som lagrar dina loggar
az group create --location [REGION] --name [RESOURCE-GROUP-NAME] Example: az group create --location westus --name teststorageaccountrgSkapa ett lagringskonto som ska användas för att lagra loggarna som ska skapas
az storage account create -g [RESOURCE-GROUP-NAME] -l [REGION] --name [STORAGE-ACCOUNT-NAME] --kind Storage Example: az storage account create -g teststorageaccountrg -l westus --name teststorageaccount --kind StorageGå till Azure-portalen och gå till fliken Signatur för delad åtkomst för ditt Lagringskonto. Generera SAS-token på följande sätt.
Kopiera kontots SAS-URL och lägg den åt sidan för användning när du skapar Service Fabric-klustret. Den liknar följande URL:
?sv=2017-04-17&ss=bfqt&srt=sco&sp=rwdlacup&se=2018-01-31T03:24:04Z&st=2018-01-30T19:24:04Z&spr=https,http&sig=IrkO1bVQCHcaKaTiJ5gilLSC5Wxtghu%2FJAeeY5HR%2BPU%3DSkapa en resursgrupp som innehåller Event Hub-resurserna. Event Hubs används för att skicka meddelanden från Service Fabric till servern som kör ELK-resurserna.
az group create --location [REGION] --name [RESOURCE-GROUP-NAME] Example: az group create --location westus --name testeventhubsrgSkapa en Event Hubs-resurs med hjälp av följande kommando. Följ anvisningarna för att ange information för namespaceName, eventHubName, consumerGroupName, sendAuthorizationRule och receiveAuthorizationRule.
az deployment group create -g [RESOURCE-GROUP-NAME] --template-file eventhubsdeploy.json Example: az deployment group create -g testeventhubsrg --template-file eventhubsdeploy.json Please provide string value for 'namespaceName' (? for help): testeventhubnamespace Please provide string value for 'eventHubName' (? for help): testeventhub Please provide string value for 'consumerGroupName' (? for help): testeventhubconsumergroup Please provide string value for 'sendAuthorizationRuleName' (? for help): sender Please provide string value for 'receiveAuthorizationRuleName' (? for help): receiverKopiera innehållet i utdatafältet i JSON-utdata från föregående kommando. Avsändarinformationen används när Service Fabric-klustret skapas. Mottagarnamnet och nyckeln ska sparas för användning i nästa självstudie när Logstash-tjänsten har konfigurerats för att ta emot meddelanden från Händelsehubb. Följande blob är ett exempel på JSON-utdata:
"outputs": { "receiver Key": { "type": "String", "value": "[KEY]" }, "receiver Name": { "type": "String", "value": "receiver" }, "sender Key": { "type": "String", "value": "[KEY]" }, "sender Name": { "type": "String", "value": "sender" } }Kör eventhubssastoken.py-skriptet för att generera SAS-URL:en för den EventHubs-resurs som du skapade. Den här SAS-URL:en används av Service Fabric-klustret för att skicka loggar till Event Hubs. Därför används avsändarprincipen för att generera URL:en. Skriptet returnerar SAS-URL:en för event hubs-resursen som används i följande steg:
python3 eventhubssastoken.py 'testeventhubs' 'testeventhubs' 'sender' '[PRIMARY-KEY]'Kopiera värdet för sr-fältet i JSON som returneras. SR-fältvärdet är SAS-token för EventHubs. Följande URL är ett exempel på sr-fältet :
https%3A%2F%testeventhub.servicebus.windows.net%testeventhub&sig=7AlFYnbvEm%2Bat8ALi54JqHU4i6imoFxkjKHS0zI8z8I%3D&se=1517354876&skn=senderDin SAS-URL för EventHubs följer strukturen:
https://<namespacename>.servicebus.windows.net/<eventhubsname>?sr=<sastoken>. Till exempel:https://testeventhubnamespace.servicebus.windows.net/testeventhub?sr=https%3A%2F%testeventhub.servicebus.windows.net%testeventhub&sig=7AlFYnbvEm%2Bat8ALi54JqHU4i6imoFxkjKHS0zI8z8I%3D&se=1517354876&skn=senderÖppna filensfdeploy.parameters.json och ersätt följande innehåll från föregående steg. [SAS-URL-STORAGE-ACCOUNT] antecknades i steg 8. [SAS-URL-EVENT-HUBS] noterades i steg 11.
"applicationDiagnosticsStorageAccountName": { "value": "teststorageaccount" }, "applicationDiagnosticsStorageAccountSasToken": { "value": "[SAS-URL-STORAGE-ACCOUNT]" }, "loggingEventHubSAS": { "value": "[SAS-URL-EVENT-HUBS]" }Öppnar sfdeploy.parameters.json. Ändra följande parametrar och spara sedan filen.
- clusterName. Använd endast gemener och siffror.
- adminUserName (till ett annat värde än tomt)
- adminPassword (till ett annat värde än tomt)
Kör följande kommando för att skapa ditt Service Fabric-kluster
az sf cluster create --location 'westus' --resource-group 'testlinux' --template-file sfdeploy.json --parameter-file sfdeploy.parameters.json --secret-identifier <certificate_url_from_step4>
Distribuera ditt program till klustret
Innan du distribuerar programmet måste du lägga till följande kodfragment i filen Voting/VotingApplication/ApplicationManifest.xml . Fältet X509FindValue är tumavtrycket som returneras från steg 4 i avsnittet Skapa ett Service Fabric-kluster i Azure . Det här kodfragmentet är kapslat under fältet ApplicationManifest (rotfältet).
<Certificates> <SecretsCertificate X509FindType="FindByThumbprint" X509FindValue="[CERTIFICATE-THUMBPRINT]" /> </Certificates>Om du vill distribuera programmet till det här klustret måste du använda SFCTL för att upprätta en anslutning till klustret. SFCTL kräver en PEM-fil med både den offentliga och privata nyckeln för att ansluta till klustret. Kör följande kommando för att skapa en PEM-fil med både den offentliga och den privata nyckeln.
openssl pkcs12 -in <clustername>.<region>.cloudapp.azure.com.pfx -out sfctlconnection.pem -nodes -passin pass:<password>Kör följande kommando för att ansluta till klustret.
sfctl cluster select --endpoint https://<clustername>.<region>.cloudapp.azure.com:19080 --pem sfctlconnection.pem --no-verifyOm du vill distribuera ditt program går du till mappen Voting/Scripts och kör skriptet install.sh .
./install.shOm du vill komma åt Service Fabric Explorer öppnar du din favoritwebbläsare och skriver in
https://testlinuxcluster.westus.cloudapp.azure.com:19080. Välj certifikatet från certifikatarkivet som du vill använda för att ansluta till den här slutpunkten. Om du använder en Linux-dator måste certifikaten som genererades av new-service-fabric-cluster-certificate.sh-skriptet importeras till Chrome för att visa Service Fabric Explorer. Om du använder en Mac måste du installera PFX-filen i nyckelringen. Du märker att programmet har installerats i klustret.
Om du vill komma åt ditt program skriver du in
https://testlinuxcluster.westus.cloudapp.azure.com:8080
Om du vill avinstallera programmet från klustret kör du skriptet uninstall.sh i mappen Skript
./uninstall.sh
Nästa steg
I den här handledningen lärde du dig att:
- Skapa ett säkert Linux-kluster i Azure
- Skapa resurser som krävs för övervakning med ELK
Gå vidare till nästa kurs: