मैं एक मॉड्यूल में एडब्ल्यूएस एपीआई से बात करने के लिए कुछ शक्तियां लिख रहा हूं। मैंने एक समारोह लिखा है, Get-CloudFormation
, जो क्लाउडफॉर्मेशन की स्थिति देता है। मैंने एक और फ़ंक्शन लिखा है, Delete-CloudFormation
, जो डिलीट-सीएफ एपीआई अनुरोध को फायर करने के बाद, को नौकरी शुरू करने की कोशिश करता है जो क्लाउडफॉर्मेशन की स्थिति को Get-CloudFormation
का उपयोग करके मतदान करता है।मैं स्टार्ट-जॉब को कैसे कॉल करूं जो समान शक्तिशक्ति मॉड्यूल में फ़ंक्शन पर निर्भर करता है जैसे कि फ़ंक्शन कॉलिंग स्टार्ट-जॉब?
मैं Get-CloudFormation
पर Export-ModuleMember
पर कॉल करता हूं (लेकिन Delete-CloudFormation
नहीं; यह एक निजी कार्य है)। Get-CloudFormation
को पहले मॉड्यूल-फ़ाइल में Delete-CloudFormation
से परिभाषित किया गया है।
मेरे Start-Job
कॉल (Delete-CloudFormation
अंदर) की तरह दिखता है:
$job = Start-Job -Name "CloudFormationWaitForDeleteSuccess" -ScriptBlock {
$status = ""
$time = 0
while($status -ne "DELETE_COMPLETE") {
Write-Verbose ("Checking CloudFormation status")
$stack = Get-CloudFormation -accessKey $accessKey -secretKey $secretKey -stackName $stackName
$status = $stack.Status
Start-Sleep -seconds 10
$time += 10
}
Write-Host "CloudFormation delete-complete after $time seconds $stackName"
}
जब Delete-CloudFormation
रन, मैं एक अपवाद प्राप्त करें:
The term 'Get-CloudFormation' is not recognized as the name of a cmdlet,
function, script file, or operable program. Check the spelling of the
name, or if a path was included, verify that the path is correct and try again.
+ CategoryInfo : ObjectNotFound: (Get-CloudFormation:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
क्यों? और इसे किस प्रकार से ठीक किया जाए।
मुझे 7152090 मिला जो मुझे लगता है कि समान है, लेकिन Start-Job
को -InitializationScript { Get-CloudFormation }
के साथ कॉल करना लगभग एक ही त्रुटि देता है।
यदि मैं -InitializationScript { Import-Module ".\awsutils.psm1" }
के साथ स्टार्ट-जॉब को कॉल करता हूं तो .
मेरी प्रोफ़ाइल की दस्तावेज़ निर्देशिका है। भले ही मैं पर Start-Job
के बाहर एक चर को बाध्य करता हूं और इसे -InitializationScript { Import-Module "$location\awsutils.psm1" }
पर कॉल करता हूं।
मुझे लगता है कि यदि ओपी अधिक गतिशील होना चाहता था तो मुख्य स्क्रिप्ट मॉड्यूल को सी: \ विंडोज ... \ पावरहेल मॉड्यूल निर्देशिका में कॉपी कर सकती है ताकि यह पूर्ण पथ के बिना आयात-मॉड्यूल का उपयोग कर सके। इसे बाद में हटाया जा सकता है ... हे –
यकीन है .. यह एक विचार है! :) –