블로그 이미지
개발자로서 현장에서 일하면서 새로 접하는 기술들이나 알게된 정보 등을 정리하기 위한 블로그입니다. 운 좋게 미국에서 큰 회사들의 프로젝트에서 컬설턴트로 일하고 있어서 새로운 기술들을 접할 기회가 많이 있습니다. 미국의 IT 프로젝트에서 사용되는 툴들에 대해 많은 분들과 정보를 공유하고 싶습니다.
솔웅

최근에 받은 트랙백

글 보관함

calendar

1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        


* Bash Script


Auto execute scripts when create instance

- Enter script in Advanced Details text box when you create an instance



In this case, system will execute all these scripts when create the instance.

#!/bin/bash

yum update -y

yum install httpd -y

service httpd start

checkconfig httpd on

cd /var/www/html

aws s3 cp s3://mywebsitebucket-changsoo/index.html /var/www/html


: Update system, install Apache, start httpd server and copy index.html from s3 to /var/www/html folder of the Instance



* Install PHP and create php page


Enter scripts below to Advanced Details when you create an instance


#!/bin/bash

yum update -y

yum install httpd24 php56 git -y

service httpd start

chkconfig httpd on

cd /var/www/html

echo "<?php phpinfo();?>" > test.php

git clone https://github.com/acloudguru/s3


navigate to 'public IP address'/test.php in your browser then you can see PHP INFO page




Access to the server through Terminal


1178578-C02NW6G1G3QD:AWS_SSH changsoopark$ ssh ec2-user@54.89.219.112 -i EC2KeyPair.pem.txt 


.....................


[root@ip-172-31-80-161 ec2-user]# cd /var/www/html

[root@ip-172-31-80-161 html]# ls -l

total 8

drwxr-xr-x 3 root root 4096 Oct 12 23:52 s3

-rw-r--r-- 1 root root   19 Oct 12 23:52 test.php

[root@ip-172-31-80-161 html]# 


==> there is a test.php and downloaded s3 folder from cloudguru's GitHub repository



https://docs.aws.amazon.com/aws-sdk-php/v3/guide/getting-started/installation.html



Installing via Composer

Using Composer is the recommended way to install the AWS SDK for PHP. Composer is a dependency management tool for PHP that allows you to declare the dependencies your project needs and installs them into your project.

  1. Install Composer

    curl -sS https://getcomposer.org/installer | php
    
  2. Run the Composer command to install the latest stable version of the SDK:

    php composer.phar require aws/aws-sdk-php
    
  3. Require Composer's autoloader:

    <?php
    require 'vendor/autoload.php';
    

You can find out more on how to install Composer, configure autoloading, and other best-practices for defining dependencies at getcomposer.org.


[root@ip-172-31-80-161 html]# pwd

/var/www/html

[root@ip-172-31-80-161 html]# curl -sS https://getcomposer.org/installer | php

curl: (35) Network file descriptor is not connected

[root@ip-172-31-80-161 html]# curl -sS https://getcomposer.org/installer | php

All settings correct for using Composer

Downloading...


Composer (version 1.5.2) successfully installed to: /var/www/html/composer.phar

Use it: php composer.phar


[root@ip-172-31-80-161 html]# php composer.phar require aws/aws-sdk-php

Do not run Composer as root/super user! See https://getcomposer.org/root for details

Using version ^3.36 for aws/aws-sdk-php

./composer.json has been created

Loading composer repositories with package information

Updating dependencies (including require-dev)

Package operations: 6 installs, 0 updates, 0 removals

  - Installing mtdowling/jmespath.php (2.4.0): Downloading (100%)         

  - Installing psr/http-message (1.0.1): Downloading (100%)         

  - Installing guzzlehttp/psr7 (1.4.2): Downloading (100%)         

  - Installing guzzlehttp/promises (v1.3.1): Downloading (100%)         

  - Installing guzzlehttp/guzzle (6.3.0): Downloading (100%)         

  - Installing aws/aws-sdk-php (3.36.26): Downloading (100%)         

guzzlehttp/guzzle suggests installing psr/log (Required for using the Log middleware)

aws/aws-sdk-php suggests installing aws/aws-php-sns-message-validator (To validate incoming SNS notifications)

aws/aws-sdk-php suggests installing doctrine/cache (To use the DoctrineCacheAdapter)

Writing lock file

Generating autoload files

[root@ip-172-31-80-161 html]# ls -l

total 1844

-rw-r--r-- 1 root root      62 Oct 13 00:04 composer.json

-rw-r--r-- 1 root root   12973 Oct 13 00:04 composer.lock

-rwxr-xr-x 1 root root 1852323 Oct 13 00:04 composer.phar

drwxr-xr-x 3 root root    4096 Oct 12 23:52 s3

-rw-r--r-- 1 root root      19 Oct 12 23:52 test.php

drwxr-xr-x 8 root root    4096 Oct 13 00:04 vendor

[root@ip-172-31-80-161 html]# cd vendor

[root@ip-172-31-80-161 vendor]# ls -l

total 28

-rw-r--r-- 1 root root  178 Oct 13 00:04 autoload.php

drwxr-xr-x 3 root root 4096 Oct 13 00:04 aws

drwxr-xr-x 2 root root 4096 Oct 13 00:04 bin

drwxr-xr-x 2 root root 4096 Oct 13 00:04 composer

drwxr-xr-x 5 root root 4096 Oct 13 00:04 guzzlehttp

drwxr-xr-x 3 root root 4096 Oct 13 00:04 mtdowling

drwxr-xr-x 3 root root 4096 Oct 13 00:04 psr

[root@ip-172-31-80-161 vendor]# vi autoload.php


<?php


// autoload.php @generated by Composer


require_once __DIR__ . '/composer/autoload_real.php';


return ComposerAutoloaderInit818e4cd87569a511144599b49f2b1fed::getLoader();






* Using the PHP to access to S3



[root@ip-172-31-80-161 s3]# ls -l

total 24

-rw-r--r-- 1 root root 796 Oct 12 23:52 cleanup.php

-rw-r--r-- 1 root root 195 Oct 12 23:52 connecttoaws.php

-rw-r--r-- 1 root root 666 Oct 12 23:52 createbucket.php

-rw-r--r-- 1 root root 993 Oct 12 23:52 createfile.php

-rw-r--r-- 1 root root 735 Oct 12 23:52 readfile.php

-rw-r--r-- 1 root root 193 Oct 12 23:52 README.md

[root@ip-172-31-80-161 s3]# vi createbucket.php 


<?php

//copyright 2015 - A Cloud Guru.


//connection string

include 'connecttoaws.php';


// Create a unique bucket name

$bucket = uniqid("acloudguru", true);


// Create our bucket using our unique bucket name

$result = $client->createBucket(array(

    'Bucket' => $bucket

));


//HTML to Create our webpage

echo "<h1 align=\"center\">Hello Cloud Guru!</h1>";

echo "<div align = \"center\"><img src=\"https://acloud.guru/images/logo-small-optimised.png\"></img></div>";

echo "<h2 align=\"center\">You have successfully created a bucket called {$bucket}</h2>";

echo "<div align=\"center\"><a href=\"createfile.php?bucket=$bucket\">Click Here to Continue</a></div>";

?>


[root@ip-172-31-80-161 s3]# vi connecttoaws.php 


<?php

// Include the SDK using the Composer autoloader

require '/var/www/html/vendor/autoload.php';

$client = new Aws\S3\S3Client([

    'version' => 'latest',

    'region'  => 'us-east-1'

]);

?>


[root@ip-172-31-80-161 s3]# vi createfile.php 


<?php

//Copyright 2015 A Cloud Guru


//Connection string

include 'connecttoaws.php';


