9

मैं वास्तव में एज़ूर मंच पर नया हूं और शायद यह एक बेवकूफ सवाल है लेकिन मैं इस विषय के बारे में जानकारी प्राप्त करने का प्रबंधन नहीं करता हूं। सच में मुझे इसके लिए मदद चाहिए। मैं एक विश्वविद्यालय प्रोजेक्ट के लिए वेब सेवा द्वारा उपयोग किए जाने वाले डेटाबेस को तैनात कर रहा हूं। इस डेटाबेस में मेरे पास एक संग्रहीत प्रक्रिया है और इसे दैनिक चलाने की आवश्यकता है।Azure Automation का उपयोग करके संग्रहित प्रक्रिया को कैसे चलाया जाए?

पाया कि Azure Automation के साथ आप इस तरह के कार्यों को प्रोग्राम या शेड्यूल कर सकते हैं। मैंने सेवा को "स्थापित" किया है और मैं "रनबुक" बनाने की कोशिश कर रहा हूं लेकिन मुझे नहीं पता कि यहां या कैसे कोड करना है क्योंकि मैंने कभी भी PowerShell का उपयोग नहीं किया है।

प्रदान की गई कोई भी सहायता की सराहना की जाएगी। अग्रिम में धन्यवाद!

संपादित करें 1:

तो मैं जादू चलाने के लिए इस कोड का उपयोग करने के लिए कोशिश कर रहा हूँ:

workflow WORKFLOW_NAME 
{ 
    param( 

    ) 


    inlinescript { 
     # Define the connection to the SQL Database 
     $Conn = New-Object System.Data.SqlClient.SqlConnection("Data Source=SERVER_NAME.database.windows.net;Initial Catalog=DATABASE_NAME;Integrated Security=False;User ID=USERNAME;Password=PASSWORD;Connect Timeout=60;Encrypt=False;TrustServerCertificate=False") 

     # Open the SQL connection 
     $Conn.Open() 

     # Define the SQL command to run. 
     $Cmd=new-object system.Data.SqlClient.SqlCommand("exec PROCEDURE_NAME", $Conn) 
     $Cmd.CommandTimeout=120 

     # Execute the SQL command 
     $Da=New-Object system.Data.SqlClient.SqlDataAdapter($Cmd) 

     # Close the SQL connection 
     $Conn.Close() 
    } 
} 

बात है जब मैं RunBook बचाने के लिए और इसे प्रकाशित, यह कहना है कि कोई त्रुटियों। जब मैं रनबुक चलाता हूं तो यह शुरू होता है और कोई त्रुटि नहीं भेजता है और न ही अपवाद भेजता है, तो आप उम्मीद कर सकते हैं कि यह सही काम करता है ?, लेकिन जब डेटाबेस से परामर्श करते हैं तो तालिका में कोई संशोधन नहीं होता है, प्रक्रिया को संशोधित करने का इरादा है। इसमें क्या त्रुटि हो सकती है? मैं क्या गलत कर रहा हूं?

मैंने https://gallery.technet.microsoft.com/scriptcenter/How-to-use-a-SQL-Command-be77f9d2#content से संदर्भ कोड लिया, इसे वैयक्तिकृत किया और "param" से छुटकारा पा लिया क्योंकि रनबुक शुरू होने पर, किसी प्रविष्टि पैरामीटर के लिए कभी भी नहीं पूछा गया, इसलिए मैंने पूर्ण कनेक्शन स्ट्रिंग के साथ जाने का फैसला किया। मैं अपने सी # प्रोजेक्ट के समान कनेक्शन स्ट्रिंग का उपयोग कर रहा हूं, जो पूरी तरह से जुड़ता है और काम करता है।

मैं "नया" एज़ूर इंटरफ़ेस का उपयोग कर रहा हूं, यह नहीं पता कि यह इस संबंध में किसी भी महत्व का हो सकता है या नहीं।

फिर, आप जो भी सहायता प्रदान कर सकते हैं, उसके लिए धन्यवाद।

+0

इनलाइनस्क्रिप्ट में पैरामीटर तक पहुंचने के लिए आपको सोमवार का उपयोग करके एक $ जोड़ना होगा। Https://technet.microsoft.com/en-us/library/jj574197(v=ws.11).aspx देखें। –

उत्तर

4

मैं इस समस्या के मूल में पाया गया, कोड सिर्फ ठीक काम करता है, मुद्दा यह था कि मैं Azure Automation के अंदर गलत प्रकार के रनबुक का उपयोग कर रहा था, इसलिए, सुनिश्चित करें कि आप एक सरल PowerShell के बजाय वर्कफ़्लो पावरशेल चला रहे हैं।

कोड मैं सवाल कार्यों में तैनात है, लेकिन मैं क्या यहाँ प्रदान उदाहरण का उपयोग करके बनाया कोड को समझने के लिए एक बेहतर रास्ता मिल गया: (@Joseph Idziorek करने के लिए धन्यवाद) https://azure.microsoft.com/en-us/blog/azure-automation-your-sql-agent-in-the-cloud/

