// لیست کامل خدمات AWS با کد راهاندازی اولیه
// ۱. EC2 (Elastic Compute Cloud)
const AWS = require('aws-sdk');
const ec2 = new AWS.EC2();
const runEC2Instance = async () => {
const params = {
ImageId: 'ami-0c55b159cbfafe1f0',
InstanceType: 't2.micro',
MinCount: 1,
MaxCount: 1,
KeyName: 'my-key-pair',
SecurityGroupIds: ['sg-12345678']
};
try {
const data = await ec2.runInstances(params).promise();
console.log('EC2 Instance created:', data.Instances[0].InstanceId);
return data.Instances[0].InstanceId;
} catch (err) {
console.error('Error creating EC2 instance:', err);
throw err;
}
};
// ۲. Lightsail
const lightsail = new AWS.Lightsail();
const createLightsailInstance = async () => {
const params = {
instanceNames: ['MyWebsite'],
availabilityZone: 'us-east-1a',
blueprintId: 'wordpress',
bundleId: 'nano_2_0'
};
try {
const data = await lightsail.createInstances(params).promise();
console.log('Lightsail instance created:', data);
return data;
} catch (err) {
console.error('Error creating Lightsail instance:', err);
throw err;
}
};
// ۳. Lambda
const lambda = new AWS.Lambda();
const createLambdaFunction = async () => {
const fs = require('fs');
const functionCode = fs.readFileSync('lambda_function.zip');
const params = {
Code: {
ZipFile: functionCode
},
FunctionName: 'myFunction',
Handler: 'index.handler',
Role: 'arn:aws:iam::123456789012:role/lambda-role',
Runtime: 'nodejs14.x',
Description: 'My Lambda Function'
};
try {
const data = await lambda.createFunction(params).promise();
console.log('Lambda function created:', data.FunctionArn);
return data.FunctionArn;
} catch (err) {
console.error('Error creating Lambda function:', err);
throw err;
}
};
// ۴. Elastic Beanstalk
const elasticBeanstalk = new AWS.ElasticBeanstalk();
const createBeanstalkApp = async () => {
// ایجاد برنامه
const appParams = {
ApplicationName: 'myApplication',
Description: 'My application description'
};
try {
await elasticBeanstalk.createApplication(appParams).promise();
// ایجاد محیط
const envParams = {
ApplicationName: 'myApplication',
EnvironmentName: 'myEnvironment',
SolutionStackName: '64bit Amazon Linux 2 v5.4.4 running Node.js 14',
OptionSettings: [
{
Namespace: 'aws:autoscaling:launchconfiguration',
OptionName: 'InstanceType',
Value: 't2.micro'
}
]
};
const envData = await elasticBeanstalk.createEnvironment(envParams).promise();
console.log('Beanstalk environment created:', envData.EnvironmentId);
return envData.EnvironmentId;
} catch (err) {
console.error('Error creating Beanstalk application:', err);
throw err;
}
};
// ۵. ECR (Elastic Container Registry)
const ecr = new AWS.ECR();
const createECRRepository = async () => {
const params = {
repositoryName: 'my-repo',
imageScanningConfiguration: {
scanOnPush: true
}
};
try {
const data = await ecr.createRepository(params).promise();
console.log('ECR repository created:', data.repository.repositoryUri);
return data.repository.repositoryUri;
} catch (err) {
console.error('Error creating ECR repository:', err);
throw err;
}
};
// ۶. S3 (Simple Storage Service)
const s3 = new AWS.S3();
const createS3Bucket = async () => {
const params = {
Bucket: 'my-unique-bucket-name',
CreateBucketConfiguration: {
LocationConstraint: 'us-west-2'
}
};
try {
const data = await s3.createBucket(params).promise();
console.log('S3 bucket created:', data.Location);
return data.Location;
} catch (err) {
console.error('Error creating S3 bucket:', err);
throw err;
}
};
// ۷. EBS (Elastic Block Store)
const createEBSVolume = async () => {
const params = {
AvailabilityZone: 'us-east-1a',
Size: 10,
VolumeType: 'gp2'
};
try {
const data = await ec2.createVolume(params).promise();
console.log('EBS volume created:', data.VolumeId);
return data.VolumeId;
} catch (err) {
console.error('Error creating EBS volume:', err);
throw err;
}
};
// ۸. EFS (Elastic File System)
const efs = new AWS.EFS();
const createEFSFileSystem = async () => {
const params = {
PerformanceMode: 'generalPurpose',
Encrypted: true,
Tags: [
{
Key: 'Name',
Value: 'MyFileSystem'
}
]
};
try {
const data = await efs.createFileSystem(params).promise();
console.log('EFS file system created:', data.FileSystemId);
return data.FileSystemId;
} catch (err) {
console.error('Error creating EFS file system:', err);
throw err;
}
};
// ۹. Glacier
const glacier = new AWS.Glacier();
const createGlacierVault = async () => {
const params = {
vaultName: 'my-archive-vault',
accountId: '-' // از '-' برای استفاده از اکانت جاری استفاده میشود
};
try {
const data = await glacier.createVault(params).promise();
console.log('Glacier vault created:', data.location);
return data.location;
} catch (err) {
console.error('Error creating Glacier vault:', err);
throw err;
}
};
// ۱۰. VPC (Virtual Private Cloud)
const createVPC = async () => {
const params = {
CidrBlock: '10.0.0.0/16',
TagSpecifications: [
{
ResourceType: 'vpc',
Tags: [
{
Key: 'Name',
Value: 'MyVPC'
}
]
}
]
};
try {
const data = await ec2.createVpc(params).promise();
console.log('VPC created:', data.Vpc.VpcId);
return data.Vpc.VpcId;
} catch (err) {
console.error('Error creating VPC:', err);
throw err;
}
};
// ۱۱. Route 53
const route53 = new AWS.Route53();
const createHostedZone = async () => {
const params = {
Name: 'example.com.',
CallerReference: String(Date.now())
};
try {
const data = await route53.createHostedZone(params).promise();
console.log('Hosted zone created:', data.HostedZone.Id);
return data.HostedZone.Id;
} catch (err) {
console.error('Error creating hosted zone:', err);
throw err;
}
};
// ۱۲. Elastic Load Balancer
const elb = new AWS.ELBv2();
const createLoadBalancer = async () => {
const params = {
Name: 'my-load-balancer',
Subnets: ['subnet-12345678', 'subnet-87654321'],
SecurityGroups: ['sg-12345678'],
Scheme: 'internet-facing',
Type: 'application'
};
try {
const data = await elb.createLoadBalancer(params).promise();
console.log('Load balancer created:', data.LoadBalancers[0].LoadBalancerArn);
return data.LoadBalancers[0].LoadBalancerArn;
} catch (err) {
console.error('Error creating load balancer:', err);
throw err;
}
};
// ۱۳. CloudFront
const cloudfront = new AWS.CloudFront();
const createCloudFrontDistribution = async () => {
const params = {
DistributionConfig: {
CallerReference: String(Date.now()),
Origins: {
Quantity: 1,
Items: [
{
Id: 'S3Origin',
DomainName: 'my-bucket.s3.amazonaws.com',
S3OriginConfig: {
OriginAccessIdentity: ''
}
}
]
},
DefaultCacheBehavior: {
TargetOriginId: 'S3Origin',
ViewerProtocolPolicy: 'redirect-to-https',
MinTTL: 0,
DefaultTTL: 86400,
MaxTTL: 31536000,
ForwardedValues: {
QueryString: false,
Cookies: { Forward: 'none' }
}
},
Enabled: true,
Comment: 'My CDN Distribution'
}
};
try {
const data = await cloudfront.createDistribution(params).promise();
console.log('CloudFront distribution created:', data.Distribution.Id);
return data.Distribution.Id;
} catch (err) {
console.error('Error creating CloudFront distribution:', err);
throw err;
}
};
// ۱۴. IAM (Identity & Access Management)
const iam = new AWS.IAM();
const createIAMUser = async () => {
const params = {
UserName: 'new-user'
};
try {
const data = await iam.createUser(params).promise();
console.log('IAM user created:', data.User.UserName);
return data.User.UserName;
} catch (err) {
console.error('Error creating IAM user:', err);
throw err;
}
};
// ۱۵. Organizations
const organizations = new AWS.Organizations();
const createOrganization = async () => {
const params = {
FeatureSet: 'ALL'
};
try {
const data = await organizations.createOrganization(params).promise();
console.log('Organization created:', data.Organization.Id);
return data.Organization.Id;
} catch (err) {
console.error('Error creating organization:', err);
throw err;
}
};
// ۱۶. CloudTrail
const cloudtrail = new AWS.CloudTrail();
const createTrail = async () => {
const params = {
Name: 'management-events',
S3BucketName: 'my-trail-bucket',
IsMultiRegionTrail: true,
EnableLogFileValidation: true,
IncludeGlobalServiceEvents: true
};
try {
const data = await cloudtrail.createTrail(params).promise();
console.log('CloudTrail created:', data.TrailARN);
return data.TrailARN;
} catch (err) {
console.error('Error creating CloudTrail:', err);
throw err;
}
};
// ۱۷. CloudWatch
const cloudwatch = new AWS.CloudWatch();
const createCloudWatchAlarm = async () => {
const params = {
AlarmName: 'high-cpu-utilization',
ComparisonOperator: 'GreaterThanThreshold',
EvaluationPeriods: 2,
MetricName: 'CPUUtilization',
Namespace: 'AWS/EC2',
Period: 300,
Statistic: 'Average',
Threshold: 70.0,
ActionsEnabled: true,
AlarmDescription: 'Alarm when CPU exceeds 70%',
Dimensions: [
{
Name: 'InstanceId',
Value: 'i-12345678901234567'
}
]
};
try {
const data = await cloudwatch.putMetricAlarm(params).promise();
console.log('CloudWatch alarm created');
return 'high-cpu-utilization';
} catch (err) {
console.error('Error creating CloudWatch alarm:', err);
throw err;
}
};
// ۱۸. SNS (Simple Notification Service)
const sns = new AWS.SNS();
const createSNSTopic = async () => {
const params = {
Name: 'alerts'
};
try {
const data = await sns.createTopic(params).promise();
console.log('SNS topic created:', data.TopicArn);
return data.TopicArn;
} catch (err) {
console.error('Error creating SNS topic:', err);
throw err;
}
};
// ۱۹. SES (Simple Email Service)
const ses = new AWS.SES();
const verifyEmailIdentity = async () => {
const params = {
EmailAddress: '[email protected]'
};
try {
const data = await ses.verifyEmailIdentity(params).promise();
console.log('Email verification initiated');
return '[email protected]';
} catch (err) {
console.error('Error verifying email identity:', err);
throw err;
}
};
// ۲۰. SQS (Simple Queue Service)
const sqs = new AWS.SQS();
const createSQSQueue = async () => {
const params = {
QueueName: 'my-queue',
Attributes: {
DelaySeconds: '0',
MessageRetentionPeriod: '86400' // 1 روز
}
};
try {
const data = await sqs.createQueue(params).promise();
console.log('SQS queue created:', data.QueueUrl);
return data.QueueUrl;
} catch (err) {
console.error('Error creating SQS queue:', err);
throw err;
}
};
// ۲۱. Kinesis
const kinesis = new AWS.Kinesis();
const createKinesisStream = async () => {
const params = {
ShardCount: 1,
StreamName: 'my-data-stream'
};
try {
const data = await kinesis.createStream(params).promise();
console.log('Kinesis stream created');
return 'my-data-stream';
} catch (err) {
console.error('Error creating Kinesis stream:', err);
throw err;
}
};
// ۲۲. RDS (Relational Database Service)
const rds = new AWS.RDS();
const createRDSInstance = async () => {
const params = {
DBName: 'mydb',
DBInstanceIdentifier: 'my-db-instance',
AllocatedStorage: 20,
DBInstanceClass: 'db.t2.micro',
Engine: 'mysql',
MasterUsername: 'admin',
MasterUserPassword: 'password123',
VpcSecurityGroupIds: ['sg-12345678'],
BackupRetentionPeriod: 7,
Port: 3306,
MultiAZ: false,
EngineVersion: '8.0.28',
PubliclyAccessible: false
};
try {
const data = await rds.createDBInstance(params).promise();
console.log('RDS instance created:', data.DBInstance.DBInstanceIdentifier);
return data.DBInstance.DBInstanceIdentifier;
} catch (err) {
console.error('Error creating RDS instance:', err);
throw err;
}
};
// ۲۳. Aurora
const createAuroraCluster = async () => {
const params = {
DBClusterIdentifier: 'my-aurora-cluster',
Engine: 'aurora-mysql',
EngineVersion: '5.7.mysql_aurora.2.10.2',
MasterUsername: 'admin',
MasterUserPassword: 'password123',
DatabaseName: 'mydb',
VpcSecurityGroupIds: ['sg-12345678']
};
try {
const data = await rds.createDBCluster(params).promise();
console.log('Aurora cluster created:', data.DBCluster.DBClusterIdentifier);
return data.DBCluster.DBClusterIdentifier;
} catch (err) {
console.error('Error creating Aurora cluster:', err);
throw err;
}
};
// ۲۴. DynamoDB
const dynamodb = new AWS.DynamoDB();
const createDynamoDBTable = async () => {
const params = {
TableName: 'Users',
KeySchema: [
{ AttributeName: 'user_id', KeyType: 'HASH' },
{ AttributeName: 'email', KeyType: 'RANGE' }
],
AttributeDefinitions: [
{ AttributeName: 'user_id', AttributeType: 'S' },
{ AttributeName: 'email', AttributeType: 'S' }
],
ProvisionedThroughput: {
ReadCapacityUnits: 5,
WriteCapacityUnits: 5
}
};
try {
const data = await dynamodb.createTable(params).promise();
console.log('DynamoDB table created:', data.TableDescription.TableName);
return data.TableDescription.TableName;
} catch (err) {
console.error('Error creating DynamoDB table:', err);
throw err;
}
};
// ۲۵. Elasticache
const elasticache = new AWS.ElastiCache();
const createElasticacheCluster = async () => {
const params = {
CacheClusterId: 'my-redis',
Engine: 'redis',
EngineVersion: '6.x',
CacheNodeType: 'cache.t2.micro',
NumCacheNodes: 1,
CacheSubnetGroupName: 'my-cache-subnet',
SecurityGroupIds: ['sg-12345678']
};
try {
const data = await elasticache.createCacheCluster(params).promise();
console.log('Elasticache cluster created:', data.CacheClusterId);
return data.CacheClusterId;
} catch (err) {
console.error('Error creating Elasticache cluster:', err);
throw err;
}
};
// ۲۶. Redshift
const redshift = new AWS.Redshift();
const createRedshiftCluster = async () => {
const params = {
ClusterIdentifier: 'my-redshift-cluster',
NodeType: 'dc2.large',
MasterUsername: 'admin',
MasterUserPassword: 'Password123',
DBName: 'mydw',
ClusterType: 'single-node',
VpcSecurityGroupIds: ['sg-12345678'],
PubliclyAccessible: false,
Encrypted: true
};
try {
const data = await redshift.createCluster(params).promise();
console.log('Redshift cluster created:', data.Cluster.ClusterIdentifier);
return data.Cluster.ClusterIdentifier;
} catch (err) {
console.error('Error creating Redshift cluster:', err);
throw err;
}
};
// ۲۷. AppSync (GraphQL API)
const appsync = new AWS.AppSync();
const createAppSyncAPI = async () => {
const params = {
name: 'MyGraphQLAPI',
authenticationType: 'API_KEY'
};
try {
const data = await appsync.createGraphqlApi(params).promise();
console.log('AppSync API created:', data.graphqlApi.apiId);
return data.graphqlApi.apiId;
} catch (err) {
console.error('Error creating AppSync API:', err);
throw err;
}
};
// ۲۸. API Gateway
const apigateway = new AWS.APIGateway();
const createAPIGateway = async () => {
const params = {
name: 'my-api',
description: 'My REST API',
endpointConfiguration: {
types: ['REGIONAL']
}
};
try {
const data = await apigateway.createRestApi(params).promise();
console.log('API Gateway created:', data.id);
return data.id;
} catch (err) {
console.error('Error creating API Gateway:', err);
throw err;
}
};
// ۲۹. Step Functions
const stepfunctions = new AWS.StepFunctions();
const createStateMachine = async () => {
const definition = {
Comment: 'A simple state machine',
StartAt: 'HelloWorld',
States: {
HelloWorld: {
Type: 'Task',
Resource: 'arn:aws:lambda:us-east-1:123456789012:function:hello-world',
End: true
}
}
};
const params = {
definition: JSON.stringify(definition),
name: 'MyStateMachine',
roleArn: 'arn:aws:iam::123456789012:role/step-functions-role'
};
try {
const data = await stepfunctions.createStateMachine(params).promise();
console.log('Step Functions state machine created:', data.stateMachineArn);
return data.stateMachineArn;
} catch (err) {
console.error('Error creating Step Functions state machine:', err);
throw err;
}
};
// ۳۰. EventBridge (CloudWatch Events)
const eventbridge = new AWS.EventBridge();
const createEventRule = async () => {
const params = {
Name: 'my-scheduled-rule',
ScheduleExpression: 'cron(0 12 * * ? *)', // هر روز در ساعت 12 ظهر
State: 'ENABLED'
};
try {
const data = await eventbridge.putRule(params).promise();
console.log('EventBridge rule created:', data.RuleArn);
return data.RuleArn;
} catch (err) {
console.error('Error creating EventBridge rule:', err);
throw err;
}
};
// ۳۱. CodeBuild
const codebuild = new AWS.CodeBuild();
const createCodeBuildProject = async () => {
const params = {
name: 'my-build-project',
source: {
type: 'GITHUB',
location: '<https://github.com/username/repo.git>'
},
artifacts: {
type: 'NO_ARTIFACTS'
},
environment: {
type: 'LINUX_CONTAINER',
image: 'aws/codebuild/amazonlinux2-x86_64-standard:3.0',
computeType: 'BUILD_GENERAL1_SMALL'
},
serviceRole: 'arn:aws:iam::123456789012:role/codebuild-role'
};
try {
const data = await codebuild.createProject(params).promise();
console.log('CodeBuild project created:', data.project.arn);
return data.project.arn;
} catch (err) {
console.error('Error creating CodeBuild project:', err);
throw err;
}
};
// ۳۲. CodeDeploy
const codedeploy = new AWS.CodeDeploy();
const createCodeDeployApp = async () => {
const params = {
applicationName: 'my-application',
computePlatform: 'Server'
};
try {
const data = await codedeploy.createApplication(params).promise();
console.log('CodeDeploy application created:', data.applicationId);
return data.applicationId;
} catch (err) {
console.error('Error creating CodeDeploy application:', err);
throw err;
}
};
// ۳۳. CodePipeline
const codepipeline = new AWS.CodePipeline();
const createCodePipeline = async () => {
const params = {
pipeline: {
name: 'my-pipeline',
roleArn: 'arn:aws:iam::123456789012:role/codepipeline-role',
artifactStore: {
type: 'S3',
location: 'my-artifact-bucket'
},
stages: [
{
name: 'Source',
actions: [
{
name: 'Source',
actionTypeId: {
category: 'Source',
owner: 'AWS',
provider: 'CodeStarSourceConnection',
version: '1'
},
configuration: {
ConnectionArn: 'arn:aws:codestar-connections:us-east-1:123456789012:connection/abcdef',
FullRepositoryId: 'username/repo',
BranchName: 'main'
},
outputArtifacts: [
{
name: 'SourceCode'
}
]
}
]
},
{
name: 'Build',
actions: [
{
name: 'BuildAction',
actionTypeId: {
category: 'Build',
owner: 'AWS',
provider: 'CodeBuild',
version: '1'
},
configuration: {
ProjectName: 'my-build-project'
},
inputArtifacts: [
{
name: 'SourceCode'
}
],
outputArtifacts: [
{
name: 'BuildOutput'
}
]
}
]
}
]
}
};
try {
const data = await codepipeline.createPipeline(params).promise();
console.log('CodePipeline created:', data.pipeline.name);
return data.pipeline.name;
} catch (err) {
console.error('Error creating CodePipeline:', err);
throw err;
}
};
// ۳۴. Cognito
const cognito = new AWS.CognitoIdentityServiceProvider();
const createCognitoUserPool = async () => {
const params = {
PoolName: 'my-user-pool',
AutoVerifiedAttributes: ['email'],
UsernameAttributes: ['email']
};
try {
const data = await cognito.createUserPool(params).promise();
console.log('Cognito user pool created:', data.UserPool.Id);
return data.UserPool.Id;
} catch (err) {
console.error('Error creating Cognito user pool:', err);
throw err;
}
};
// ۳۵. Secrets Manager
const secretsmanager = new AWS.SecretsManager();
const createSecret = async () => {
const params = {
Name: 'my/secret',
Description: 'My database credentials',
SecretString: JSON.stringify({
username: 'admin',
password: 'secret-password',
host: 'mydb.example.com',
port: 3306,
dbname: 'mydb'
})
};
try {
const data = await secretsmanager.createSecret(params).promise();
console.log('Secret created:', data.ARN);
return data.ARN;
} catch (err) {
console.error('Error creating secret:', err);
throw err;
}
};
// ۳۶. Athena
const athena = new AWS.Athena();
const startAthenaQuery = async () => {
const params = {
QueryString: 'SELECT * FROM my_table LIMIT 10',
QueryExecutionContext: {
Database: 'my_database'
},
ResultConfiguration: {
OutputLocation: 's3://my-query-results-bucket/results/'
}
};
try {
const data = await athena.startQueryExecution(params).promise();
console.log('Athena query started:', data.QueryExecutionId);
return data.QueryExecutionId;
} catch (err) {
console.error('Error starting Athena query:', err);
throw err;
}
};
// ۳۷. Glue
const glue = new AWS.Glue();
const createGlueJob = async () => {
const params = {
Name: 'my-etl-job',
Role: 'arn:aws:iam::123456789012:role/glue-role',
Command: {
Name: 'glueetl',
ScriptLocation: 's3://my-scripts/glue-job.py'
},
DefaultArguments: {
'--job-language': 'python'
},
MaxRetries: 2,
Timeout: 60, // minutes
NumberOfWorkers: 2,
WorkerType: 'G.1X'
};
try {
const data = await glue.createJob(params).promise();
console.log('Glue job created:', data.Name);
return data.Name;
} catch (err) {
console.error('Error creating Glue job:', err);
throw err;
}
};
// ۳۸. EMR (Elastic MapReduce)
const emr = new AWS.EMR();
const createEMRCluster = async () => {
const params = {
Name: 'My Cluster',
ReleaseLabel: 'emr-6.4.0',
Applications: [
{ Name: 'Hadoop' },
{ Name: 'Spark' }
],
Instances: {
InstanceGroups: [
{
Name: 'Master',
Market: 'ON_DEMAND',
InstanceRole: 'MASTER',
InstanceType: 'm5.xlarge',
InstanceCount: 1
},
{
Name: 'Workers',
Market: 'ON_DEMAND',
InstanceRole: 'CORE',
InstanceType: 'm5.xlarge',
InstanceCount: 2
}
],
Ec2KeyName: 'my-key-pair',
KeepJobFlowAliveWhenNoSteps: true,
TerminationProtected: false
},
VisibleToAllUsers: true,
JobFlowRole: 'EMR_EC2_DefaultRole',
ServiceRole: 'EMR_DefaultRole'
};
try {
const data = await emr.runJobFlow(params).promise();
console.log('EMR cluster created:', data.JobFlowId);
return data.JobFlowId;
} catch (err) {
console.error('Error creating EMR cluster:', err);
throw err;
}
};
// ۳۹. SageMaker
const sagemaker = new AWS.SageMaker();
const createSageMakerNotebookInstance = async () => {
const params = {
NotebookInstanceName: 'my-notebook',
InstanceType: 'ml.t2.medium',
RoleArn: 'arn:aws:iam::123456789012:role/sagemaker-role',
VolumeSizeInGB: 5
};
try {
const data = await sagemaker.createNotebookInstance(params).promise();
console.log('SageMaker notebook instance created:', data.NotebookInstanceArn);
return data.NotebookInstanceArn;
} catch (err) {
console.error('Error creating SageMaker notebook instance:', err);
throw err;
}
};
// ۴۰. Comprehend
const comprehend = new AWS.Comprehend();
const detectSentiment = async () => {
const params = {
LanguageCode: 'en',
Text: 'I love AWS services. They are very helpful for building scalable applications.'
};
try {
const data = await comprehend.detectSentiment(params).promise();
console.log('Sentiment detected:', data.Sentiment);
return data.Sentiment;
} catch (err) {
console.error('Error detecting sentiment:', err);
throw err;
}
};
// ۴۱. Translate
const translate = new AWS.Translate();
const translateText = async () => {
const params = {
SourceLanguageCode: 'en',
TargetLanguageCode: 'fr',
Text: 'Hello, World!'
};
try {
const data = await translate.translateText(params).promise();
console.log('Translated text:', data.TranslatedText);
return data.TranslatedText;
} catch (err) {
console.error('Error translating text:', err);
throw err;
}
};
// ۴۲. Rekognition
const rekognition = new AWS.Rekognition();
const detectLabelsInImage = async () => {
const params = {
Image: {
S3Object: {
Bucket: 'my-images-bucket',
Name: 'sample.jpg'
}
},
MaxLabels: 10,
MinConfidence: 70
};
try {
const data = await rekognition.detectLabels(params).promise();
console.log('Labels detected:', data.Labels);
return data.Labels;
} catch (err) {
console.error('Error detecting labels:', err);
throw err;
}
};
// ۴۳. Polly
const polly = new AWS.Polly();
const synthesizeSpeech = async () => {
const params = {
OutputFormat: 'mp3',
Text: 'Hello, welcome to AWS!',
VoiceId: 'Joanna'
};
try {
const data = await polly.synthesizeSpeech(params).promise();
console.log('Speech synthesized, audio length:', data.AudioStream.length);
return data.AudioStream;
} catch (err) {
console.error('Error synthesizing speech:', err);
throw err;
}
};
// ۴۴. Lex
const lexmodelbuildingservice = new AWS.LexModelBuildingService();
const createLexBot = async () => {
const params = {
name: 'BookTrip',
childDirected: false,
locale: 'en-US',
description: 'Bot to book a hotel or car rental',
idleSessionTTLInSeconds: 300,
voiceId: 'Salli',
processBehavior: 'BUILD',
abortStatement: {
messages: [
{
contentType: 'PlainText',
content: 'Sorry, I cannot help you at this time.'
}
]
}
};
try {
const data = await lexmodelbuildingservice.putBot(params).promise();
console.log('Lex bot created:', data.name);
return data.name;
} catch (err) {
console.error('Error creating Lex bot:', err);
throw err;
}
};
// ۴۵. Neptune
const neptune = new AWS.Neptune();
const createNeptuneCluster = async () => {
const params = {
DBClusterIdentifier: 'my-neptune-cluster',
Engine: 'neptune',
VpcSecurityGroupIds: ['sg-12345678'],
DBSubnetGroupName: 'my-db-subnet-group',
IamAuthEnabled: true
};
try {
const data = await neptune.createDBCluster(params).promise();
console.log('Neptune cluster created:', data.DBCluster.DBClusterIdentifier);
return data.DBCluster.DBClusterIdentifier;
} catch (err) {
console.error('Error creating Neptune cluster:', err);
throw err;
}
};
// ۴۶. DocumentDB
const docdb = new AWS.DocDB();
const createDocDBCluster = async () => {
const params = {
DBClusterIdentifier: 'my-docdb-cluster',
Engine: 'docdb',
MasterUsername: 'admin',
MasterUserPassword: 'password123',
VpcSecurityGroupIds: ['sg-12345678'],
DBSubnetGroupName: 'my-db-subnet-group',
BackupRetentionPeriod: 7
};
try {
const data = await docdb.createDBCluster(params).promise();
console.log('DocumentDB cluster created:', data.DBCluster.DBClusterIdentifier);
return data.DBCluster.DBClusterIdentifier;
} catch (err) {
console.error('Error creating DocumentDB cluster:', err);
throw err;
}
};
// ۴۷. Elasticsearch Service
const es = new AWS.ES();
const createElasticsearchDomain = async () => {
const params = {
DomainName: 'my-es-domain',
ElasticsearchVersion: '7.10',
ElasticsearchClusterConfig: {
InstanceType: 't3.small.elasticsearch',
InstanceCount: 1,
DedicatedMasterEnabled: false,
ZoneAwarenessEnabled: false
},
EBSOptions: {
EBSEnabled: true,
VolumeType: 'gp2',
VolumeSize: 10
},
AccessPolicies: JSON.stringify({
Version: '2012-10-17',
Statement: [
{
Effect: 'Allow',
Principal: {
AWS: '*'
},
Action: 'es:*',
Resource: 'arn:aws:es:us-east-1:123456789012:domain/my-es-domain/*'
}
]
})
};
try {
const data = await es.createElasticsearchDomain(params).promise();
console.log('Elasticsearch domain created:', data.DomainStatus.DomainName);
return data.DomainStatus.DomainName;
} catch (err) {
console.error('Error creating Elasticsearch domain:', err);
throw err;
}
};
// ۴۸. WAF (Web Application Firewall)
const waf = new AWS.WAFV2();
const createWAFWebACL = async () => {
const params = {
Name: 'my-web-acl',
Scope: 'REGIONAL',
DefaultAction: {
Allow: {}
},
VisibilityConfig: {
SampledRequestsEnabled: true,
CloudWatchMetricsEnabled: true,
MetricName: 'my-web-acl-metric'
},
Rules: [
{
Name: 'block-bad-bots',
Priority: 1,
Statement: {
RateBasedStatement: {
Limit: 100,
AggregateKeyType: 'IP'
}
},
Action: {
Block: {}
},
VisibilityConfig: {
SampledRequestsEnabled: true,
CloudWatchMetricsEnabled: true,
MetricName: 'block-bad-bots-metric'
}
}
]
};
try {
const data = await waf.createWebACL(params).promise();
console.log('WAF Web ACL created:', data.Summary.Id);
return data.Summary.Id;
} catch (err) {
console.error('Error creating WAF Web ACL:', err);
throw err;
}
};
// ۴۹. Config
const config = new AWS.ConfigService();
const createConfigRule = async () => {
const params = {
ConfigRule: {
ConfigRuleName: 'restricted-ssh',
Description: 'Checks whether security groups allow unrestricted SSH access',
Source: {
Owner: 'AWS',
SourceIdentifier: 'INCOMING_SSH_DISABLED'
},
Scope: {
ComplianceResourceTypes: [
'AWS::EC2::SecurityGroup'
]
}
}
};
try {
const data = await config.putConfigRule(params).promise();
console.log('Config rule created');
return 'restricted-ssh';
} catch (err) {
console.error('Error creating Config rule:', err);
throw err;
}
};
// ۵۰. GuardDuty
const guardduty = new AWS.GuardDuty();
const enableGuardDuty = async () => {
// ابتدا یک detector ایجاد میکنیم
const createParams = {
Enable: true
};
try {
const data = await guardduty.createDetector(createParams).promise();
console.log('GuardDuty detector created:', data.DetectorId);
return data.DetectorId;
} catch (err) {
console.error('Error creating GuardDuty detector:', err);
throw err;
}
};
// ... (ادامه سرویسهای دیگر) ...
// ۵۱. KMS (Key Management Service)
const kms = new AWS.KMS();
const createKMSKey = async () => {
const params = {
Description: 'My encryption key',
KeyUsage: 'ENCRYPT_DECRYPT',
Origin: 'AWS_KMS'
};
try {
const data = await kms.createKey(params).promise();
console.log('KMS key created:', data.KeyMetadata.KeyId);
return data.KeyMetadata.KeyId;
} catch (err) {
console.error('Error creating KMS key:', err);
throw err;
}
};
// ۵۲. ACM (Certificate Manager)
const acm = new AWS.ACM();
const requestCertificate = async () => {
const params = {
DomainName: 'example.com',
ValidationMethod: 'DNS',
SubjectAlternativeNames: [
'*.example.com'
]
};
try {
const data = await acm.requestCertificate(params).promise();
console.log('Certificate requested:', data.CertificateArn);
return data.CertificateArn;
} catch (err) {
console.error('Error requesting certificate:', err);
throw err;
}
};
// ۵۳. Transfer Family
const transfer = new AWS.Transfer();
const createSFTPServer = async () => {
const params = {
EndpointType: 'PUBLIC',
IdentityProviderType: 'SERVICE_MANAGED',
LoggingRole: 'arn:aws:iam::123456789012:role/transfer-logging-role'
};
try {
const data = await transfer.createServer(params).promise();
console.log('SFTP server created:', data.ServerId);
return data.ServerId;
} catch (err) {
console.error('Error creating SFTP server:', err);
throw err;
}
};
// ۵۴. WorkSpaces
const workspaces = new AWS.WorkSpaces();
const createWorkspace = async () => {
const params = {
Workspaces: [
{
DirectoryId: 'd-12345678ab',
UserName: 'user1',
BundleId: 'wsb-12345678'
}
]
};
try {
const data = await workspaces.createWorkspaces(params).promise();
console.log('Workspace creation request submitted');
return data.PendingRequests;
} catch (err) {
console.error('Error creating workspace:', err);
throw err;
}
};
// ۵۵. SWF (Simple Workflow Service)
const swf = new AWS.SWF();
const registerSWFDomain = async () => {
const params = {
name: 'my-workflow-domain',
description: 'Domain for my workflow',
workflowExecutionRetentionPeriodInDays: '7'
};
try {
await swf.registerDomain(params).promise();
console.log('SWF domain registered:', params.name);
return params.name;
} catch (err) {
console.error('Error registering SWF domain:', err);
throw err;
}
};
// ۵۶. OpsWorks
const opsworks = new AWS.OpsWorks();
const createOpsWorksStack = async () => {
const params = {
Name: 'MyStack',
Region: 'us-east-1',
ServiceRoleArn: 'arn:aws:iam::123456789012:role/aws-opsworks-service-role',
DefaultInstanceProfileArn: 'arn:aws:iam::123456789012:instance-profile/aws-opsworks-ec2-role',
DefaultOs: 'Amazon Linux 2'
};
try {
const data = await opsworks.createStack(params).promise();
console.log('OpsWorks stack created:', data.StackId);
return data.StackId;
} catch (err) {
console.error('Error creating OpsWorks stack:', err);
throw err;
}
};
// ۵۷. IoT Core
const iot = new AWS.Iot();
const createIoTThing = async () => {
const params = {
thingName: 'my-iot-device'
};
try {
const data = await iot.createThing(params).promise();
console.log('IoT thing created:', data.thingName);
return data.thingName;
} catch (err) {
console.error('Error creating IoT thing:', err);
throw err;
}
};
// ۵۸. Batch
const batch = new AWS.Batch();
const createBatchComputeEnvironment = async () => {
const params = {
computeEnvironmentName: 'my-compute-env',
type: 'MANAGED',
state: 'ENABLED',
computeResources: {
type: 'EC2',
minvCpus: 0,
maxvCpus: 16,
desiredvCpus: 0,
instanceTypes: ['m5.large'],
subnets: ['subnet-12345678', 'subnet-87654321'],
securityGroupIds: ['sg-12345678'],
instanceRole: 'ecsInstanceRole'
},
serviceRole: 'AWSBatchServiceRole'
};
try {
const data = await batch.createComputeEnvironment(params).promise();
console.log('Batch compute environment created:', data.computeEnvironmentName);
return data.computeEnvironmentName;
} catch (err) {
console.error('Error creating Batch compute environment:', err);
throw err;
}
};
// ۵۹. WorkMail
const workmail = new AWS.WorkMail();
const createWorkMailOrganization = async () => {
const params = {
Name: 'my-organization',
Alias: 'my-org',
DirectoryId: 'd-12345678ab'
};
try {
const data = await workmail.createOrganization(params).promise();
console.log('WorkMail organization created:', data.OrganizationId);
return data.OrganizationId;
} catch (err) {
console.error('Error creating WorkMail organization:', err);
throw err;
}
};
// ۶۰. AppStream
const appstream = new AWS.AppStream();
const createAppStreamFleet = async () => {
const params = {
Name: 'my-fleet',
DisplayName: 'My AppStream Fleet',
Description: 'Fleet for streaming applications',
InstanceType: 'stream.standard.medium',
FleetType: 'ON_DEMAND',
VpcConfig: {
SubnetIds: ['subnet-12345678', 'subnet-87654321'],
SecurityGroupIds: ['sg-12345678']
},
ComputeCapacity: {
DesiredInstances: 1
},
ImageName: 'Amazon-AppStream2-Sample-Image-03-11-2019',
DisconnectTimeoutInSeconds: 900
};
try {
const data = await appstream.createFleet(params).promise();
console.log('AppStream fleet created:', data.Fleet.Name);
return data.Fleet.Name;
} catch (err) {
console.error('Error creating AppStream fleet:', err);
throw err;
}
};
// ۶۱. QuickSight
const quicksight = new AWS.QuickSight();
const createQuickSightUser = async () => {
const params = {
AwsAccountId: '123456789012',
Namespace: 'default',
IdentityType: 'IAM',
Email: '[email protected]',
UserRole: 'READER',
IamArn: 'arn:aws:iam::123456789012:user/quicksight-user'
};
try {
const data = await quicksight.registerUser(params).promise();
console.log('QuickSight user created:', data.User.Arn);
return data.User.Arn;
} catch (err) {
console.error('Error creating QuickSight user:', err);
throw err;
}
};
// ۶۲. AppSync (For Frontend)
const createAppSyncClientConfig = async () => {
// فرض کنید API ID را از قبل دارید
const apiId = 'abcdefghijklmn';
const region = 'us-east-1';
const config = {
aws_appsync_graphqlEndpoint: `https://${apiId}.appsync-api.${region}.amazonaws.com/graphql`,
aws_appsync_region: region,
aws_appsync_authenticationType: 'API_KEY',
aws_appsync_apiKey: 'da2-abcdefghijklmnopqrstuvwxyz'
};
console.log('AppSync client config created:', config);
return config;
};
// ۶۳. Amplify
const amplify = new AWS.Amplify();
const createAmplifyApp = async () => {
const params = {
name: 'my-react-app',
repository: '<https://github.com/username/my-repo>',
platform: 'WEB',
iamServiceRoleArn: 'arn:aws:iam::123456789012:role/amplify-role',
buildSpec: 'version: 1\\nfrontend:\\n phases:\\n build:\\n commands:\\n - npm install\\n - npm run build\\n artifacts:\\n baseDirectory: build\\n files:\\n - "**/*"\\n'
};
try {
const data = await amplify.createApp(params).promise();
console.log('Amplify app created:', data.app.appId);
return data.app.appId;
} catch (err) {
console.error('Error creating Amplify app:', err);
throw err;
}
};
// ۶۴. CloudFormation
const cloudformation = new AWS.CloudFormation();
const createCloudFormationStack = async () => {
const templateBody = `
{
"AWSTemplateFormatVersion": "2010-09-09",
"Resources": {
"S3Bucket": {
"Type": "AWS::S3::Bucket",
"Properties": {
"BucketName": "my-cfn-bucket-${Date.now()}",
"AccessControl": "Private",
"VersioningConfiguration": {
"Status": "Enabled"
}
}
}
},
"Outputs": {
"BucketName": {
"Value": {"Ref": "S3Bucket"},
"Description": "Name of the S3 bucket"
}
}
}
`;
const params = {
StackName: 'MyS3BucketStack',
TemplateBody: templateBody,
Capabilities: ['CAPABILITY_IAM']
};
try {
const data = await cloudformation.createStack(params).promise();
console.log('CloudFormation stack created:', data.StackId);
return data.StackId;
} catch (err) {
console.error('Error creating CloudFormation stack:', err);
throw err;
}
};
// ۶۵. Media Services (MediaConvert)
const mediaconvert = new AWS.MediaConvert();
const createMediaConvertJob = async () => {
// ابتدا باید endpoint را بدست آوریم
const endpoints = await mediaconvert.describeEndpoints().promise();
const endpoint = endpoints.Endpoints[0].Url;
// ایجاد کلاینت جدید با endpoint خاص
const mediaconvertWithEndpoint = new AWS.MediaConvert({ endpoint });
const params = {
Role: 'arn:aws:iam::123456789012:role/MediaConvertRole',
Settings: {
Inputs: [
{
FileInput: 's3://my-input-bucket/input.mp4'
}
],
OutputGroups: [
{
Name: 'File Group',
OutputGroupSettings: {
Type: 'FILE_GROUP_SETTINGS',
FileGroupSettings: {
Destination: 's3://my-output-bucket/output/'
}
},
Outputs: [
{
VideoDescription: {
Width: 1280,
Height: 720,
CodecSettings: {
Codec: 'H_264',
H264Settings: {
RateControlMode: 'CBR',
Bitrate: 5000000
}
}
},
AudioDescriptions: [
{
CodecSettings: {
Codec: 'AAC',
AacSettings: {
Bitrate: 96000,
CodingMode: 'CODING_MODE_2_0',
SampleRate: 48000
}
}
}
],
ContainerSettings: {
Container: 'MP4',
Mp4Settings: {}
}
}
]
}
]
}
};
try {
const data = await mediaconvertWithEndpoint.createJob(params).promise();
console.log('MediaConvert job created:', data.Job.Id);
return data.Job.Id;
} catch (err) {
console.error('Error creating MediaConvert job:', err);
throw err;
}
};
// ۶۶. Systems Manager
const ssm = new AWS.SSM();
const createSSMParameter = async () => {
const params = {
Name: '/my/parameter',
Type: 'SecureString',
Value: 'my-secure-value',
Description: 'My secure parameter',
Tags: [
{
Key: 'Environment',
Value: 'Production'
}
]
};
try {
const data = await ssm.putParameter(params).promise();
console.log('SSM parameter created:', data.Version);
return params.Name;
} catch (err) {
console.error('Error creating SSM parameter:', err);
throw err;
}
};
// ۶۷. CDK (Cloud Development Kit)
// CDK در واقع یک فریمورک است و مستقیماً با SDK کار نمیکند
// یک مثال ساده برای راهاندازی اولیه CDK:
// اجرای این دستورات در ترمینال:
/*
npm install -g aws-cdk
mkdir my-cdk-app && cd my-cdk-app
cdk init app --language=javascript
*/
// نمونه کد CDK برای ایجاد یک بانکت S3
/*
const cdk = require('@aws-cdk/core');
const s3 = require('@aws-cdk/aws-s3');
class MyCdkStack extends cdk.Stack {
constructor(scope, id, props) {
super(scope, id, props);
// ایجاد یک بانکت S3
new s3.Bucket(this, 'MyFirstBucket', {
versioned: true,
removalPolicy: cdk.RemovalPolicy.DESTROY,
autoDeleteObjects: true
});
}
}
module.exports = { MyCdkStack }
*/
// استفاده از کد بالا در cdk-app
/*
const cdk = require('@aws-cdk/core');
const { MyCdkStack } = require('./lib/my-cdk-stack');
const app = new cdk.App();
new MyCdkStack(app, 'MyCdkStack');
*/
// اجرای دستور زیر برای deploy:
// cdk deploy
// اجرای همه کدها به عنوان نمونه
const runAllExamples = async () => {
try {
console.log("Starting AWS services initialization...");
// اجرای چند سرویس به عنوان نمونه
await createS3Bucket();
await createEC2Instance();
await createLambdaFunction();
console.log("AWS services initialized successfully!");
} catch (error) {
console.error("Error initializing AWS services:", error);
}
};
// فراخوانی تابع اصلی
// runAllExamples();
درک میکنم که میخواهید کاملترین لیست تمامی سرویسها، قابلیتها، اصطلاحات و کاربردهای AWS را به زبان ساده و با توضیح دقیق، بدون حذف حتی یک گزینه داشته باشید.
نکته مهم این است که تعداد سرویسها و قابلیتهای AWS بسیار زیاد است (صدها سرویس و هزاران ویژگی)، و لیست کامل آنها با توضیحات دقیق، حجم چند صد صفحه خواهد شد. اما من تا جای ممکن اصلیترین و شناختهشدهترین موارد را همراه با توضیح عامیانه و کاربرد هر کدام، برای شما آماده میکنم. اگر به سرویس یا اصطلاح خاصی نیاز داشتید که اینجا نیافتی، کافیه اسمش رو بنویسی تا برات توضیح بدم.