/*

Files in Amazon S3 are called "objects" and are stored in buckets. A specific

object is referred to by its key (or name) and holds data. In this file

we create an object called acloudguru.txt that contains the data

'Hello Cloud Gurus!'

and we upload/put it into our newly created bucket.

*/


//get the bucket name

$bucket = $_GET["bucket"];


//create the file name

$key = 'cloudguru.txt';


//put the file and data in our bucket

$result = $client->putObject(array(

    'Bucket' => $bucket,

    'Key'    => $key,

    'Body'   => "Hello Cloud Gurus!"

));


//HTML to create our webpage

echo "<h2 align=\"center\">File - $key has been successfully uploaded to $bucket</h2>";

echo "<div align = \"center\"><img src=\"https://acloud.guru/images/logo-small-optimised.png\"></img></div>";

echo "<div align = \"center\"><a href=\"readfile.php?bucket=$bucket&key=$key\">Click Here To Read Your File</a></div>";

?>


[root@ip-172-31-80-161 s3]# vi readfile.php 


<?php

//connection string

include 'connecttoaws.php';


//code to get our bucket and key names

$bucket = $_GET["bucket"];

$key = $_GET["key"];


//code to read the file on S3

$result = $client->getObject(array(

    'Bucket' => $bucket,

    'Key'    => $key

));

$data = $result['Body'];


//HTML to create our webpage

echo "<h2 align=\"center\">The Bucket is $bucket</h2>";

echo "<h2 align=\"center\">The Object's name is $key</h2>";

echo "<h2 align=\"center\">The Data in the object is $data</h2>";

echo "<div align = \"center\"><img src=\"https://acloud.guru/images/logo-small-optimised.png\"></img></div>";

echo "<div align = \"center\"><a href=\"cleanup.php?bucket=$bucket&key=$key\">Click Here To Remove Files & Bucket</a></div>";

?>

                      

[root@ip-172-31-80-161 s3]# vi cleanup.php 


<?php

//Connection String

include'connecttoaws.php';


//Code to get our bucketname and file name

$bucket = $_GET["bucket"];

$key = $_GET["key"];


//buckets cannot be deleted unless they are empty

//Code to delete our object

$result = $client->deleteObject(array(

    'Bucket' => $bucket,

    'Key'    => $key

));


//code to tell user the file has been deleted.

echo "<h2 align=\"center\">Object $key successfully deleted.</h2>";


//Code to delete our bucket

$result = $client->deleteBucket(array(

    'Bucket' => $bucket

));


//code to create our webpage.

echo "<h2 align=\"center\">Bucket $bucket successfully deleted.</h2>";

echo "<div align = \"center\"><img src=\"https://acloud.guru/images/logo-small-optimised.png\"></img></div>";

echo "<h2 align=\"center\">Good Bye Cloud Gurus!</h2>";

?>


http://54.89.219.112/s3/createbucket.php




acloudguru.... buckets are created in my S3. 

Click on the Link.





cloudguru.txt file has been uploaded to the bucket in S3.

Click on the Link.




Click on the Link.







The bucket has been removed.










* Instance Metadata and User Data


curl http://169.254.169.254/latest/meta-data/ (*****)


How to get the public IP address (Exam *****)


[root@ip-172-31-80-161 s3]# curl http://169.254.169.254/latest/meta-data/

ami-id

ami-launch-index

ami-manifest-path

block-device-mapping/

hostname

iam/

instance-action

instance-id

instance-type

local-hostname

local-ipv4

mac

metrics/

network/

placement/

profile

public-hostname

public-ipv4

public-keys/

reservation-id

security-groups

[root@ip-172-31-80-161 s3]# curl http://169.254.169.254/latest/meta-data/public-ipv4

54.89.219.112[root@ip-172-31-80-161 s3]# 


[root@ip-172-31-80-161 s3]# yum install httpd php php-mysql


[root@ip-172-31-80-161 s3]# service httpd start

Starting httpd: 

[root@ip-172-31-80-161 s3]# yum install git


[root@ip-172-31-80-161 s3]# cd /var/www/html

[root@ip-172-31-80-161 html]# git clone https://github.com/acloudguru/metadata

Cloning into 'metadata'...

remote: Counting objects: 9, done.

remote: Total 9 (delta 0), reused 0 (delta 0), pack-reused 9

Unpacking objects: 100% (9/9), done.



[root@ip-172-31-80-161 s3]# cd /var/www/html

[root@ip-172-31-80-161 html]# git clone https://github.com/acloudguru/metadata

Cloning into 'metadata'...

remote: Counting objects: 9, done.

remote: Total 9 (delta 0), reused 0 (delta 0), pack-reused 9

Unpacking objects: 100% (9/9), done.

[root@ip-172-31-80-161 html]# ls -l

total 1848

-rw-r--r-- 1 root root      62 Oct 13 00:04 composer.json

-rw-r--r-- 1 root root   12973 Oct 13 00:04 composer.lock

-rwxr-xr-x 1 root root 1852323 Oct 13 00:04 composer.phar

drwxr-xr-x 3 root root    4096 Oct 13 00:34 metadata

drwxr-xr-x 3 root root    4096 Oct 13 00:15 s3

-rw-r--r-- 1 root root      19 Oct 12 23:52 test.php

drwxr-xr-x 8 root root    4096 Oct 13 00:08 vendor

[root@ip-172-31-80-161 html]# cd metadata

[root@ip-172-31-80-161 metadata]# ls -l

total 8

-rw-r--r-- 1 root root 676 Oct 13 00:34 curlexample.php

-rw-r--r-- 1 root root  11 Oct 13 00:34 README.md

[root@ip-172-31-80-161 metadata]# vi curlexample.php


<?php

        // create curl resource

        $ch = curl_init();

        $publicip = "http://169.254.169.254/latest/meta-data/public-ipv4";


        // set url

        curl_setopt($ch, CURLOPT_URL, "$publicip");


        //return the transfer as a string

        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);


        // $output contains the output string

        $output = curl_exec($ch);


        // close curl resource to free up system resources

        curl_close($ch);


        // close curl resource to free up system resources

        curl_close($ch);


        //Get the public IP address

        echo "The public IP address for your EC2 instance is $output";

?>


Open a Web Browser
http://54.89.219.112/metadata/curlexample.php





저작자 표시 비영리 동일 조건 변경 허락
신고


Copy from alexa.design/standout

PDF file : 

GuideStandoutSkillFinal.pdf








Seven Qualities of Top-Performing Alexa Skills



Browse through the Alexa Skills Store, and you’ll see the innovations of our developer community on display. Our public catalog features more than 25,000 skills that enable a rich variety of scenarios including hands-free smart device control, on-demand content delivery, immersive adventure games, and more. You’ve created natural and engaging voice experiences that are delighting customer. And you’ve pushed the boundaries of what’s possible with voice to redefine how your customers interact with technology.



Now that you can earn money for eligible skills that drive the highest customer engagement, we know engagement is top of mind for many of you. To help you maximize the impact of your work, we analyzed our skill selection from the customers’ perspective. What makes a skill engaging for customers? And what keeps customers coming back over time? To find out, we examined the skills that see the highest consistent customer engagement. And we learned that these top performers share seven common qualities:



1. The skill makes a task faster and easier with voice 

2. The skill has an intuitive and memorable name
3. The skill sets clear expectations on what it can do 

4. The skill minimizes friction

5. The skill surprises and delights customers 

6. The skill delivers fresh content
7. The skill is consistently reliable



In this guide, we will dive deeper into each quality and provide guidance on how you can incorporate it into your skill. We will also share exemplary skills that you can explore and model after. Leverage these insights to build standout skills that your customers will love.