यहाँ के लिए काम कर रहे कोड है किसी के रूप में मैंने किया, जो एक ही समस्या में पड़ गए:

workflow NAME-OF-YOUR-WORKFLOW 
{ 
    Write-Output "JOB START BEFORE INLINESCRIPT" 

    inlinescript 
    { 
     Write-Output "JOB START" 
     # Create connection to Master DB 
     $MasterDatabaseConnection = New-Object System.Data.SqlClient.SqlConnection 
     $MasterDatabaseConnection.ConnectionString = "Data Source=YOUR-DATABASE-SERVER-NAME.database.windows.net;Initial Catalog=YOUR-DATABASE-NAME;Integrated Security=False;User ID=YOUR-DATABASE-USERNAME;Password=YOUR-DATABASE-PASSWORD;Connect Timeout=60;Encrypt=False;TrustServerCertificate=False" 
     $MasterDatabaseConnection.Open() 

     Write-Output "CONNECTION OPEN" 

     # Create command 
     $MasterDatabaseCommand = New-Object System.Data.SqlClient.SqlCommand 
     $MasterDatabaseCommand.Connection = $MasterDatabaseConnection 
     $MasterDatabaseCommand.CommandText = "YOUR-PROCEDURE-NAME" 

     Write-Output "DATABASE COMMAND TEXT ASSIGNED" 

     # Execute the query 
     $MasterDatabaseCommand.ExecuteNonQuery() 

     Write-Output "EXECUTING QUERY" 

     # Close connection to Master DB 
     $MasterDatabaseConnection.Close() 

     Write-Output "CONNECTION CLOSED" 
    }  
    Write-Output "WORK END - AFTER INLINESCRIPT" 
} 

राइट-आउटपुट, वैकल्पिक हैं कि तुम क्या कोड का हिस्सा काम कर रहा है और अगर सब कुछ प्रत्येक चलाने के बाद से काम किया है की जाँच करना चाहते हैं।

+2

आप इस स्क्रिप्ट को PowerShell वर्कफ़्लो के रूप में चलाने के लिए सक्षम होना चाहिए जैसा कि आप ऊपर करते हैं या कुछ मामूली कोड परिवर्तनों के साथ एक सरल पावरशेल स्क्रिप्ट के रूप में। इनलाइनस्क्रिप्ट में अपना कोड लपेटना वास्तव में उन cmdlets को नियमित PowerShell के रूप में चलाता है।यदि आप PowerShell स्क्रिप्ट रनबुक का उपयोग कर रहे हैं, तो इनलाइनस्क्रिप्ट और वर्कफ़्लो को हटाएं और इसे केवल काम करना चाहिए। नियमित PowerShell के रूप में चलना वास्तव में पसंदीदा तरीका होना चाहिए क्योंकि आपकी स्क्रिप्ट तेजी से शुरू हो जाएंगी क्योंकि उन्हें संकलन करने की आवश्यकता नहीं है। –

+0

आपकी सलाह के लिए बहुत बहुत धन्यवाद। जैसा कि आप कहते हैं, मैं इसका उपयोग करने की कोशिश करूंगा, मैं पावरशेल के साथ वास्तव में नोब हूं। –

+0

@ एलिज़ाबेथ अपनी लाइन को कूपर करें 'यदि आप पावरशेल स्क्रिप्ट रनबुक का उपयोग कर रहे हैं, तो इनलाइनस्क्रिप्ट और वर्कफ़्लो को हटाएं और इसे केवल' काम करना चाहिए 'मेरे लिए बहुत कुछ बताता है। इसे आधिकारिक दस्तावेज़ वेबसाइट पर नहीं मिला। या पढ़ने के दौरान इसे याद किया है। मेरे पास वर्कफ़्लो और इनलाइनस्क्रिप्ट था और काम करने के लिए एक लेखन-आउटपुट "हैलो वर्ल्ड" नहीं मिला। वर्कफ़्लो और इनलाइन स्क्रिप्ट और स्थानीय रूप से काम किए बिना काम किया। यह बताता है क्यों। धन्यवाद! मैंने आपकी टिप्पणी को बढ़ा दिया है। –

0

निम्नलिखित लेख और बाद नमूना कोड Azure स्वचालन से Azure एसक्यूएल डाटाबेस के खिलाफ क्रियान्वित PowerShell कोड प्राप्त करने के एक अच्छा प्रारंभिक जगह होना चाहिए: https://azure.microsoft.com/en-us/blog/azure-automation-your-sql-agent-in-the-cloud/

+0

आपकी तीव्र प्रतिक्रिया के लिए बहुत बहुत धन्यवाद, वास्तव में मैंने पहले ही उस लेख को देखा है। मैं इसके कोड को समझने की कोशिश कर रहा हूं और इसे जिस चीज की आवश्यकता है उसके लिए इसका उपयोग करने के लिए थोड़ा सा संशोधित कर रहा हूं लेकिन यह काम नहीं किया। –

संबंधित मुद्दे