ڈیلیور کرنے کے قابل ماحول کا ہونا ایمیزون سیج میکر نوٹ بک کی مثالیں تیزی سے ڈیٹا سائنسدانوں اور کاروباری تجزیہ کاروں کو تنظیمی ضروریات کو مؤثر طریقے سے جواب دینے کی اجازت دیتی ہیں۔ ڈیٹا کسی تنظیم کی زندگی کا خون ہے، اور اس ڈیٹا کا مؤثر طریقے سے تجزیہ کاروبار کے لیے مفید بصیرت فراہم کرتا ہے۔ ایک عام مسئلہ جس کا سامنا تنظیموں کو ہوتا ہے وہ ایک خودکار پیٹرن بنانا ہے جو ترقیاتی ٹیموں کو AWS خدمات شروع کرنے کے قابل بناتا ہے۔ تنظیمیں اپنے ڈویلپرز کو وسائل شروع کرنے کے قابل بنانا چاہتی ہیں جیسا کہ ان کی ضرورت ہے، لیکن مرکزی اور محفوظ انداز میں۔
یہ پوسٹ ظاہر کرتی ہے کہ کس طرح AWS خدمات کا استعمال کرتے ہوئے SageMaker مثال کے نوٹ بک کے انتظام کو مرکزی بنایا جائے۔ AWS کلاؤڈ فارمیشن, AWS سرور لیس ایپلیکیشن ماڈل (AWS SAM) AWS سروس کیٹلاگ, ایمیزون ایونٹ برج, AWS سسٹمز مینیجر پیرامیٹر اسٹور, ایمیزون API گیٹ وے، اور او ڈبلیو ایس لامبڈا۔. ہم آخر صارفین کو SageMaker نوٹ بک فروخت کرنے کے عمل کو خودکار بنانے کے لیے ان AWS سروسز کو استعمال کرنے کے طریقہ پر چلتے ہیں۔
حل جائزہ
ہمارے حل میں، ایک نوٹ بک صارف AWS سروس کیٹلاگ کا استعمال کرتے ہوئے ایک نوٹ بک مثال کی درخواست کرتا ہے۔ درخواست پر AWS CloudFormation کے ذریعے کارروائی کی جاتی ہے، جو نوٹ بک کی مثال فراہم کرتی ہے۔ EventBridge نوٹ بک مثال کے وسائل کی فراہمی کی تکمیل کے لیے AWS سروس کیٹلاگ API کی نگرانی کرتا ہے۔ EventBridge میں ایک ایونٹ پر مبنی قاعدہ Lambda ایونٹ پروسیسر کو کال کرتا ہے، جو ایک Lambda فنکشن چلاتا ہے جو طے شدہ URL کو واپس کرتا ہے۔
مندرجہ ذیل آرکیٹیکچرل ڈایاگرام انفراسٹرکچر کی حالت کو واضح کرتا ہے جیسا کہ کلاؤڈ فارمیشن ٹیمپلیٹس میں بیان کیا گیا ہے۔
عمل مندرجہ ذیل مراحل پر مشتمل ہے:
- ایک صارف AWS سروس کیٹلاگ کنسول کے ذریعے ایک نئی نوٹ بک کی درخواست کرتا ہے۔
- AWS سروس کیٹلاگ نے کلاؤڈ فارمیشن اسٹیک لانچ کیا۔
- AWS CloudFormation نے SageMaker نوٹ بک کا آغاز کیا۔
- ایک سیج میکر نوٹ بک اب چل رہی ہے۔
- ایک ایونٹ برج فنکشن اس وقت متحرک ہوتا ہے جب ایک نیا AWS سروس کیٹلاگ پروڈکٹ لانچ کیا جاتا ہے۔
- ۔ ایمیزون کلاؤڈ واچ ایونٹ ایک لیمبڈا فنکشن کو طلب کرتا ہے جو تجویز کردہ URL اور صارف کے لیے مخصوص SSM پیرامیٹر تیار کرتا ہے۔
- ایک صارف ایک نئے تجویز کردہ URL کی درخواست کرتا ہے۔
- لیمبڈا فنکشن ایک نیا طے شدہ URL تیار کرتا ہے اور نئے URL کے ساتھ صارف کے SSM پیرامیٹر کو اپ ڈیٹ کرتا ہے۔
شرائط
اس حل کو نافذ کرنے کے لیے، آپ کو درج ذیل شرائط کا ہونا ضروری ہے:
AWS CloudFormation کے ساتھ وسائل تعینات کریں۔
AWS CloudFormation کے ساتھ اپنے وسائل بنانے کے لیے، درج ذیل مراحل کو مکمل کریں:
- تعینات کریں۔
s3-iam-config
CloudFormation ٹیمپلیٹ:
aws cloudformation create-stack --stack-name s3-iam-config --template-body file://templates/s3-iam-config.yml --parameters file://parameters/s3-iam-params.json --capabilities CAPABILITY_NAMED_IAM
آؤٹ پٹ کو درج ذیل کوڈ کی طرح نظر آنا چاہئے:
{ "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/s3-iam-config/9be9f990-0909-11eb-811c-0a78092beb51"
}
ٹیمپلیٹ ایک تخلیق کرتا ہے۔ ایمیزون سادہ اسٹوریج سروس (ایمیزون S3) بالٹی۔
- پچھلے مرحلے میں S3 بالٹی کا نام حاصل کرنے کے لیے درج ذیل کمانڈ کو چلائیں:
aws cloudformation describe-stacks --stack-name s3-iam-config --query "Stacks[0].Outputs[?OutputKey=='S3BucketName'].OutputValue" --output text
آؤٹ پٹ مندرجہ ذیل کی طرح نظر آنا چاہئے:
s3-iam-config-s3bucket-1p85zr5051d86
- پچھلے مرحلے سے آؤٹ پٹ کا استعمال کرتے ہوئے درج ذیل کمانڈ کو چلائیں (بالٹی کا نام اپ ڈیٹ کریں):
aws s3 cp templates/sm-notebook.yml s3://<bucket_name>/sm-notebook.yml
آؤٹ پٹ مندرجہ ذیل کی طرح نظر آنا چاہئے:
upload: templates/sm-notebook.yml to s3://s3-iam-config-s3bucket-1p85zr5051d86/sm-notebook.yml
- کھولو
parameters/service-catalog-params.json
فائل کریں اور اپ ڈیٹ کریں۔ S3BucketName
پچھلے مرحلے سے بالٹی کے نام کا پیرامیٹر۔ اپ ڈیٹ کریں۔ UserIAMPrincipal
IAM رول کے ARN کے ساتھ جو آپ اس ڈیمو کے لیے استعمال کر رہے ہیں۔
[ { "ParameterKey" : "NotebookInstanceType", "ParameterValue" : "ml.t2.medium" }, { "ParameterKey" : "S3IAMConfigStackName", "ParameterValue" : "s3-iam-config" }, { "ParameterKey" : "ServiceCatalogTemplateName", "ParameterValue" : "sm-notebook.yml" }, { "ParameterKey" : "S3BucketName", "ParameterValue" : "<input_your_bucket_name>" }, { "ParameterKey" : "UserIAMPrincipal", "ParameterValue" : "<input_your_iam_principal_arn>" }
]
- تعینات کریں۔
service-catalog
CloudFormation ٹیمپلیٹ:
aws cloudformation create-stack --stack-name service-catalog-config --template-body file://templates/service-catalog.yml --parameters file://parameters/service-catalog-params.json --capabilities CAPABILITY_NAMED_IAM
آؤٹ پٹ مندرجہ ذیل کی طرح نظر آنا چاہئے:
{ "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/service-catalog-config/fb29c5e0-28a0-11ec-8337-123f746ae8a3"
}
AWS SAM کے ساتھ وسائل تعینات کریں۔
AWS SAM کے ساتھ وسائل کی تعیناتی کے لیے، درج ذیل مراحل کو مکمل کریں:
- اپنی ڈائریکٹری کو میں تبدیل کریں۔
lambda
ڈائریکٹری:
- درخواست بنائیں:
آؤٹ پٹ مندرجہ ذیل کی طرح نظر آنا چاہئے:
Built Artifacts : .aws-sam/build
Built Template : .aws-sam/build/template.yaml Commands you can use next
=========================
[*] Invoke Function: sam local invoke
[*] Test Function in the Cloud: sam sync --stack-name {stack-name} --watch
[*] Deploy: sam deploy --guided
- درخواست کی تعیناتی:
- CLI میں سوالات کا جواب دیں جیسا کہ درج ذیل کوڈ میں دکھایا گیا ہے:
Configuring SAM deploy
====================== Looking for config file [samconfig.toml] : Found Reading default arguments : Success Setting default arguments for 'sam deploy' ========================================= Stack Name [sam-app]: sam-app AWS Region [us-east-1]: us-east-1 Parameter EventBridgeFunctionName [EventBridgeFunction]: EventBridgeFunction Parameter EventRuleName [SvcCatalogEventRule]: SvcCatalogEventRule Parameter RefreshFunctionName [RefreshURLFunction]: RefreshURLFunction #Shows you resources changes to be deployed and require a 'Y' to initiate deploy Confirm changes before deploy [y/N]: N #SAM needs permission to be able to create roles to connect to the resources in your template Allow SAM CLI IAM role creation [Y/n]: Y #Preserves the state of previously provisioned resources when an operation fails Disable rollback [y/N]: N EventBridgeFunction may not have authorization defined, Is this okay? [y/N]: Y RefreshURLFunction may not have authorization defined, Is this okay? [y/N]: Y Save arguments to configuration file [Y/n]: Y SAM configuration file [samconfig.toml]: samconfig.toml SAM configuration environment [default]: dev
آؤٹ پٹ مندرجہ ذیل کی طرح نظر آنا چاہئے:
Looking for resources needed for deployment: Creating the required resources... Successfully created! Managed S3 bucket: aws-sam-cli-managed-default-samclisourcebucket-1f4i68wsmouhw A different default S3 bucket can be set in samconfig.toml Saved arguments to config file Running 'sam deploy' for future deployments will use the parameters saved above. The above parameters can be changed by modifying samconfig.toml Learn more about samconfig.toml syntax at https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-config.html Uploading to sam-app/6f3e2f13cfdca08133238f77fc2c667b 9425988 / 9425988 (100.00%)
Uploading to sam-app/b153fd4be66b581361f7d46efae25f18 9425968 / 9425968 (100.00%) Deploying with following values =============================== Stack name : sam-app Region : us-east-1 Confirm changeset : False Disable rollback : False Deployment s3 bucket : aws-sam-cli-managed-default-samclisourcebucket-1f4i68wsmouhw Capabilities : ["CAPABILITY_IAM"] Parameter overrides : {"EventBridgeFunctionName": "EventBridgeFunction", "EventRuleName": "SvcCatalogEventRule", "RefreshFunctionName": "RefreshURLFunction"} Signing Profiles : {} Initiating deployment
=====================
Uploading to sam-app/c82cdea2bfbc2abc6520a97fce4c8a8b.template 6754 / 6754 (100.00%) Waiting for changeset to be created.. CloudFormation stack changeset
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Operation LogicalResourceId ResourceType Replacement -----------------------------------------------------------------------------------------------------------------------------------------------------------------
+ Add EventBridgeFunctionHelloWorldPermissio AWS::Lambda::Permission N/A nProd + Add EventBridgeFunctionRole AWS::IAM::Role N/A + Add EventBridgeFunction AWS::Lambda::Function N/A + Add PermissionForEventsToInvokeLambda AWS::Lambda::Permission N/A + Add RefreshURLFunctionHelloWorldPermission AWS::Lambda::Permission N/A Prod + Add RefreshURLFunctionRole AWS::IAM::Role N/A + Add RefreshURLFunction AWS::Lambda::Function N/A + Add ServerlessRestApiDeploymentb762875163 AWS::ApiGateway::Deployment N/A + Add ServerlessRestApiProdStage AWS::ApiGateway::Stage N/A + Add ServerlessRestApi AWS::ApiGateway::RestApi N/A + Add SvcCatalogEventRule AWS::Events::Rule N/A ----------------------------------------------------------------------------------------------------------------------------------------------------------------- Changeset created successfully. arn:aws:cloudformation:us-east-1:123456789012:changeSet/samcli-deploy1641934511/763fe89c-9c6a-4cef-a1a6-90986d7decfd 2022-01-11 15:55:22 - Waiting for stack create/update to complete CloudFormation events from stack operations
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
ResourceStatus ResourceType LogicalResourceId ResourceStatusReason -----------------------------------------------------------------------------------------------------------------------------------------------------------------
CREATE_IN_PROGRESS AWS::IAM::Role RefreshURLFunctionRole - CREATE_IN_PROGRESS AWS::IAM::Role EventBridgeFunctionRole - CREATE_IN_PROGRESS AWS::IAM::Role EventBridgeFunctionRole Resource creation Initiated CREATE_IN_PROGRESS AWS::IAM::Role RefreshURLFunctionRole Resource creation Initiated CREATE_COMPLETE AWS::IAM::Role EventBridgeFunctionRole - CREATE_IN_PROGRESS AWS::Lambda::Function EventBridgeFunction - CREATE_IN_PROGRESS AWS::Lambda::Function EventBridgeFunction Resource creation Initiated CREATE_COMPLETE AWS::IAM::Role RefreshURLFunctionRole - CREATE_COMPLETE AWS::Lambda::Function EventBridgeFunction - CREATE_IN_PROGRESS AWS::Lambda::Function RefreshURLFunction - CREATE_IN_PROGRESS AWS::Lambda::Function RefreshURLFunction Resource creation Initiated CREATE_IN_PROGRESS AWS::Events::Rule SvcCatalogEventRule - CREATE_IN_PROGRESS AWS::Events::Rule SvcCatalogEventRule Resource creation Initiated CREATE_COMPLETE AWS::Lambda::Function RefreshURLFunction - CREATE_IN_PROGRESS AWS::ApiGateway::RestApi ServerlessRestApi - CREATE_COMPLETE AWS::ApiGateway::RestApi ServerlessRestApi - CREATE_IN_PROGRESS AWS::ApiGateway::RestApi ServerlessRestApi Resource creation Initiated CREATE_IN_PROGRESS AWS::ApiGateway::Deployment ServerlessRestApiDeploymentb762875163 - CREATE_IN_PROGRESS AWS::Lambda::Permission EventBridgeFunctionHelloWorldPermissio - nProd CREATE_IN_PROGRESS AWS::Lambda::Permission RefreshURLFunctionHelloWorldPermission Resource creation Initiated Prod CREATE_IN_PROGRESS AWS::Lambda::Permission EventBridgeFunctionHelloWorldPermissio Resource creation Initiated nProd CREATE_IN_PROGRESS AWS::Lambda::Permission RefreshURLFunctionHelloWorldPermission - Prod CREATE_IN_PROGRESS AWS::ApiGateway::Deployment ServerlessRestApiDeploymentb762875163 Resource creation Initiated CREATE_COMPLETE AWS::ApiGateway::Deployment ServerlessRestApiDeploymentb762875163 - CREATE_IN_PROGRESS AWS::ApiGateway::Stage ServerlessRestApiProdStage - CREATE_IN_PROGRESS AWS::ApiGateway::Stage ServerlessRestApiProdStage Resource creation Initiated CREATE_COMPLETE AWS::Lambda::Permission RefreshURLFunctionHelloWorldPermission - Prod CREATE_COMPLETE AWS::Lambda::Permission EventBridgeFunctionHelloWorldPermissio - nProd CREATE_COMPLETE AWS::ApiGateway::Stage ServerlessRestApiProdStage - CREATE_COMPLETE AWS::Events::Rule SvcCatalogEventRule - CREATE_IN_PROGRESS AWS::Lambda::Permission PermissionForEventsToInvokeLambda - CREATE_IN_PROGRESS AWS::Lambda::Permission PermissionForEventsToInvokeLambda Resource creation Initiated CREATE_COMPLETE AWS::Lambda::Permission PermissionForEventsToInvokeLambda - CREATE_COMPLETE AWS::CloudFormation::Stack sam-app - ----------------------------------------------------------------------------------------------------------------------------------------------------------------- CloudFormation outputs from deployed stack
------------------------------------------------------------------------------------------------------------------------------------------------------------------
Outputs ------------------------------------------------------------------------------------------------------------------------------------------------------------------
Key RefreshURLFunctionIamRole Description Implicit IAM Role created for Hello World function Value arn:aws:lambda:us-east-1:123456789012:function:RefreshURLFunction Key RefreshURLFunctionAPI Description API Gateway endpoint URL for Prod stage for Hello World function Value https://m94bjaurjb.execute-api.us-east-1.amazonaws.com/Prod/refreshurl/ Key RefreshURLFunction Description Hello World Lambda Function ARN Value arn:aws:lambda:us-east-1:123456789012:function:RefreshURLFunction ------------------------------------------------------------------------------------------------------------------------------------------------------------------ Successfully created/updated stack - sam-app in us-east-1
حل کی جانچ کریں۔
اب جب کہ آپ نے حل تعینات کر دیا ہے، آئیے ورک فلو کی جانچ کریں۔
- AWS سروس کیٹلاگ کنسول پر، نیچے انتظامیہ نیویگیشن پین میں، منتخب کریں۔ پورٹ فولیوز.
- اپنی سیج میکر نوٹ بک کا انتخاب کریں۔
- میں سے انتخاب کریں پروڈکٹ لانچ کریں۔.
- صفحہ کے نیچے، منتخب کریں۔ پروڈکٹ لانچ کریں۔.
آپ کو مندرجہ ذیل اسکرین شاٹ جیسا صفحہ نظر آنا چاہیے۔
- اسٹیٹس کے بطور ظاہر ہونے کے لیے چند لمحے انتظار کریں۔
Available
.
- اپنا ٹرمینل کھولیں اور پیرامیٹر اسٹور سے تجویز کردہ URL حاصل کرنے کے لیے درج ذیل کمانڈ کو چلائیں:
aws ssm get-parameter --name "/SageMaker/Notebooks/Demo-User-Notebook" --query Parameter.Value
آؤٹ پٹ مندرجہ ذیل کی طرح نظر آنا چاہئے:
"https://demo-user-notebook.notebook.us-east-1.sagemaker.aws?authToken=eyJhbGciOiJIUzI1NiJ9.eyJmYXNDcmVkZW50aWFscyI6IkFZQURlSlVvLzJjeEcwQ0xtNHBjTTZFOGM1SUFYd0FCQUJWaGQzTXRZM0o1Y0hSdkxYQjFZbXhwWXkxclpYa0FSRUV3U0ZSdU1rNXJZMUpyWnpWWVlsZFBRbUowTmtadVpGcHZlRlJXUW05SVlWaHdiazFJY25WRWVrTmtlVWRUVUZsak56UnhObWQzVTJGS1dYUm5hVk40VVQwOUFBRUFCMkYzY3kxcmJYTUFTMkZ5YmpwaGQzTTZhMjF6T25WekxXVmhjM1F0TVRvM05qUTNNRGM1TWpRME1UVTZhMlY1TDJJM01ETTNNRE5oTFdVMU5HTXROR1JtWWkxaE1HRTFMVGMyTnpNek1XWXlORGsxT1FDNEFRSUJBSGhlY3J4TGdEdDJaWmRKYk5nd3R4RHJpWmtZQnZUR1cwZWZCWVhaVW1VTTFBRXNiUlBXblloT3hjUWhPUE9jR0FaZUFBQUFmakI4QmdrcWhraUc5dzBCQndhZ2J6QnRBZ0VBTUdnR0NTcUdTSWIzRFFFSEFUQWVCZ2xnaGtnQlpRTUVBUzR3RVFRTUFnMjM1NzZRT1l6azgyc29BZ0VRZ0RzejlwVHd4Q2ZZUHd6SGJvZERIaElRa1BRWjdUUXRxZ2dEaVpkTDBtMnIxaW1jVHp5czJHc0t6T3d2Z2g1cGNSSytVS2ZxTXlnTmVhaHVVd0lBQUFBQURBQUFFQUFBQUFBQUFBQUFBQUFBQUFET3ZoZFMvb01sTE4xZ3hQSFkybklQLy8vLy93QUFBQUVBQUFBQUFBQUFBQUFBQUFFQUFBTmZFc2JYV1RDWXorV0o0S3BwSXhEMkpkMVFzUnZFbW9lS21hZDhvSmNSN0tRMi9CQWd3TTA3YUFOOEN1WE8yc2lLUnpZdjI1YmlLOFYzUDM2d1Fjc3RoS085Ui91TFFzNWk4RytHc3BZSnlNamRsbWdWYTFEd2FZQmd0TUMwcmJMRjZSWXJhcFJtMFArbDVIQWg3bWNyeU9lejZWRVlYTmdJY2FXR0tjZDFwRjQ5bXBLTzNyQW5BSGlCdEVaNCtlSVFYVkJwMmQyV2c4TEFqR0RRYVNyclVBOUhJa3pvaloybm5iVHluY3pLWXlNVjA3Ui8wZmVTZU9jTTBubC9IRHdjWUdyc1RCcDgzM1RVWCtkOGRNRXI4amtpQVAwUTFQRkNrU2h5WS9CU05IalZtWThxd094N05jV3g1ZVpSenl3cm0vWXNZOW5paEt5cWRMaGNIQUhDbXZhWW8yb2lMZ3BGak51WG5udlh1U1UxcmFlRVZMNUlKR1loMVAzRWZnR3huNmlsUTJmVGllQytQdWNmT3dsZWwrSnR5SWNmbVRTeFB0bnE1YW1mVjEycml0Skx5a09WMklEc0YzSEl6RW11SmhYZTBqKzM1dWlITW5BVkFZVm5RbithdWh1K3lVcUNKeWVWU1o2ZWVsYmIwd2tYUGNpOXBkazFMbTFLNUpZcFJuMFoyS1hvSnBxNm52b3pPWkdvNG9jbmVRQWhKODRiYjR6RkdGZ1NOaTdQWEFuMnpDTkZ1S2w0eU9KVldiRDRXMGZGSFc1OE5iUTE5amc5Zlp0czlkVmxKclowSmVrYTJhZi9TaUpoeWdvcDBwQ0pBS0pZZkErVEhTQmdCUTFNUWpyUXV5U25jbnQ4NU5XUW1uVG9PUGJ4bVlyN0JRMllpQlJsekdxSDNuQ0pXN2x4YmNzYUV1c1dFMXB3K0RJc2lLMEV1YVV6anBFWFV0NEt4Zm82T3B3b28vdVcyV0dlSmNQVHk4TkNRYWZlUU1VbXgwaDQ3aDF0UHNIY0hBUjltKzU2c3BzMnJETjl4ZTFUMVdHVDg4a3FFMW5YYzRQeUZNdTVuYXB0UEdUU1B0akpZWDRKKzRsSzlJZzZCNG9qRTNmVEEzUVllSTd0dU9UZG9Vd2R6SkJ4L1NvSjNxU0ZUMWRDZXFDeUcyWUN5cjN0TmFzZlpYNFBBWmU4b1M1QVZTeExkVlVqUkpYcW1DM1ZkNUJPRlFySHpReTZjTkFLNFVOY2tBanh3bUgwbFlNdlFtc3lTODRzcCtLUGdpbXl3eWNDdk5tYWQ1bVltRHRZYVpMU3JCVUZIVzlDS2tTS2pqWWtBWnZ3MXRnS3h5OE9wNjZDRHY3aEZObzNDUWQ3MGpnV0wyamdnU1RIckJ6blJwK2wxQ1VscnNsblNzaGluTDcwbnp4eU02b1NBbm1FdFVscG9yeG1iWGRUbUxld244R1lQS1ZvT0syd1pobXk0TVQzc2xxRlU1enVTU2tBQnp5eURZb3djR3JxemlBTXNDcEZONVhRVk9HNHkzNnlZS3pTU0FVTEppRCtOZFRLeWxJbUFHY3daUUl3TXpoZ25hWitia1h5VmErTWUrYmwxUHBrUXcwMWxMUDZNcExnTGRPbkVKb0RRM0xLc2pLZHlidWx4cmlNK011SEFqRUF3V00zdXpjemZyY1ZWOGNwUzdlUDlBRXluNks5NkNQNFBiVCtYK1VVZERqYXZkR1hrenY3TklkWG4xem9pU0dpIiwiY2lwaGVyVGV4dCI6IkFRSUJBSGhlY3J4TGdEdDJaWmRKYk5nd3R4RHJpWmtZQnZUR1cwZWZCWVhaVW1VTTFBRVRlWjBib1lRWDZSazJ1dzdNREJZY0FBQUFvakNCbndZSktvWklodmNOQVFjR29JR1JNSUdPQWdFQU1JR0lCZ2txaGtpRzl3MEJCd0V3SGdZSllJWklBV1VEQkFFdU1CRUVERjVkR1VSbkt5ZlA4S2dKTVFJQkVJQmJyTkJkSkZEOWhySytrajEvTDRieXMxMlFmR2dxM1pSTVlGa2lwNjJXZGZ2aUhvdkswQ3pKY0VtSUE4akY5cktPRm5ZblFoeHpHdmhxZy84VjU4RjUxbWFKUkJIY0RlUzdjSGRpSkdhOW1MbmZuVzFwQVhoaUp1WlRCdz09Iiwid29ya3NwYWNlTmFtZSI6ImRlbW8tdXNlci1ub3RlYm9vayIsIndvcmtzcGFjZURvbWFpbk5hbWUiOiJkZW1vLXVzZXItbm90ZWJvb2siLCJzdWIiOiIxOTU4ODk2NzE2OTAiLCJleHAiOjE2MzgxNDAyMTQsImlhdCI6MTYzODEzODQxNH0.duv90DKJDan6ZOI_uwgP3sQEtManyMCD61tnhZtI-mY"
ایونٹ برج کا اصول
EventBridge AWS سروس کیٹلاگ API کے لیے API کے جواب پر کارروائی کرنے کے لیے ایونٹ کے اصول کے ساتھ ترتیب دیا گیا ہے۔ یہ اصول نوٹ بک مثال کی حالت کو پاس کرنے کے لیے ترتیب دیا گیا ہے تاکہ آپ ٹرگرڈ ایکشن کے طور پر ایک تجویز کردہ URL جواب واپس کرنے کے لیے Lambda کا استعمال کر سکیں۔ ایونٹ کا اصول اس طرح ترتیب دیا گیا ہے:
{ "detail-type": ["AWS API Call via CloudTrail"], "detail": { "eventSource": ["servicecatalog.amazonaws.com"], "eventName": ["ProvisionProduct"] }
}
ایونٹ برج کنسول کا درج ذیل اسکرین شاٹ آپ کے ایونٹ کے اصول کو ظاہر کرتا ہے۔
۔ AWS CloudTrail کے لیے ایونٹ کے ماخذ کا استعمال کرتے ہوئے API کی نگرانی کی جا رہی ہے۔ servicecatalog.amazonaws.com
. نگرانی شدہ ایونٹ کا نام ہے۔ ProvisionProduct
. اس ایونٹ کی نگرانی آپ کو AWS سروس کیٹلاگ کے جواب میں موثر کارروائی کرنے کی اجازت دیتی ہے جو نوٹ بک مثال کی کامیاب ڈیلیوری حالت کی اطلاع دیتی ہے۔ جب ایک ProvisionProduct
واقعہ رونما ہوتا ہے، جسے لیمبڈا فنکشن کہتے ہیں۔ DemoEventBridgeFunction
کی درخواست کی جاتی ہے، جو اختتامی صارف کو ایک تجویز کردہ URL واپس کرتا ہے۔
تجویز کردہ نوٹ بک مثال کے یو آر ایل واپس کرنے کے لیے لیمبڈا فنکشن
AWS سروس کیٹلاگ کے ذریعے صارف کی درخواست کردہ نوٹ بک تک محفوظ رسائی کو یقینی بنانے کے لیے، ایک طے شدہ URL بنایا جاتا ہے اور صارف کو واپس کر دیا جاتا ہے۔ یہ نوٹ بک مثال تک رسائی حاصل کرنے اور کاروباری اہم کام انجام دینے کا ایک محفوظ طریقہ فراہم کرتا ہے۔ اس مقصد کے لئے، ہم استعمال کرتے ہیں EventBridgeServiceCatalogFunction فنکشن، جو استعمال کرتا ہے a ویٹر نوٹ بک مثال کی حالت دستیاب ہونے کے لیے۔ ویٹر سروس پولنگ کا ذریعہ فراہم کرتے ہیں اور کسی خاص شرط کے پورا ہونے تک کسی کام کی تکمیل کو معطل کرتے ہیں۔ جب یہ تیار ہوتا ہے، فنکشن ایک طے شدہ URL تیار کرتا ہے۔ آخر میں، فنکشن تیار کردہ طے شدہ URL کے ساتھ ایک SSM پیرامیٹر بناتا ہے۔ SSM پیرامیٹر مندرجہ ذیل پیٹرن کا استعمال کرتا ہے: /SageMaker/Notebooks/%s-Notebook"%user_name/
. یہ ہمیں اپنے تمام SageMaker نوٹ بک SSM پیرامیٹرز کے لیے ایک مشترکہ نام کی جگہ بنانے کی اجازت دیتا ہے جبکہ ان کی بنیاد پر ان کو منفرد رکھتے ہوئے user_name
.
طے شدہ یو آر ایل کی ایک مقررہ میعاد ختم ہوتی ہے۔ لیمبڈا فنکشن 12 گھنٹے کے سیشن کی میعاد کے ساتھ نوٹ بکس تعینات کرتا ہے۔ اس کی وجہ سے، ڈویلپرز کو ان کے موجودہ طے شدہ URL کی میعاد ختم ہونے پر ایک نیا تجویز کردہ URL تیار کرنے کی ضرورت ہے۔ دی ریفریش یو آر ایل فنکشن صارفین کو API گیٹ وے کو کال کرنے سے فنکشن کی درخواست کرنے کی اجازت دے کر اسے پورا کرتا ہے۔ ڈویلپرز اس فنکشن کو شروع کر سکتے ہیں اور اپنی نوٹ بک کا نام پاس کر سکتے ہیں، اور یہ ایک طے شدہ URL لوٹاتا ہے۔ جب RefreshURLFunction
مکمل ہو گیا ہے، صارف پیرامیٹر اسٹور پر کال کر سکتا ہے، نیا تجویز کردہ URL حاصل کر سکتا ہے، اور پھر اپنی نوٹ بک تک رسائی حاصل کر سکتا ہے۔
- حاصل کریں
RefreshURLFunction
API گیٹ وے URL درج ذیل کوڈ کے ساتھ:
aws cloudformation describe-stacks --stack-name sam-app --query "Stacks[0].Outputs[?OutputKey=='RefreshURLFunctionAPI'].OutputValue" --output text --region us-east-1
آؤٹ پٹ مندرجہ ذیل کی طرح نظر آنا چاہئے:
https://8mnr3ksi0d.execute-api.us-east-1.amazonaws.com/Prod/refreshurl/
- فنکشن کو مدعو کریں۔
RefreshURLFunction
API گیٹ وے کو کال کرکے۔ اپ ڈیٹ input_url
پچھلے مرحلے کے URL کے ساتھ:
curl -X POST <input_url> -d '{"notebook_user_name": "Demo-User"}'
آؤٹ پٹ مندرجہ ذیل کی طرح نظر آنا چاہئے:
{"PreSignedURL": "https://demo-user-notebook-dctz.notebook.us-east-1.sagemaker.aws?authToken=eyJhbGciOiJIUzI1NiJ9.eyJmYXNDcmVkZW50aWFscyI6IkFZQURlRGw3R2E2OWZ3SmhjSlZKcDB1VjR2b0FYd0FCQUJWaGQzTXRZM0o1Y0hSdkxYQjFZbXhwWXkxclpYa0FSRUZzYVcxNVNsZGtXRXhCZGpVNGRIRkVTalo0V25SSk5WWTVUVEZHZFZaTVZtVldWRzQ0Tms1UGRWaEpSVFI2UTBwdGVFZDFWbFUxUzNoc1pYSXJia05YWnowOUFBRUFCMkYzY3kxcmJYTUFTMkZ5YmpwaGQzTTZhMjF6T25WekxXVmhjM1F0TVRvM05qUTNNRGM1TWpRME1UVTZhMlY1TDJJM01ETTNNRE5oTFdVMU5HTXROR1JtWWkxaE1HRTFMVGMyTnpNek1XWXlORGsxT1FDNEFRSUJBSGhlY3J4TGdEdDJaWmRKYk5nd3R4RHJpWmtZQnZUR1cwZWZCWVhaVW1VTTFBRjY1ZFVPdW5vQlY2MVdrTnM2OUVsdUFBQUFmakI4QmdrcWhraUc5dzBCQndhZ2J6QnRBZ0VBTUdnR0NTcUdTSWIzRFFFSEFUQWVCZ2xnaGtnQlpRTUVBUzR3RVFRTVhsY1gyeW5WMVQxNkdBRHlBZ0VRZ0RzUEVSVllMRVMzN1FVZklvVTZjd3RZdGI4NkIrT212aVF3cm5BOFVDSnZtMjRxYXJORllaOGgzRGlnSy8wVVBSR3hTeFpoaFhWSTA0Q1RlUUlBQUFBQURBQUFFQUFBQUFBQUFBQUFBQUFBQUFBcUEvUnVZOTk2alBLV09zaFNqZS9GLy8vLy93QUFBQUVBQUFBQUFBQUFBQUFBQUFFQUFBTlhGZFYwR1FHMXZpN2drQkhtOGtmWlBUL0dxcnhOamFSWkU0Tis3ZTJocEI0YXUxS0ozQ2ZnRUMrcHR3dk9JdjQwVGYrdnNWNUt5MjYyNGYvOVhrYmVZQklqdnlLV1JJR0ZyS2dxditVTXdJcE8ydDFIbWcvSmFhdEpGdFhudlJodVcwMG9ldVBLS3ZFeGRKQ3ppYkRkT3J3SG5IMFJqWEhTc2tydGxsTDM2Mll0a3k0Z1cwV2xGOUt3Zm1xb2FjVzZZRTZhV0RUZU9oQWprZXFkQ1FoVi9KRWYwaTA1Q1VxU0k1REZzSC8yS2grZHJxS0tBSVMyTjFRYnNSZ3VGNzFFcnBCM3BoV25PSTFnd3BGL3VNMCs5MHRsTGVCeG5ncElqT1NEY1pkbHlwQmpNZkVadUNYWGU4ZTJGRGQ0bGVENFdOZDdzc0F4OHFQWmV5eWI3WWo2L0FxaUtESmdLOStScS9BVGF6NkRFNFNyL3BaWmpRRFFab1oyV1ZCa2VVWHR2U1piVUd4aXJXRG0rVUUxVk5sbG85TmhwSEhhR1dIZEJPU0w5SUFUWWZDVjV6enVURHNDS2l1dVBQTmFVZGhvSUVuL2c1UXhtOFJvZUlVVUJRcUVvbms3T3d1QzJZOEM2QUowclVxL055T3R5NmF4TWY2VEdYcTFsTHB4WG9wMjlXT3lzR3daQSs4Mmo3em5SZEo2RTZTU005TnJYRi95OWxRS3dBTFBaK3FBNmszSEFvdDg5UlZYSGVMTFQ3TklwazVYVnZlRXY5S3N2MUp1Uk1FVVJEZjI1bnZtOXRmVnp0MUN0R0Y1RVBQNEpid2d5RnZ4RDlnRkVPTUM5dk1rdWloT3JnM3JaaDNwRjd1RDRsVVptVUtTRXV6ZVVmRFd0eEhjVHZoeUxFVmZuczhpcjl6SnFacGxpNVdYdjF3bTQ5WWxJNGlSM1FiamtZM0JybUFsOFBzZkRjYmZJUmVBNmkvQjVNeHFOb3RvU0Y0MHA1OFpJTGZPNmNNWURlVHpzT2dMbENmYXIwT3JMK1lRVk55MU5ETUF3cGRWaXlNeWI1RHl2SzlOV3ZOOUt2c2lMTklrV1IvU2s5ekx1RjBPd3F0aE5GWjhkbWkvMzRzc2pRMUFVR1BMR2ZXbUl1ZmlqRnhrRytnL1lKMjNSa1pIVmRvb1J4TUt3Zmk5OXQvUS96QmI2OUgyQlljbFZwUVl0RGV4Z3ZGWTg2TGpUMm5sSjkya09ad1duWW9OMWpMenIrVTVWQkJKakpDT09ENVA0MXBWckdHN1R4Nlh4UlFscGRqQ3E5ZFhXQlJiRDh6d0JDZ2VMY254SFlZTjUzR2hON2U3S3QyUmZyak5aREtSanUvTWNZSXRSTTVLU2ZaNWFNZ2NJUXY0a0tLNUppVll6OEdaY2VUSE5TT21Zb1FNeG1xMnNOSGJDZzZpUFM4KytvUkErdFhGY1JWMFkxSG9qZlVWS2NzREJjZmFQRVo0TENSZENvZnYrWFVWaHFSNzlCZGpyYW92Wmo1TitqZjFxdHdWZU9mVWJBQm5NR1VDTUN6UU4xMThWMTFZcXcwSWFhbmY0NUtIcjhnUC9MaVZHLzVRTy9yemREbzdZbkZEMmtzM3ZKbFQxVWE5N3kxY25nSXhBS2FxNEJsQ3R4UUc3b2Yxc1BaWld3K2NCalgzcGdIMWhXMHpYOU1zVzJOYXFCSklpUkp1VTJVaUU0cVdDVnh4eVE9PSIsImNpcGhlclRleHQiOiJBUUlCQUhoZWNyeExnRHQyWlpkSmJOZ3d0eERyaVprWUJ2VEdXMGVmQllYWlVtVU0xQUhyWlZxanJHYWVlMUY5c016d2pmM1pBQUFBb2pDQm53WUpLb1pJaHZjTkFRY0dvSUdSTUlHT0FnRUFNSUdJQmdrcWhraUc5dzBCQndFd0hnWUpZSVpJQVdVREJBRXVNQkVFRFBGVFJFbXQ2SmQ2VWoxMExnSUJFSUJibHBFOWtORGxpd21Yb2ltaEFiTC8xNmpYTVRhcDYvNnpSRlFLbjNHWE9mRlVRcUx6VEVBSUQvY095bDlMYU1NdzBRaHBjSWhERmpEL1U1R29sQmUrSHJ4QnJuRk1SMjNrWVR1K2tXUFZVYUcwRExPanl1YVhYR3VDOHc9PSIsIndvcmtzcGFjZU5hbWUiOiJkZW1vLXVzZXItam9lLW5vdGVib29rIiwid29ya3NwYWNlRG9tYWluTmFtZSI6ImRlbW8tdXNlci1qb2Utbm90ZWJvb2steXVvYyIsInN1YiI6IjE5NTg4OTY3MTY5MCIsImV4cCI6MTY0MDc0NDM1OCwiaWF0IjoxNjQwNzQwNzU4fQ.WGFEzQhC3lvA9IguA2tbCS6Us9mhRIV_6LiuRTAytSo"}%
- ایک براؤزر کھولیں اور نیویگیٹ کریں۔
PreSignedURL
پچھلے مرحلے سے.
ویب صفحہ درج ذیل اسکرین شاٹ کی طرح نظر آنا چاہیے۔
نتیجہ
اس پوسٹ میں، ہم نے AWS CloudFormation کا استعمال کرتے ہوئے SageMaker نوٹ بک مثال کے ماحول کے لیے بنیادی ڈھانچے کے اجزاء کو کیسے تعینات کرنا ہے۔ اس کے بعد ہم نے AWS سروس کیٹلاگ API سے نوٹ بک مثال کی حالت کو واپس کرنے کے لیے EventBridge کا استعمال کرنے کا طریقہ بتایا۔ آخر میں، ہم نے دکھایا کہ ڈیلیور کردہ وسائل تک رسائی کے لیے لیمبڈا فنکشن کا استعمال کیسے کیا جاتا ہے تاکہ تجویز کردہ نوٹ بک مثال کے URL کو واپس کیا جائے۔ مزید معلومات کے لیے، دیکھیں ایمیزون سیج میکر ڈویلپر گائیڈ. پڑھنے کے لیے آپ کا شکریہ!
مصنفین کے بارے میں
جو کیٹنگ ایمیزون ویب سروسز میں پیشہ ورانہ خدمات میں ایک سینئر کسٹمر ڈیلیوری آرکیٹیکٹ ہے۔ وہ AWS کلاؤڈ میں مختلف حلوں کو ڈیزائن اور لاگو کرنے کے لیے AWS صارفین کے ساتھ کام کرتا ہے۔ جو کو ایک یا دو گلاس شراب کے ساتھ کھانا پکانا اور گولف کورس پر اعتدال پسندی حاصل کرنا پسند ہے۔
میٹ ہیجز ایمیزون ویب سروسز میں کلاؤڈ ایپلیکیشن آرکیٹیکٹ ہے۔ وہ صارفین کے ساتھ مل کر کام کرتا ہے تاکہ ٹیکنالوجی کی ضروریات کو کاروباری ڈرائیوروں کے ساتھ ترتیب دے کر اپنی درخواستیں AWS پر فراہم کر سکیں۔ ہجرت اور جدیدیت پر توجہ مرکوز کرنے کے ساتھ، Matt دنیا بھر کے انٹرپرائز صارفین کے ساتھ کام کرتا ہے تاکہ ایسی تبدیلیوں کو آگے بڑھایا جا سکے جو کلاؤڈ کی مکمل صلاحیت کو غیر مقفل کر دیں۔ میٹ کو خاندان کے ساتھ وقت گزارنا، موسیقی کے آلات بجانا، کھانا پکانا، ویڈیو گیمز کھیلنا، پرانی کاریں ٹھیک کرنا، اور نئی چیزیں سیکھنا پسند ہے۔
ورجینیا چو Amazon Web Services میں پروفیشنل سروسز میں ایک سینئر DevSecOps آرکیٹیکٹ ہے۔ وہ AWS کلاؤڈ میں مختلف قسم کے حل کو ڈیزائن اور لاگو کرنے کے لیے دنیا بھر کے انٹرپرائز پیمانے کے صارفین کے ساتھ کام کرتی ہے۔