1 The Skill Makes a Task Faster and 


Easier with Voice



When designing a new skill, make sure it has a clear customer benefit. Your skill should make a task faster and easier with voice. The skill should offer a more convenient user experience than existing methods, be it a light switch or a smartphone app.



Smart home skills, especially those that control multiple smart devices, are a great example of an existing experience made better with voice. They take a known workflow that involves multiple applications and simplify the steps into a single voice command, making the tasks both faster and easier. These skills offer a clear value to the customer.



When choosing your voice project, start with the purpose, or what customers want to accomplish. Then determine the capabilities of your skill and the benefits of using the skill over other options. Make sure your skill has a clear purpose before you start building. Skills that seamlessly integrate into a customer’s routine and provide value are especially popular.



Customers love The Dog Feeder skill because it helps simplify a daily task. Customers simply say, 

“Alexa, ask the dog if we fed her,” and Alexa shares when the dog last ate, giving families an easy way to manage a shared task. The skill addresses a need in the customers’ daily routine and provides value.



If you’re adapting an existing experience for voice, take a voice-first approach to designing and building your skill. In other words, avoid taking a visual experience or an app-first experience and simply adding voice to it. Instead, reimagine the interaction and figure out how to make it faster and easier with voice. Unless you offer an option that is twice as easy as what’s already available, customers don’t have an incentive to leave the UX they already know and adopt a new habit.





2 The Skill Has an Intuitive and 


Memorable Name



Once you’ve determined your skill’s purpose, give it a great name. Your skill’s name should help customers easily discover, understand, and remember your skill. If your skill name is longer and more difficult to say than a similar skill, you’ll risk losing customers—even if your skill offers more functionality. Remember, customers prefer voice because it’s our most natural form of interaction. So be sure to give your skill a name that’s natural to say and easy to grasp.



Take, for example, Daily Affirmation. The skill provides a new uplifting thought every day—just as the name suggests. For skills that deliver fresh content, specifying how often you’ll update the content tells the customers when to come back for more.

 

Even skills with more complex customer offerings can have a simple and memorable name.

The Magic Door is an interactive adventure game that takes customers through a magic door and into an enchanted forest. The name hints at many aspects of this sophisticated skill and is also easy to remember.


Once you’ve got an idea for your skill’s name, say the invocation name out loud, just as a customer would. See if it’s intuitive and easy to say. Let’s take the example of the Sleep and Relaxation Sounds skill. The customer will say something like:



You can see that the invocation name speaks to the value of the skill, flows within the context, and will be easy to remember at bedtime.


Beta testers (or even friends or colleagues) can also help grade the strength of your skill’s name. Ask them what they expect the skill to do based on the name alone. Use their responses to determine whether your skill name clearly articulates your skill’s capabilities and value. After your skill is published, read the customer reviews to identify any gaps between the skill name and the skill experience.



3 The Skill Sets Clear Expectations on 


What It Can Do



When customers first invoke your skill, aim to provide just the right amount of information so customers know how to move forward. Provide not enough information, and customers won’t know what to do. Provide too much, and customers will get overwhelmed and leave. Finding the right balance is key to enabling your customers to seamlessly interact with your skill.



Then, when your users come back for a second visit, offer a different, abbreviated welcome. Since you’ve already introduced yourself, you can dive right in and pick up where you left off, just like you would with another person. When we talk to each other, our first conversation and our tenth conversation are quite different. That’s because we grow more familiar with each other, and our conversations gain context from previous talks. The same should hold true for your skill’s interaction with your customers.



For every interaction, keep Alexa’s responses concise so that your users stay engaged and can easily follow along. Put your skill’s responses to the one-breath test. Read aloud what you’ve written at a conversational pace. If you can say it all in one breath, the length is likely good. If you need to take a breath, consider reducing the length. For a response that includes successive ideas such as steps in a task, read each idea separately. While the entire response may require more than one breath, make sure your response requires breaths between, not during, ideas.



Once you’ve designed your skill, test your skill to make sure it works as you intended. Watch beta testers and customers try to use your skill and see whether you’ve presented the right amount of information to successfully guide them through the interaction.



 Learn more: Voice Design Guide: What Alexa Says

Try: Set Clear Expectations Using Our Code Sample





4 The Skill Minimizes Friction


As you add capabilities to your skill, make sure you don’t introduce unnecessary pain points or friction. Think through the entire interaction flow, and ensure your customers will know how to navigate from one step to the next. Remove any ambiguity that may hinder your customers from moving forward and getting what they’re looking for.



One way to minimize friction is to only add account linking when you truly need it. Account linking provides authentication when you need to associate the identity of the Alexa user with a user in your system. It’s a useful way to collect information that is very difficult to accurately recognize via voice, like email addresses (which often contain homophones like “one” and “1”). But account linking can also introduce friction for customers when they enable a skill as it prevents the process from being completed seamlessly via voice. Therefore, it should only be used when necessary, specifically when the resulting customer value offsets the risk of friction.



If your skill simply needs to persist data between sessions, account linking is not strictly required. The userID attribute provided with the request will identify the same user across sessions unless the customer disables and re-enables your skill. 


Some information, like physical address, is now available via the permissions framework grows, account-linking flows should be limited to authentication scenarios only and not personalization. If you use account linking in your skill, be sure to follow best practices to minimize friction and ensure a smooth customer experience.



Learn more : 10 Tips for Successfully Adding Account Linking to Your Alexa Skill




5 The Skill Surprises and Delights 


Customers


In mobile and web design, it’s important to provide a consistent customer experience every time. Layout, color schemes, and names always stay the same so users don’t have to relearn the UI with each visit. But with voice, it’s important to have variety. People may not mind scanning the same web page times over, but no one wants to have the same conversation time and again.



You can introduce variety throughout your skill to keep the interaction fresh. Think of all the different ways Alexa can welcome your customers, or the many ways Alexa can say “OK” (think: “Got it,” “Thanks,” “Sounds good,” “Great,” and so on). You can use these opportunities to inject variety, color, and humor to your skill. You can even prepare clever responses to customers’ requests for features your skill doesn’t yet support. By seizing these opportunities, you can make your interactions feel more natural, conversational, and even memorable. 



You can also build engagement over time by remembering what your users were doing last.

Storing data in Amazon DynamoDB allows you to add this memory and context to your skill.

Persistence allows you to pause games or guide users through a step-by-step process like creating a recipe, tackling a DIY project, or a playing a game. For example, a game skill with memory enables customers to pause, come back, and pick up right where they left off.






6 The Skill Regularly Provides Fresh 



Content


As we’ve mentioned, customers expect variety in voice interactions. So it’s no surprise that skills that provide fresh content drive more regular usage over time. Fresh content gives customers a reason to return to your skill over time, and when they do, they are rewarded with something new.



This is especially true of flash briefing skills, which are built around the premise of delivering fresh content. When flash briefing skills don’t update as promised, customers tend to leave negative reviews.



However, the value of this quality doesn’t just apply to flash briefing skills; other skills should also get regular content updates. For example, fact skills and trivia skills that don’t evolve over time to offer new facts or questions don’t tend to see consistent engagement. Users may love the experi- ence you’ve built, but if your skill never evolves beyond a set of limited choices, they won’t have reason to keep coming back.


The Jeopardy! skill is a model example of a skill that entices customers with fresh content. The skill serves up six new clues every weekday, giving fans reason to return five times a week.

When building your skill, establish a content workflow that enables you to quickly and easily add new content to your skill. One way to do this is to house your content in a database instead of hardcoding it into your skill to enable fast updates. Once you’ve set up a workflow, adhere to a schedule to make continued updates to your skill. Find ways to add fresh content and continue delighting your customers over time.



Try: Keep Your Customers Engaged with Dynamic Content





7 The Skill Is Consistently Reliable

Even the most compelling and delightful voice experience won’t gain traction if it isn’t available whenever customers ask. To ensure your skill is consistently reliable, configure a professional-grade backend for your skill.


Amazon Web Services offers several solutions that will help you improve the user experience and ensure dependability of your skill as it gains users and handles more intricate content. Try Amazon CloudFront to cache dynamic content and files that require heavy-lifting. This will improve your response time and provide better deliverability.

 

If you’ve built a top-notch skill, it will likely get noticed and highlighted in the Alexa Skills Store. So be sure your backend can support your skill’s moment in the spotlight. Your backend should be able to scale properly to ensure high availability during high-traffic scenarios. If you’re using Amazon DynamoDB, set your tables capacity for reads and writes per second to be much higher than your expected peak throughput. If your skill launches multiple AWS Lambda functions per skill invocation, check to see whether you are nearing the limits for function invocations. If you’re getting close, you can request a limit increase to ensure scalability. To set alarms for unforeseen scenarios, you can use Lambda’s built-in functionality to output logs to Amazon CloudWatch and trigger alarms based on the vents in those logs. 

 


 Once your skill is live, you can use Amazon QuickSight to visualize analytics you track in Amazon Redshift. You can see how your skill is performing, fix user experiences that don't resonate, and double down on what works to make your skill even more impactful.


AWS Promo Credits: If you incur AWS charges related to your skill, you can apply for AWS promotional credits. Once you’ve published a skill, apply to receive a $100 AWS promotional credit and an additional $100 per month in credit.

Apply now. 



Learn more: 5 Ways to Level Up Your Skill with AWS




Build Engaging Skills Your Customers Will Love


Whether you’re building a new skill or upgrading an existing skill, follow these tips to put your best skill forward. By building engaging voice experiences, you can reach and delight customers through tens of millions of devices with Alexa. And you can also enrich your skills over time to grow your expertise in voice design and evolve from a hobbyist to a professional.



It also pays to build highly engaging skills. Every month, developers can earn money for eligible skills that drive the highest customer engagement in seven eligible skill categories. 


Learn more and start building your next skill today.

 






Alexa Skills Kit


The Alexa Skills Kit is a collection of self-service APIs, tools, documentation, and code samples that makes it fast and easy for you to add skills to Alexa. With ASK, you can leverage Amazon’s knowledge and pioneering work in the field of voice design.



Additional Resources


Voice Design Guide

Documentation

Shortcut Start a Skill Now








저작자 표시 비영리 동일 조건 변경 허락
신고


It is Free !!!!!!


Download 'Lottery Numbers' Mobile app from Amazon App Store.


Or you can see the app in PC or Laptop of yours.


Go to amazon.com and search by 'Lottery Numbers'.






Get Jackpot numbers for Mega Million and/or Powerball.



저작자 표시 비영리 동일 조건 변경 허락
신고


It's Free !!!!!!!!!


Make enable Yut nori game helper skill on your Alexa devices


Direct URL to go to Yut nori game helper page in Amazon : Yut nori game helper

And then make it enabled by clicking on Enable button on the page.


or you can navigate to the page from amazon.com as below.


https://www.amazon.com/







저작자 표시 비영리 동일 조건 변경 허락
신고


I've got published my first Alexa Skill. (Yut Nori Game Helper)



I've referred to these materials to develop it.


New Alexa Skills Kit Template for Developers: GameHelper

- Let's Build A Skill - Game Helper -Skills Service

- https://en.wikipedia.org/wiki/Yut

- https://modernseoul.org/2011/11/26/how-to-play-yut-nori-윷놀이/

- http://owlworksllc.com/featured-game/yut-nori-the-korean-game-of-sticks/



I've modified Game Helper Template to develop this skill.

Please see the first article above. 

GameHelper Template



Note : Details to create Skill Service and Skill interface are in my previous article


[Alexa Skill] How to develop Alexa Skill. - A place where Changsoo lived.


These are steps what I've done to create the Alexa Skill 'Yut Nori game helper'.


1. Develop the skill


: Modify index.js and intent.json file




: Zip all files except speechAssets folder






2. Create Skill Service


: Navigate to aws.amazon.com

: Lambda -> Create New Lambda function -> Alexa Skills Kit -> Configure function

: In configure function page - Enter Name and Description -> Upload the zip file - Choose existing Role (myAlexaRole)


Now Skill Service has been created. You can get ARN for the function now.



3. Create Skill Interface


: Navigate to developer.amazon.com

: ALEXA -> Alexa Skills Kit -> Add a New Skill -> Create a New Alexa Skill

: Enter Name and Invocation Name in Create a New Alexa Skill page -> Click on Next button

: Copy and paste your intent.json into Intent Schema 

: Create Custom Slot Types

: Enter Custom Utterances -> Click on Next button




: Build the Skill

: Copy the ARN from Lambda function in aws.amazon.com and paste it to Endpoint section in  developer.amazon.com

: Test the skill





4. Publish the Skill


Submitting an Alexa Skill for Certification


: Publishing Information


-> Enter Category, Sub Category, Testing Instructions, Descriptions, Example Phrases, Keywords and Icons.

: Privacy & Compliance


-> Submit for Certification





5. Reviewing by Alexa team


- You will get this kind of feedback when your skill submission is failed the certification process.


You need to fix the issues and re-submit for the certification.

You will get Congratulation email once it is passed.

The email is first image of this article.



저작자 표시 비영리 동일 조건 변경 허락
신고


이 글은 Korean Traditional board game "Yutnori" 윷놀이를 소개하는 Alexa Skill에서 사용할 image들을 모아 놓은 글 입니다.




  

              Malpan (말판)





  • 1 flat side up = 1 piece moves 1 space. This is called a pig or Doh.





  • 2 flat sides up = 1 piece moves 2 spaces. This is called a dog or Ge.





  • 3 flat sides up = 1 piece moves 3 spaces. This is called a sheep or Girl.


  • 4 flat sides up = 1 piece moves 4 spaces. This is called a cow or Yut.



Alexa Skill 에서 사용할 description 들


// Used when user asks for help.

var HelpMessage = "Here are some things you can say to learn more about Yutnori - the Korean traditional board game: How do I play? Tell me about the Mo. How do I win? Give me a tip!";


// Used when the skill is opened.

var welcomeMessage = "Yutnori Helper. You can ask how to set up the game, about an individual piece, what the rules are, how to win, or for a Yutnori tip. Which will it be?";


// We are using this after every piece of information has been read out by Alexa, however this is also used as a repromt string.

var repromtMessage = "Here are some things you can ask for: ";


// Describing the game overview.

var overviewMessage = "The word Yut translates to sticks or lots and Nori means game. Four tokens or Mal are moved around a cloth game board called a Malpan. Instead of modern dice, 4 Yut sticks, each having one flat side and one round side are cast to control the movement of the tokens. Grab the 4 sticks in one hand and let them fall onto the table. Once you get the hang of it, reading the throw of the sticks to determine your move is easy. Here’s how it works.";


// Describing how to set the game up.

var setupMessage = "The game board \"Malpan\" is made of cloth. The layout of the 29 spaces or stations on the board can be either in a square or round configuration. The round geometry of the game board is symbolic of the cosmos. The large station in the center denotes the North Star with the 28 stations around it signifying the constellations. At path intersections, there are 5 stations that are larger than the rest. When a token lands on one of these stations, a player may take a short cut through the center of the board. ";


// Describing how to win the game.

var goalMessage = "The game is played between two partners or two teams who play in turns, sometimes it is played with more teams. There is no limit in the number of participants in a game, which means that the game can be played by a considerable group. When played with large groups it is not uncommon for some group members never to cast the sticks: they still participate discussing the strategy. The game is won by the team who brings all their mals home first, that is complete the course with all their mals. A course is completed if a mal passes the station where the game is started (cham-meoki). Landing on cham-meoki is no finish, but any score going \"beyond\" this station completes a home run. Yut is often played for three or more wins. ";


var repromts = [

    "Which would you like to know: a Yutnori tip or how to win?",

    "Tell me the name of an individual Mal to learn more about it.",

    "Which would you like to know: how to set up the game or what the rules are?"];


var pieces = [

    { key: "doh", imageLarge: "", imageSmall: "", value: "Doh. 1 flat side up. 1 piece moves 1 space. This is called a pig or Do." },

    { key: "ge", imageLarge: "", imageSmall: "", value: "Ge. 2 flat sides up. 1 piece moves 2 spaces. This is called a dog or Gae." },

    { key: "girl", imageLarge: "", imageSmall: "", value: "Girl. 3 flat sides up. 1 piece moves 3 spaces. This is called a sheep or Girl." },

    { key: "yut", imageLarge: "", imageSmall: "", value: "Yut. 4 flat sides up. 1 piece moves 4 spaces. This is called a cow or Yut." },

    { key: "mo", imageLarge: "", imageSmall: "", value: "Mo. 4 round sides up. 1 piece moves 5 spaces. This is called a horse or Mo." },

];



// To handle different names of the Mals
function GetPiece(value) {
    //console.log("in GetPiece");
    switch (value.toLowerCase().trim()) {
        case "do":
        case "doh":
        case "pig":
            return "Doh";
        case "gae":
        case "Ge":
        case "Ke":
        case "dog":
            return "Ge";
        case "Geol":
        case "Geul":
        case "Girl":
        case "sheep":
            return "Girl";
        case "yut":
        case "cow":
            return "Yut";
        case "horse":
        case "Mo":
        return "Mo";
        default:
            return "Mo";
    }
}







저작자 표시 비영리 동일 조건 변경 허락
신고


Here I am going to develop an Alexa skill for my own, customized based on 3 articles below.  


1. Fact Skill Tutorial

2. Fact Skill Blog

3. Section 2 of Alexa - A Free Introduction in Cloud Guru


Alexa will answer about the place(s) where I lived.


You can get the source codes of Alexa - A Free Introduction here.

https://github.com/ACloudGuru/alexacourse


I am going to modify index.js file of 1_spaceGeek.


* Modify var FACTS


* Modify AMAZON.HelpIntent


* Modify handleNewFactRequest() function


* zip the AlexaSkill.js and index.js as placeLived.zip



We are now starting to develop 'Amazon Skill' in earnest.

Amazon Skill development can be divided into two parts: skill service and skill interface.







* Skill Service



first access to aws.amazon.com to develop Skill Service.




1. Create a Role


IAM -> Roles -> Create New Role 



Select AWS Lambda.

Select AWSLambdaBasicExecutionRole and Click on Next Step button.




Enter any name for the Role and Click on Create Role button.




Now you have created a new role.




Now I am going to create a Lambda function.


Click on the cube image on top left to go to landing page of AWS services. and Click on Lambda -> Create function button.



Click on Author from scratch button.




Select Alexa Skills Kit for the Lambda



Click on Next button.



Enter Name and Description. And then select Upload a .ZIP file from Code entry type dropdown menu.




Upload the placeLived.zip file.

Next step is Select Choose an existing role from Role dropdown menu.

And select the created Role (placeLivedRole) from Existing role dropdown menu.



And then Click on Next button -> Create function button.



I've created a Lambda function for my skill.


Now it's done for Skill Service development.

I am going to develop the Skill Interface part.

The ARN information will be using when develop the Skill Interface.





* Skill Interface


To develop Skill Interface, Go to developer.amazon.com.


Go to ALEXA tab and Select Get Started button in Alexa Skills Kit.




Click on Add a New Skill button.





Enter Name and Invocation and Click on Next button.




Copy and paste this code to Intent Schema.

(This code is in IntentSchema.json of the source files.)


{

  "intents": [

    {

      "intent": "GetNewFactIntent"

    },

    {

      "intent": "AMAZON.HelpIntent"

    },

    {

      "intent": "AMAZON.StopIntent"

    },

    {

      "intent": "AMAZON.CancelIntent"

    }

  ]

 }


Enter Sample Utterances




Click on Save button. - It will build this skill.

Click on Next button once it is built.


Now I need to copy ARN from aws.amazon.com and paste it in to Global Fields in developer.amazon.com.

So I can make a connection between Skill Service and Skill Interface of mine.


Select AWS Lamda ARN -> North America and paste it into North America text field.



Click on Save and Next button.


Now it is completed.


To test, enter any utterance and click on Ask Places Lived button.













저작자 표시 비영리 동일 조건 변경 허락
신고


Create ARN (Amazon Resource Name)


aws.amazon.com -> Go to Lambda service -> Create a Lambda function -> Select the Region as N. Virginia






Coding a code in Code tab

Configure Programming Language, Role etc. in Configuration tab

Set Alexa Skills Kit in Triggers tab





The ARN on top right of the screen will be used to configure the Alexa Skill in developer.amazon.com





developer.amazon.com - ALEXA - Alexa Skills Kit




Add a New Skill Button




Complete all steps in left menu pannel


1. Skill Information

2. Interaction Model (Builder BETA)

3. Configuration

4. Test

5. Publishing Information

6. Privacy & Compliance





1. Skill Information 

  : Enter Name and Invocation Name

2. Interaction Model 

  : Set Customer Intents - Sample Utterances

  : Build the App (Save and Build)

3. Configuration

  : Service Endpoint Type - AWS Lambda ARN, Select a geographical region

  : Copy ARN from asw.amazon.com and paste it to the text field under North America in the Configuration page

4. Test

  : Alexa Start Session

  : Type command in Enter Utterance text field and Click on the Button

  : Click on Listen button




  


  

You can test it at https://echosim.io.

get more sample skills from github.com/alexa

저작자 표시 비영리 동일 조건 변경 허락
신고

[Echo Show] Build Skills for Echo Show

2017.08.08 06:03 | Posted by 솔웅


Build Skills for Echo Show



With Echo Show, graphical elements complement the voice interaction on the device itself. Thus, a custom skill used with Echo Show can include an interactive touch display in its response, in addition to standard voice interaction. For example, a recipe skill can display images of the ingredients and the preparation process at the appropriate points in the skill interaction. A city guide skill can display pictures or videos of requested attractions, or take the user on a guided tour.



Echo Show를 사용하면 음성 상호작용에 graphical한 요소까지 디바이스에서 표현할 수 있습니다. 그러므로 Echo Show의 커스텀 Skill을 사용하면 표준인 음성 상호작용에 더해 터치 디스플레이와의 상호작용을 할 수 있습니다. 예를 들어 recipe skill에 재료와 준비과정 등을 적정한 때에 이미지로 표시할 수 있습니다. 또한 city guide skill에서는 가 볼만 한 곳에 대한 사진이나 비디오를 표현해서 사용자에게 투어 가이드를 할 수 있습니다.





Echo Show

Although the display component may enhance the user experience considerably, voice continues to be the primary interaction method with Alexa.


display component가 더 풍부한 user experience를 제공하지만 Alexa에서는 음성이 계속 주요 상호작용 방법입니다.


Cards, which provide additional information for the user beyond the Alexa voice response, are supported in the Alexa app, but the app requires the user to separately view the card in the Alexa app on their phone or computer. Thus, cards, while useful, are not meant to be part of the main workflow of the skill. With Echo Show, the screen displays may be a significant aspect of the skill’s main workflow.


Alexa 음성 response를 넘어 사용자에게 추가적인 정보를 제공하는 Card들이 알렉스 앱에서 제공되고 있습니다. 이 카드들은 사용자들의 전화기나 컴퓨터에 있는 Alexa 앱에서 별도로 보여줄수 있기 때문에 그러한 앱이 필요하게 됩니다. 그렇기 때문에 이 card들은 유용함에도 불구하고 skill의 핵심 workflow 중 하나는 아닙니다. 하지만 Echo Show에서는 스크린 디스플레이가 이러한 카드들이 Skill에 주요 workflow에 속할 수 있도록 합니다.


Designing an Alexa skill for Echo Show allows integration of voice, touch, text, images, and video.


Echo Show에서 일렉사 Skill 디자인은 음성, 터치, 텍스트, 이미지 그리고 비디오를 사용할수 있도록 합니다.

좀 더 자세한 방법은 아래 글들을 참조하세요.



You can use the Node.js SDK and the Java SDK to facilitate the creation of Alexa skills.


Node.js SDK와 Java SDK를 사용하여 Alexa 기술을 쉽게 만들 수 있습니다.


Display and Interaction Features on Echo Show


Skill developers can take advantage of the following features for display and navigation.


Skill 개발자들은 디스플레이와 네비게이션과 관련해 다음의 기능들을 사용해 개발을 할 수 있습니다.


Graphical Features

Echo Show supports screen displays with the following graphical features.


Echo Show는 스크린 디스플레이에서 아래의 graphical한 기능들을 제공합니다.


  • List templates - display content as horizontal or vertical lists with predefined formats

  • Body templates - display content which can include text and images with predefined formats

  • Images - used in list templates or body templates

  • AudioPlayer - appears when the skill plays audio

  • Video - appears when the skill plays video

  • Touch selection events - List items and action links may be activated by touch if the skill is coded to support that


An Echo Show device provides all of the functionality of Amazon Echo devices, as well as an interactive screen and video playback capability. See the Echo Show specifications. The screen resolution for Echo Show is 1024x600 pixels.


Echo Show에서는 아마존 에코 기기들의 모든 기능들에다가 스크린을 통한 상호작용과 비디오 플레이 기능들까지 제공됩니다. 자세한 내용은  Echo Show specifications를 보세요. Echo Show의 화면 해상도는 1024x600 pixel입니다.


Alexa skills continue to support cards, whether the device with Alexa has a screen or not. If a skill is programmed so that a card appears in the Alexa app, and the skill has not been programmed to use a screen template, then that card will appear on the screen of the Echo Show device. If the skill has no card or template display, then the skill name and the skill icon appear on the screen, with the hint text “When you’re ready to quit, try “Alexa, exit’”.


Alexa Skill에서는 디바이스가 스크린을 가지고 있든 없든 카드기능이 제공 됩니다. 프로그램이 돼 있다면 Alexa 앱에 카드가 나타날 겁니다. Skill이 프로그램 돼 있다면 Alexa 앱에 나올 것이고 프로그램이 스크린 템플랫을 사용하도록 프로그램 돼 있지 않다면 Echo Show 디바이스의 스크린에 카드가 나타날 겁니다. 만약 Skill에 카드가 없거나 탬플렛 디스플레이가 없다면 스크린에 Skill 이름이나 Skill 아이콘이 “When you’re ready to quit, try “Alexa, exit’”라는 메세지와 함께 나타날 겁니다. 


Types of Interactions With Alexa Custom Skills


Custom skills designed for Alexa must take the following interactions into account.


Alexa에 디자인 돼 있는 커스텀 Skill은 account에 다음과 같은 상호작용을 가져야 합니다.


  • Voice interactions. Voice remains the primary means of interacting with Alexa, even if you have an Echo Show device. If your skill requires a screen to be used effectively, such as a photo-browsing skill, create a workflow that informs customers who are not using Echo Show that the skill requires Echo Show. An Echo Show user can control screen display by speaking the following actions.


    Voice interactions : 음성은 Echo Show를 가지고 있어도 Alexa에서는 가장 핵심적인 상호작용 수단입니다. 만약 photo-browsing skill같은 스크린이 필요한 Skill이라면 Echo Show를 이용하는 사용자들에게 알려주기 위한 workflow를 생성합니다. Echo Show 사용자는 다음과 같은 액션들을 음성을 이용해 스크린에 표시되도록 콘트롤 할 수 있습니다.


    • Scroll up/down/left/right

    • Page up/down

    • Next/previous



  • Alexa app interactions. A custom skill may cause a card with more information to be displayed in the Alexa app. If the custom skill is used with an Echo Show device, this card also appears on the screen if the response does not also include a display template. Thus, a skill that includes no display templates will show all of its cards on Echo Show. If a response includes both a card and a display template, the display template appears on Echo Show. This display template remains on the screen until the next response that includes a card or display template is sent.


    Alexa app interactions. 커스텀 Skill에서는 Alexa 앱에 좀 더 많은 정보를 표시하기 위한 카드를 사용할 수 있습니다. 만약 이 커스텀 Skill이 Echo Show에서 사용된다면 이 카드도 스크린에 나타날 겁니다. 만약 response에 디스플레이 탬플릿이 포함하지 않으면요.

    그러므로 디스플레이 탬플릿이 포함되지 않은 Skill은 자신이 가지고 있는 모든 카드를 Echo Show에서 표시할 겁니다. 만약 response가 카드와 디스플레이 탬플릿 모두를 가지고 있다면 Echo Show에는 그 디스플레이 탬플릿이 나타날 겁니다. 이 디스플레이 탬플릿은 카드나 디스플레이 탬플릿이 전달된 다음 response 까지 스크린에 남아 있을 겁니다.


  • Screen display interactions. If the custom skill uses display templates, and the correct interaction triggers a display template, then the corresponding text and images are displayed on Echo Show.


    Screen display interactions. 만약 커스텀 Skill이 디스플레이 탬플릿을 사용하고 제대로 이 디스플레이 탬플릿을 사용하도록 상호작용이 일어나면 해당 텍스트와 이미지들이 Echo Show에 표시됩니다.


  • Screen touch interactions. When a customer touches an item on screen that has been encoded with a select intent, that will trigger a specific action that has been programmed in the skill, such as displaying a recipe that corresponds to the selected item.


    Screen touch interactions. 사용자가 스크린의 아이템을 터치하면 그리고 그 Skill에 select intent으로 코딩이 되어 있다면 그 터치는 프로그램 되어 있는 특정 액션을 트리거링 합니다. 예를 들어 선택된 아이템에 해당하는 요리법을 보여준다던지 하는 서비스가 가능합니다. 


Audio, Display, and Video Capability for Devices With Alexa


Devices with Alexa support the AudioPlayer interface to play audio files. Long-form audio is not currently supported for Echo Show.


Alexa가 있는 디바이스들은 오디오 파일을 플레이 할 수 있는 AudioPlayer interface 를 제공합니다. Echo Show에서는 Long-form audio는 아직 지원되지 않습니다.


Echo Show also supports the Display interface to display content on the device screen, and the VideoApp interface to play video files on the screen.


Echo Show에서는 또한 디바이스 스크린에 내용을 표시하기 위한 Display interface와 VideoApp interface 를 지원해 화면에 비디오 파일을 상영하도록 해 줍니다. 



How and When to Use Display Templates to Render Screen Displays


When you develop a custom skill, you determine the form of the response that your skill will send to Alexa. This response may be voice-only, or it may also include a card or screen display. The display template you want to use, if any, is included in the JSON-formatted response, just as speech output and cards can be included in the response. If both a display template and a card are included in the response, the display template is rendered to the screen. If only a card is included, then the card is rendered to the screen. If neither a card or template is specified, then the default body template (BodyTemplate5) is rendered to the screen, which is typically the name of the skill and the skill icon. Display templates are not rendered in the Alexa companion app.


커스텀 Skill을 개발할 때 여러분의 Skill이 Alexa에 보낼 response의 form을 정해야 합니다. 이 response는 음성만 있을 수 있고 카드나 스크린 표시 등이 포함돼 있을 수 있습니다. 여러분이 사용하고자 하는 디스플레이 탬플릿은 JSON-formatted response에 포함되게 됩니다. 음성이 나오는것과 마찬가지로 response안에 카드들도 포함될 수 있습니다. 디스플레이 탬플릿과 카드 둘 다 response에 포함돼 있다면 화면에는 디스플레이 탬플릿이 표시됩니다. 만약 카드만 있다면 이 카드가 화면에 표시될 겁니다. 둘 다 없으면 default body template (BodyTemplate5)이 화면에 표시 될 겁니다. 주로 그 Skill에 이름과 그 Skill의 아이콘이죠. 디스플레이 탬플릿은 Alexa 앱에는 표시되지 않습니다.


In general, you, as the skill developer, want a visually uncluttered experience for the skill user, with display templates effectively displayed when they enhance the user experience. Typically, you should only return display templates when responding with information that the user has requested. Other responses, such as questions to ask the user for more information, do not typically include display templates.


일반적으로 Skill 개발자들은 사용자들에게 시각적인 것을 전달하기 원합니다. 디스플레이 탬플릿을 사용하면 이 기능을 효율적으로 사용자들에게 제공할 수 있습니다. 특히 사용자가 요청하면 디스플레이 팀플릿만을 리턴해야 될 때도 있고 사용자에게 추가적으로 질문을 할 때 같은 경우는 디스플레이 탬플릿이 포함될 필요가 없을 때도 있습니다.


See Best Practices for Card Design.


Create a Multi-Mode Interaction Model for Your Alexa Skill


The VUI (Voice User Interface), combined with the GUI (Graphical User Interface) and touch elements of Echo Show, provide a unique user experience. When you design your skill, consider how all of these elements will work together for the users of your skill.


The VUI (Voice User Interface)는 Echo Show의 GUI (Graphical User Interface)와 터치 요소를 결합해서 서비스를 제공합니다. Skill을 디자인 할 때 이러한 요소들이 어떻게 사용자를 위해서 서비스 되어야 하는 지를 고려해야 합니다.


The flow of the skill becomes significant when considering what the effect of such commands as “Up” mean. For example, in a recipe skill, would the user go back a previous step in a recipe, or to a previous recipe? Similarly, if the user says “Up” in a fact skill, what should the behavior be, if any? As the skill developer, you must specify this behavior in the service code for the skill. Plan how you want the user to interact with your skill.


Skill의 흐름은 “Up” 같은 요청이 어떤 효과를 내야 하는지를 고려할 때 유의미하게 서비스를 제공할 수 있습니다. 예를 들어 recipe skill에서 사용자가 요리법의 이 전 단계를 가려고 하는지 혹은 아예 이전의 요리법으로 가야 하는지 등이죠. 마찬가지로 fact skill에서 사용자가 “Up”이라고 말하면 여기에 대한 behavior는 어떻게 해야 할 까요? Skill 개발자로는 그 behavior를 서비스 코드에 정해서 넣어야만 합니다. 여러분에 Skill에서 어떻게 사용자와 상호작용을 해야 할지 잘 디자인 하세요.


Consider How Your Skill Works Across Devices


If you design your skill for a particular device, such as Echo Show, remember that the user may choose to enable this skill on other Alexa devices as well. So determine if you want your users to have access to these features in a way that does not use the screen and touch features, or if you want to inform the user that the skill, or certain features of it, is supported only on Echo Show. For example, the VideoApp interface, which allows videos in a skill, is supported on Echo Show, but it is not supported on devices without a screen such as Amazon Echo.


특정 디바이스에 대해 Skill을 디자인 한다면 -예를 들어 Echo Show 같은- 사용자느 다른 Alexa 디바이스들에서도 이 Skill을 사용하려고 할 것이라는 것을 염두에 두세요. 그러니까 스크린을 갖지 않는 다른 디바이스들에서도 이 기능들에 사용자에게 접근할 수 있도록 할 것인지에 대해서 미리 정해야 합니다. 그렇지 않고 Echo Show에서만 이 Skill을 제공하고자 한다면 사용자에게 그 Skill에 대한 혹은 그 Skill의 특정 기능에 대한 정보를 주어야 하구요. 예를 들어 Skill에서 비디오를 사용할 수 있도록 해 주는 VideoApp interface같은 경우에는 Echo Show에서는 지원이 되지만 아마존 에코같은 스크린이 없는 디바이스들에서는 지원이 되지 않습니다.

Upgrade an existing skill for Echo Show


You may have already created a certified skill that works with Alexa-enabled devices without screens. You can modify this skill to add additional functionality to take advantage of the display templates and touch features.


여러분 중에 스크린이 없는 Alexa를 사용할 수 있는 디바이스에서 작동하는 Skill을 이미 개발한 분들도 있을 수도 있습니다. 이 Skill을 디스플레이 탬플릿과 터치 기능을 이용하도록하는 추가적인 기능들을 넣을 수도 있습니다.


To upgrade your skill for Echo Show, follow these steps.


Echo Show를 위해 여러분의 Skill을 업그레이드 하려면 아래와 같이 하세요.


  • Rethink the workflow of the skill. When a customer interacts with your skill on Echo Show, the experience will be different. Determine how your skill work work on both Echo Show, and other devices with Alexa that do not have screens.


    Skill의 workflow를 다시 생각합니다. Echo Show에서 여러분의 Skill이 사용자와 상호작용을 할 때 그 진행상황을 분명히 다를 겁니다. 여러분의 Skill이 Echo Show와 스크린이 없는 Alexa가 가능한 디바이스에서 어떻게 작동을 할 지에 대해 먼저 정하세요.


  • Enable the Display.RenderTemplate interface as described in Display Interface Reference.


    Display Interface Reference에 설명된 것 처럼 RenderTemplate interface 를 가능하도록 합니다. 


  • Modify the code of the skill service to reflect the new workflow you have designed, as well as preserve the experience for users who do not have Echo Show.


    여러분이 디자인한 새로운 workflow를 반영하도록 Skill 서비스의 코드를 수정합니다. Echo Show를 사용하지 않는 사용자들을 위해 기존의 기능들은 유지해야겠지요.


  • Test the skill with its new features.


    추가된 새 기능들을 테스트 해 봅니다.


  • Publish the changes.


    그리고 업데이트된 Skill을 Publish 합니다.



저작자 표시 비영리 동일 조건 변경 허락
신고

[AWS IoT] Getting Started with AWS IoT

2017.08.03 20:05 | Posted by 솔웅




There are several ways to get started with AWS IoT depending on your use case and how you want to integrate the service into your use case. The AWS Management Console provides a web-based interface for accessing and managing all your AWS IoT resources. Programmatic access to AWS IoT is enabled by the AWS CLI and AWS SDK.



AWS IoT를 시작하는 방법은 여러가지가 있을 수 있습니다. 여러분의 필요성과 그 필요를 충족하기 위해 서비스와 어떻게 융합할 것인지 등에 따라 나눌 수 있습니다. AWS Management Console은 여러분의 모든 AWS IoT resources들에 접근하고 관리하기 위한 web-based interface를 제공합니다. AWS IoT에 프로그램으로 접근하려면 AWS CLI 와 AWS SDK 를 사용해서 개발 할 수 있습니다.



To connect your hardware device, sensor, mobile app or a thing use the AWS IoT Device SDK. Choose from one of the AWS starter kits pre-packaged to connect to AWS IoT. In addition, AWS IoT is supported by a wide range of third party tools and gateways.



여러분의 하드웨어 디바이스, 센서, 모바일 앱 이나 기타 다른 사물들에 연결하려면 AWS IoT Device SDK를 사용하세요.
AWS starter kits 세트를 사용해서 AWS IoT에 연결할 수 있습니다. 또한 AWS IoT는 광범위한 3rd party 도구와 게이트웨이들의 지원을 받습니다.



Get started with AWS IoT




Get started with devices





The AWS Management Console is a web-based interface for accessing and managing your AWS IoT resources. You can easily and securely create a thing, associate certificate, publish messages and define actions using the AWS Management Console.



AWS Management Console은 여러분의 AWS IoT resources들에 접근하고 관리하기 위한 web-based interface입니다.
여러분은  AWS Management Console을 사용해서 쉽고 안전하게 사물, associate certificate, publish messages 등을 생성하고 액션들을 정의할 수 있습니다.



Get started with AWS IoT in the console



Experiment with AWS IoT





The AWS SDK helps take the complexity out of coding by providing APIs for many AWS services including AWS IoT. All AWS SDKs are enabled for AWS IoT. The single, downloadable package includes the code library, code samples, and documentation.



AWS SDK는 AWS IoT를 포함한 많은 AWS services들에 대한 APIs를 제공함으로서 복잡하지 않게 코딩을 하도록 도와줍니다. 모든 AWS SDK들은 AWS IoT에서도 사용할 수 있습니다. 코드 라이브러리, 코드 샘플들 그리고 문서들을 포함한 단일 패키지를 다운로드 할 수 있습니다.




The AWS IoT Device SDK helps you to easily and quickly connect your hardware device or your mobile device to AWS IoT. It offers enhanced features so that you can seamlessly interact with the device gateway and the device shadow that will enable you to quick start your development. The Device SDK supports a variety types of devices, from basic to industrial hardware devices. Learn more about the AWS IoT Device SDKs.


AWS IoT Device SDK는 여러분의 하드웨어 디바이스나 모바일 디바이스를 AWS IoT에 쉽고 빠르게 연결할 수 있도록 도와줍니다.
또한 향상된 기능들을 제공함으로서 디바이스 게이트와 디바이스 쉐도우와 끊임없이 상호작용할 수 있도록 해 여러분의 신속한 개발을 도와 줄 겁니다. 이 Device SDK는 다양한 타입의 디바이스들을 지원합니다. 기본적인 것에서부터 산업용 하드웨어 디바이스 까지요. AWS IoT Device SDK에 대해 좀 더 배워 보세요.




AWS IoT Starter Kits


The AWS IoT Starter Kits enable you to move quickly from idea to prototype. These physical kits are designed to help accelerate cloud-powered prototype development of connected devices and connect securely to AWS IoT. The kits include development microcontroller development boards, sensors and actuators, the AWS IoT Device SDK, and a simple getting started guide so that you can easily find the best fit for your products. You can purchase the kits from Amazon.com. If you already have the hardware board, you can download the SDK and samples to get started in minutes. Visit the APN partner portal to learn more about partners who provide AWS IoT Starter Kits.



AWS IoT Starter Kit들은 구상에서 프로토타입(시제품) 까지 이르는 길을 앞당기도록 도와 줍니다. 이 physical kit들은 연결된 디바이스들과 이들이 AWS IoT에 안전하게 연결되도록 하는 cloud-powered prototype 개발을 빨리 할 수 있도록 도와 주도록 디자인 돼 있습니다. 이 키트들은 development microcontroller development boards, 센서 그리고 actuators 등을 포함하고 있습니다. 또한 AWS IoT Device SDK와 간단한 안내서를 가지고 있어 여러분이 쉽게 제품에 가장 알맞는 구성들을 찾을 수 있도록 도와줍니다. 이 키트들은 아마존 닷 컴에서 구입할 수 있습니다. 이미 하드웨어 보드가 있다면 SDK를 다운로드 해 몇분안에 작업을 시작하실 수 있습니다. APN partner portal에 방문해서 AWS IoT Starter Kit들을 제공하는 파트너들에 대해 좀 더 배워 보세요.





The Digi ConnectCore 6UL SBC Pro development kit delivers the ultimate connected off-the-shelf NXP i.MX6UL Single Board Computer, Pico-ITX form factor, pre-certified 802.11a/b/g/n/ac Wi-Fi, Bluetooth® 4.2, including Bluetooth Low Energy, and out-of-box cellular integration options.
 

Buy Now

Get Started

Partner Website



The Digi ConnectCore® 6UL Starter Kit is a Linux development kit for the Digi ConnectCore 6UL SOM with Wi-Fi and Bluetooth 4.2 connectivity. The kit includes the compact ConnectCore 6UL SBC Express with on-board antenna, Grove connectors, and a Pi HAT compatible breakout connector.


Buy Now

Get Started

Partner Website





The Digi ConnectCore 6 SBC development kit delivers an industrial multi-core SBC platform with scalable NXP i.MX6 performance, pre-certified Bluetooth 4.0 and Wi-Fi integration, Digi XBee and cellular connectivity options, Gigabit Ethernet support, multi display/camera and audio support, external storage, and expansion connectors.


Buy Now

Get Started

Partner Website




This kit includes Broadcom BCM4343W (Wi-Fi, BLE) and few sensors packaged by Avnet runs Broadcom WICED SDK


Buy Now

Get Started

Partner Website



This kit includes Marvell MW302 and runs Marvell EZ-Connect SDK, ported from AWS IoT Device SDK


Buy Now

Get Started

Partner Website



This kit includes MediaTek Linkit One (Wi-Fi, GPS, BLE, GPRS) and Grove Sensors and Actuators and runs AWS IoT Device SDK with mBed TLS


Buy Now

Get Started

Partner Website


This kit includes Renesas RX63N RDK and runs AWS IoT Device SDK on Micrium OS


Buy Now

Get Started

Partner Website



This kit includes Qualcomm Snapdragon 410c (Wi-Fi, GPS, BLE) packaged by Arrow and runs AWS IoT Device SDK (C and Node.js)


Buy Now

Get Started

Partner Website



This kit includes Intel Edison with Arduino Breakout Board and Grove sensors and actuators and runs AWS IoT Device SDK (C and Node.js)


Buy Now

Get Started

Partner Website


This kit includes BeagleBone Green and Grove sensors and actuators and runs AWS IoT Device SDK (C and Node.js)


Buy Now

Get Started

Partner Website



This kit includes a Microchip PIC32 microcontroller, LAN8740A Ethernet Phy, MPLAB Harmony Integrated Software Framework, FreeRTOS, is extendable thought the mikroBUS header and runs AWS IoT Device SDK


Buy Now

Get Started

Partner Website





This kit includes Arduino Yun compatible board and Grove sensors and actuators and runs AWS IoT Device SDK for Arduino


Buy Now

Get Started

Partner Website





This kit includes TI Launchpad CC3200 and runs TI-RTOS


Buy Now

Get Started

Partner Website






The Wisplet S2W IoT Kit includes a ready-to-operate out-of-the-box Wi-Fi module together with a sensor module.


Buy Now

Get Started

Partner Website





The AT&T IoT Kit includes an AT&T Global SIM, LTE modem, and access to AWS IoT.


Buy Now

Get Started

Partner Website




저작자 표시 비영리 동일 조건 변경 허락
신고
이전 1 다음